亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mailbox.c

?? uCLinux下的一個TCP/IP協議棧源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	/* Now say goodbye */
	printf("Thank you %s, for calling the %s Tcp/Ip Mailbox.\n",m->name,
		Hostname);
	if(m->type == TIP)
		printf("Please hang up now.\n");

	return -2;	/* signal that exitbbs() should be called */
}
static int
dombhelp(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	char buf[255];
	int i;
	FILE *fp;
	if(*argv[0] == '?') {
		fputs(Longmenu1,stdout);
		fputs(Longmenu2,stdout);
		fputs(Longmenu3,stdout);
		return 0;
	}
	buf[0] = '\0';
	if(argc > 1)
		for(i=0; Mbcmds[i].name != NULL; ++i)
			if(!strncmp(Mbcmds[i].name,argv[1],strlen(argv[1]))) {
				sprintf(buf,"%s/%s.hlp",Helpdir,Mbcmds[i].name);
				break;
			}
	if(buf[0] == '\0')
		if(*argv[0] == 'i')			/* INFO command */
			sprintf(buf,"%s/info.hlp",Helpdir);
		else
			sprintf(buf,"%s/help.hlp",Helpdir);
	if((fp = fopen(buf,READ_TEXT)) != NULL) {
		sendfile(fp,Curproc->output,ASCII_TYPE,0);
		fclose(fp);
	}
	else
		printf("No help available. (%s not found)\n",buf);
	return 0;
}

static int
dochat(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	char buf[8], *newargv[3];

	if(Attended){
		newargv[0] = "telnet";
		newargv[1] = Hostname;
		sprintf(buf,"%d",IPPORT_TTYLINK);
		newargv[2] = buf;
		return dombtelnet(3,newargv,p);
	}
	else {
		printf("Sorry - the system is unattended.\007\n");
	}
	/* It returns only after a disconnect or refusal */
	return 0;
}

static int
dosend(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	int cccnt = 0, fail = 0;
	char *host, *cp, fullfrom[MBXLINE], sigwork[LINELEN], *rhdr = NULL;
	struct list *ap, *cclist = NULL;
	struct mbx *m;
	FILE *fp;

	m = (struct mbx *)p;
	if((m->stype != 'R' || (m->sid & MBX_SID)) && mbx_to(argc,argv,m)
	   == -1){
		if(m->sid & MBX_SID)
			printf("NO - syntax error\n");
		else {
			printf("S command syntax error - format is:\n");
			printf("  S[F] name [@ host] [< from_addr] [$bulletin_id]\n");
			printf("  SR [number]\n");
		}
		return 0;
	}
	if(m->stype != 'R' && msgidcheck(m->tomsgid)) {
		if(m->sid & MBX_SID)
			fputs("NO - ",stdout);
		printf("Already have %s\n",m->tomsgid);
		return 0;
	}
	if(m->stype == 'R' && !(m->sid & MBX_SID) &&
	   mbx_reply(argc,argv,m,&cclist,&rhdr) == -1)
		return 0;
	if((cp = rewrite_address(m->to)) != NULL)
	     if(strcmp(m->to,cp) != 0){
		  m->origto = m->to;
		  m->to = cp;
	     }
	     else
		  free(cp);
	if((m->origto != NULL || m->stype == 'R') && !(m->sid & MBX_SID))
		printf("To: %s\n", m->to);
	if(validate_address(m->to) == 0){
		if(m->sid & MBX_SID)
			printf("NO - bad address\n");
		else
			printf("Bad user or host name\n");
		free(rhdr);
		del_list(cclist);
		/* We don't free any more buffers here. They are freed upon
		 * the next call to mbx_to() or to domboxbye()
		 */
		return 0;
	}
	/* Display the Cc: line (during SR command) */
	for(ap = cclist; ap != NULL; ap = ap->next) {
		if(cccnt == 0){
			printf("%s",Hdrs[CC]);
			cccnt = 4;
		}
		else {
			fputs(", ",stdout);
			cccnt += 2;
		}
		if(cccnt + strlen(ap->val) > 80 - 3) {
			fputs("\n    ",stdout);
			cccnt = 4;
		}
		fputs(ap->val,stdout);
		cccnt += strlen(ap->val);
	}
	if(cccnt)
		putchar('\n');
	m->state = MBX_SUBJ;
	if(m->stype != 'R' || (m->sid & MBX_SID) != 0) {
		printf((m->sid & MBX_SID) ? "OK\n" : "Subject: ");
		if(mbxrecvline(m->user,m->line,MBXLINE,-1) == -1)
			return 0;
	}
	else				/* Replying to a message */
		printf("Subject: %s\n",m->line);
	if(mbx_data(m,cclist,rhdr) == -1){
		free(rhdr);
		del_list(cclist);
		puts("Can't create temp file for mail");
		return 0;
	}
	free(rhdr);
	m->state = MBX_DATA;
	if((m->sid & MBX_SID) == 0 && m->stype != 'F')
		printf("Enter message.  %s",Howtoend);

	if(m->stype != 'F' || (m->sid & MBX_SID) != 0)
		while(mbxrecvline(m->user,m->line,MBXLINE,-1) != -1){
			if(m->line[0] == 0x01){  /* CTRL-A */
				fclose(m->tfile);
				puts("Aborted.");
				del_list(cclist);
				return 0;
			}
			if(m->line[0] != CTLZ && stricmp(m->line, "/ex"))
				fprintf(m->tfile,"%s\n",m->line);
			else
				break;	/* all done */
		}
	else {
		fprintf(m->tfile,"----- Forwarded message -----\n\n");
		msgtofile(m,m->current,m->tfile,0);
		fprintf(m->tfile,"----- End of forwarded message -----\n");
	}

	/* Insert customised signature if one is found */
	if(!(m->sid & MBX_SID)) {	/* not a forwarding BBS */
	     sprintf(sigwork,"%s/%s.sig",Signature,
		     m->tofrom ? m->tofrom : m->name);
	     if((fp = fopen(sigwork,READ_TEXT)) != NULL){
		  while(fgets(sigwork,LINELEN,fp) != NULL)
			fputs(sigwork,m->tfile);
		  fclose(fp);
	     }
	}

	if((host = strrchr(m->to,'@')) == NULL) {
		host = Hostname;	/* use our hostname */
		if(m->origto != NULL) {
			/* rewrite_address() will be called again by our
			 * SMTP server, so revert to the original address.
			 */
		 	free(m->to);
			m->to = m->origto;
			m->origto = NULL;
		}
	}
	else
		host++;	/* use the host part of address */

	/* make up full from name for work file */
	if(m->tofrom != NULL)
		sprintf(fullfrom,"%s%%%s.bbs@%s",m->tofrom, m->name, Hostname);
	else
		sprintf(fullfrom,"%s@%s",m->name,Hostname);
	if(cclist != NULL && stricmp(host,Hostname) != 0) {
		fseek(m->tfile,0L,0);	/* reset to beginning */
		fail = queuejob(m->tfile,Hostname,cclist,fullfrom);
		del_list(cclist);
		cclist = NULL;
	}
	addlist(&cclist,m->to,0);
	fseek(m->tfile,0L,0);
	fail += queuejob(m->tfile,host,cclist,fullfrom);
	del_list(cclist);
	fclose(m->tfile);
	if(fail)
	     puts("Couldn't queue message for delivery");
	else
	     if(m->tomsgid != NULL &&
		(fp = fopen(Historyfile,APPEND_TEXT)) != NULL) {
		  fprintf(fp,"%s\n",m->tomsgid); /* Save BID in history file */
		  fclose(fp);
	     }
	smtptick(0L);		/* wake SMTP to send that mail */
	return 0;
}

static int
dosid(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	char *cp;

	m = (struct mbx *)p;
	if(argc == 1)
		return 1;
	if(argv[1][strlen(argv[1]) - 1] != ']') /* must be an SID */
		return 1;
	m->sid = MBX_SID;
	/* Now check to see if this is an RLI board.
	 * As usual, Hank does it a bit differently from
	 * the rest of the world.
	 */
	if(m->stype == 'R' && strncmp(argv[1],"li",2) == 0)/* [RLI] at a minimum */
		m->sid |= MBX_RLI_SID;
	/* Check to see if the BBS supports a kludge called "hierarchical
	 * routing designators."
	 *
	 * No need to check for ']' -- it must be there or this is not
	 * a valid mbox id -- it is checked earlier (fix de OH3LKU)
	 */
	if((cp = strchr(argv[1],'-')) != NULL
	 && (cp=strchr(cp+1,'h')) != NULL
	 && strchr(cp+1,'$'))
		m->sid |= MBX_HIER_SID;	
	return 0;
}

int
dombescape(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;

	m = (struct mbx *)p;
	if(argc < 2){
		printf("The escape character is: ");
		if(m->escape < 32)
			printf("CTRL-%c\n",m->escape+'A'-1);
		else
			printf("'%c'\n",m->escape);
		return 0;
	}
	if(strlen(argv[1]) > 1)
		if(isdigit(*argv[1]))
			m->escape = (char) atoi(argv[1]);
		else
			return 1;
	else
		m->escape = *argv[1];
	return 0;
}

static int
dodownload(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	FILE *fp;
	char *file;

	m = (struct mbx *)p;
	file = pathname(m->path,argv[1]);
	if(!permcheck(m->path,m->privs,RETR_CMD,file)){
		printf(Noperm);
		return 0;
	}
	if((fp = fopen(file,READ_TEXT)) == NULL)
		printf("Can't open \"%s\": %s\n",file,sys_errlist[errno]);
	else
		if(m->stype == 'U'){			/* uuencode ? */
			fclose(fp);
			fp = fopen(file,READ_BINARY);	/* assume non-ascii */
			uuencode(fp,m->user,file);
		} else
			sendfile(fp,m->user,ASCII_TYPE,0);
	free(file);
	fclose(fp);
	return 0;
}

static int
dombupload(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	FILE *fp;
	char *file, buf[LINELEN];

	m = (struct mbx *)p;
	file = pathname(m->path,argv[1]);
	if(!permcheck(m->path,m->privs,STOR_CMD,file)){
		printf(Noperm);
		return 0;
	}
	if((fp = fopen(file,WRITE_TEXT)) == NULL){
		printf("Can't create \"%s\": %s\n",file,sys_errlist[errno]);
		free(file);
		return 0;
	}
	logmsg(fileno(m->user),"MBOX upload: %s",file);
	printf("Send file,  %s",Howtoend);
	for(;;){
		if(mbxrecvline(m->user,buf,LINELEN,-1) == -1){
			unlink(file);
			break;
		}
		if(buf[0] == 0x01){  /* CTRL-A */
			unlink(file);
			printf("Aborted.\n");
			break;
		}
		if(buf[0] == CTLZ || !stricmp("/ex",buf))
			break;
		fputs(buf,fp);
#if !defined(UNIX) && !defined(__TURBOC__) && !defined(AMIGA)
		/* Needed only if the OS uses a CR/LF
		 * convention and putc doesn't do
		 * an automatic translation
		 */
		if(putc('\r',fp) == EOF)
			break;
#endif
		if(putc('\n',fp) == EOF)
			break;
	}
	free(file);
	fclose(fp);
	return 0;
}

static int
dowhat(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	FILE *fp;
	char *file;

	m = (struct mbx *)p;
	if(argc < 2)
		file = strdup(m->path);
	else
		file = pathname(m->path,argv[1]);
	if(!permcheck(m->path,m->privs,RETR_CMD,file)){
		printf(Noperm);
		return 0;
	}
	if((fp = dir(file,1)) == NULL)
		printf("Can't read directory: \"%s\": %s\n",file,sys_errlist[errno]);
	else
		sendfile(fp,m->user,ASCII_TYPE,0);
	free(file);
	fclose(fp);
	return 0;
}

static int
dozap(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	char *file;

	m = (struct mbx *)p;
	file = pathname(m->path,argv[1]);
	if(!permcheck(m->path,m->privs,DELE_CMD,file)){
		printf(Noperm);
		return 0;
	}
	if(unlink(file))
		printf("Zap failed: %s\n",sys_errlist[errno]);
	logmsg(fileno(m->user),"MBOX Zap: %s",file);
	free(file);
	return 0;
}

static int
dosysop(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	int c;
	extern struct cmds Cmds[];

	m = (struct mbx *) p;
	if(!(m->privs & SYSOP_CMD)){
		printf(Noperm);
		return 0;
	}
	dombescape(1,NULL,p);
	for(;;){
		printf("Net> ");
		fflush(stdout);
		c = mbxrecvline(stdin,m->line,MBXLINE,m->escape);
		if(c == EOF || c == -2)
			break;
		logmsg(fileno(m->user),"MBOX sysop: %s",m->line);
		cmdparse(Cmds,m->line,NULL);
	}
	return 0;
}

/* Handle the "*** Done" command when reverse forwarding ends or the
 * "*** LINKED to" command.
 */
static int
dostars(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	int anony = 1;
	m = (struct mbx *)p;
	/* The "*** LINKED to" command is only allowed to stations with
	 * SYSOP privileges to prevent others from obtaining the same.
	 */
	if((m->privs & SYSOP_CMD) && argc == 4 && !strcmp(argv[1],"linked")) {
		strcpy(m->name,argv[3]);
		/* Try to find the privileges of this user from the userfile */
		if((m->privs = userlogin(m->name,NULL,&m->path,MBXLINE,
					 &anony)) == -1)
		     if((m->privs = userlogin("bbs",NULL,&m->path,
				      MBXLINE,&anony)) == -1)
			  if((m->privs = userlogin("anonymous",NULL,
					   &m->path,MBXLINE,&anony)) == -1){
						m->privs = 0;
						free(m->path);
						m->path = NULL;
			  }
		printf("Oh, hello %s.\n",m->name);
		if(m->privs & EXCLUDED_CMD)
			return domboxbye(0,NULL,p);
		changearea(m,m->name);
		return 0;
	}
	if(argc > 1 && (m->sid & MBX_SID))	/* "*** Done" or similar */
		return 2;
	return -1;
}

static int
doarea(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	FILE *fp;

	m = (struct mbx *) p;
	if(argc < 2){
		printf("Current message area is: %s\n",m->area);
		printf("Available areas are:\n%-15s  Your private mail area\n",
		  m->name);
		if((fp = fopen(Arealist,READ_TEXT)) == NULL)
			return 0;
		sendfile(fp,m->user,ASCII_TYPE,0);
		fclose(fp);
		return 0;
	}
	if((m->privs & SYSOP_CMD) || strcmp(m->name,argv[1]) == 0){
		changearea(m,argv[1]);
		if(m->nmsgs){
			if(!strcmp(m->name,m->area))
				printf("You have ");
			else
				printf("%s: ",m->area);
			printf("%d message%s -  %d new.\n", m->nmsgs,
			  m->nmsgs == 1 ? " " : "s ", m->newmsgs);
		}
		return 0;
	}
	if(isarea(argv[1])) {
		changearea(m,argv[1]);
		printf("%s: %d message%s.\n", m->area, m->nmsgs,
		  m->nmsgs == 1 ? "" : "s");
	}
	else
		printf("No such message area: %s\n",argv[1]);
	return 0;
}

/* subroutine to do the actual switch from one area to another */
void
changearea(m,area)
struct mbx *m;
char *area;
{
	closenotes(m);
	m->nmsgs = m->newmsgs = m->current = 0;
	strcpy(m->area,area);
	scanmail(m);
}

static int
dombtelnet(argc,argv,p)
int argc;
char *argv[];
void *p;
{
	struct mbx *m;
	int s, len, i;
	struct sockaddr dsocket;
	struct sockaddr_in fsocket;

	m = (struct mbx *) p;
	fsocket.sin_family = AF_INET;
	if(argc < 3)
		fsocket.sin_port = IPPORT_TELNET;
	else
		fsocket.sin_port = atoi(argv[2]);

	if((fsocket.sin_addr.s_addr = resolve(argv[1])) == 0){
		printf(Badhost,argv[1]);
		return 0;
	}
	/* Only local telnets are are allowed to the unprivileged user */
	if(!(m->privs & TELNET_CMD) && !ismyaddr(fsocket.sin_addr.s_addr)){
		printf(Noperm);
		return 0;
	}
	if((s = socket(AF_INET,SOCK_STREAM,0)) == -1){
		printf(Nosock);
		return 0;
	}
	if(fsocket.sin_port == IPPORT_TTYLINK) {
		m->startmsg = mallocw(80);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品v| 成人午夜视频网站| 欧美精品自拍偷拍| 日韩高清在线观看| 日韩一区二区麻豆国产| 日韩精品电影一区亚洲| 日韩欧美国产小视频| 久久av资源站| 国产日韩欧美精品在线| aaa欧美大片| 一区二区三区在线播| 欧美色偷偷大香| 麻豆精品一区二区三区| 久久久久青草大香线综合精品| 国产黄色精品网站| **网站欧美大片在线观看| 一本色道亚洲精品aⅴ| 视频一区在线播放| xvideos.蜜桃一区二区| 99riav一区二区三区| 奇米影视一区二区三区| 欧美激情综合网| 欧洲一区二区av| 久久精品二区亚洲w码| 国产精品欧美精品| 欧美丰满一区二区免费视频| 国产+成+人+亚洲欧洲自线| 一区二区三区 在线观看视频| 7777精品伊人久久久大香线蕉| 国产一区二区三区国产| 亚洲电影第三页| 国产亚洲欧美中文| 欧美三级资源在线| 成人黄色网址在线观看| 天天色天天操综合| 中文字幕日韩av资源站| 精品免费国产二区三区 | 亚洲高清视频的网址| 精品免费国产一区二区三区四区| 91啪在线观看| 国产麻豆成人精品| 日本中文字幕一区二区有限公司| 中文一区二区在线观看| 欧美一区二区三区在线看| 91麻豆文化传媒在线观看| 久久99精品一区二区三区| 一区二区三区四区五区视频在线观看| 欧美成人aa大片| 欧美日本视频在线| 91麻豆国产香蕉久久精品| 国产精品亚洲成人| 久久精品国产亚洲一区二区三区| 一卡二卡欧美日韩| 欧美激情在线一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美日免费三级在线| 91色porny蝌蚪| 成人国产视频在线观看| 国产一区二三区好的| 蜜臀av性久久久久蜜臀aⅴ| 亚洲亚洲精品在线观看| 亚洲乱码国产乱码精品精的特点| 国产亚洲短视频| 久久久精品欧美丰满| 精品少妇一区二区三区在线视频| 欧美亚日韩国产aⅴ精品中极品| gogo大胆日本视频一区| 国内精品伊人久久久久影院对白| 日韩激情一区二区| 婷婷一区二区三区| 亚洲va天堂va国产va久| 亚洲精品视频在线观看免费 | 国产在线国偷精品免费看| 亚洲第一二三四区| 亚洲免费在线观看| 亚洲色图欧洲色图婷婷| 日韩理论片一区二区| 国产精品第13页| 亚洲欧美日韩久久| 一区二区在线免费| 午夜日韩在线观看| 午夜一区二区三区在线观看| 亚洲成av人片观看| 日韩av一区二区三区四区| 麻豆一区二区三区| 国精产品一区一区三区mba视频| 经典三级视频一区| 国产精品1区二区.| av一本久道久久综合久久鬼色| 成人丝袜高跟foot| 日本乱人伦aⅴ精品| 欧美肥胖老妇做爰| 久久网这里都是精品| 国产精品久久久久四虎| 一区二区日韩av| 蜜桃在线一区二区三区| 国产一区二区中文字幕| av在线播放不卡| 欧美性一二三区| 欧美一级久久久| 久久精品网站免费观看| 亚洲日本在线a| 亚洲成av人片| 国产成人亚洲综合a∨猫咪| 一本色道久久综合亚洲91| 欧美一二三四在线| 久久精品在这里| 亚洲图片欧美综合| 久草精品在线观看| 成人av电影免费在线播放| 欧美色精品天天在线观看视频| 欧美xxxxx裸体时装秀| 亚洲欧洲99久久| 日韩和欧美一区二区三区| 国产成人免费视频精品含羞草妖精 | 美女一区二区在线观看| 国产成人一区在线| 欧美日韩国产高清一区二区| 日韩精品一区二区三区四区视频| 中文字幕一区二区视频| 日本美女一区二区| 成人v精品蜜桃久久一区| 在线播放/欧美激情| 国产精品女同互慰在线看 | 亚洲成年人网站在线观看| 狠狠色综合播放一区二区| 色婷婷久久久综合中文字幕| 欧美大黄免费观看| 一区二区三区国产精品| 国产精品白丝jk白祙喷水网站 | 91精品国产乱码久久蜜臀| 中文字幕第一区二区| 蜜臀精品一区二区三区在线观看 | 一区二区三区四区在线| 国产成人自拍网| 欧美电影影音先锋| 自拍偷拍亚洲综合| 精品一区二区三区在线观看国产| 色偷偷88欧美精品久久久| 国产亚洲午夜高清国产拍精品 | 亚洲国产婷婷综合在线精品| 成人午夜视频在线| 欧美精品一区视频| 日韩精品成人一区二区三区| 色域天天综合网| 自拍偷拍国产精品| 国产精品一区二区男女羞羞无遮挡| 777午夜精品免费视频| 亚洲九九爱视频| av电影在线观看不卡| 国产校园另类小说区| 韩国一区二区视频| 日韩一级免费观看| 视频在线在亚洲| 欧美区在线观看| 日韩专区欧美专区| 欧美日韩免费观看一区二区三区| 亚洲免费在线观看| 91久久精品日日躁夜夜躁欧美| 国产精品美女一区二区三区 | 国产女人水真多18毛片18精品视频| 秋霞av亚洲一区二区三| 欧美日韩国产天堂| 亚洲一区影音先锋| 在线区一区二视频| 国产欧美日韩视频一区二区| 国产激情视频一区二区三区欧美| 久久亚洲精品小早川怜子| 老汉av免费一区二区三区| 91精品国产高清一区二区三区| 一区二区三区精品视频在线| av电影在线观看完整版一区二区| 国产精品天美传媒| 99久久99久久久精品齐齐| 亚洲日本va午夜在线影院| 欧美主播一区二区三区| 一区二区高清在线| 欧洲一区二区三区免费视频| 午夜精品久久久久久久久久 | 欧美成人a∨高清免费观看| 精品一区二区在线观看| 精品电影一区二区| 国产在线国偷精品免费看| 国产精品剧情在线亚洲| 色天使久久综合网天天| 亚洲bdsm女犯bdsm网站| 日韩一区二区三区电影| 国产成人亚洲综合a∨婷婷| 最新不卡av在线| 精品视频在线免费看| 久久国产精品色婷婷| 中文字幕精品在线不卡| 欧美亚洲日本一区| 日韩av网站在线观看| 2024国产精品视频| 99久久精品免费| 视频在线观看一区| 久久综合av免费| 91国偷自产一区二区三区观看| 日韩成人午夜精品|