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

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

?? mh.c

?? Vovida 社區開源的 SIP 協議源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	    (write (fd,s,j) == j) &&	    (s = mail_fetchtext_full (sysibx,i,&j,FT_INTERNAL|FT_PEEK)) &&	    (write (fd,s,j) == j) && !fsync (fd) && !close (fd)) {				/* swell the cache */	  mail_exists (stream,++nmsgs);	  stream->uid_last =	/* create new elt, note its file number */	    (elt = mail_elt (stream,nmsgs))->private.uid = old;	  recent++;		/* bump recent count */				/* set up initial flags and date */	  elt->valid = elt->recent = T;	  elt->seen = selt->seen;	  elt->deleted = selt->deleted;	  elt->flagged = selt->flagged;	  elt->answered = selt->answered;	  elt->draft = selt->draft;	  elt->day = selt->day;elt->month = selt->month;elt->year = selt->year;	  elt->hours = selt->hours;elt->minutes = selt->minutes;	  elt->seconds = selt->seconds;	  elt->zhours = selt->zhours; elt->zminutes = selt->zminutes;	  mh_setdate (LOCAL->buf,elt);	}	else {			/* failed to snarf */	  if (fd) {		/* did it ever get opened? */	    mm_log ("Message copy to MH mailbox failed",ERROR);	    close (fd);		/* close descriptor */	    unlink (LOCAL->buf);/* flush this file */	  }	  else {	    sprintf (tmp,"Can't add message: %s",strerror (errno));	    mm_log (tmp,ERROR);	  }	  stream->silent = silent;	  return NIL;		/* note that something is badly wrong */	}	sprintf (tmp,"%lu",i);	/* delete it from the sysinbox */	mail_flag (sysibx,tmp,"\\Deleted",ST_SET);      }      stat (LOCAL->dir,&sbuf);	/* update scan time */      LOCAL->scantime = sbuf.st_ctime;            mail_expunge (sysibx);	/* now expunge all those messages */    }    if (sysibx) mail_close (sysibx);    mm_nocritical (stream);	/* release critical */  }  stream->silent = silent;	/* can pass up events now */  mail_exists (stream,nmsgs);	/* notify upper level of mailbox size */  mail_recent (stream,recent);  return T;			/* return that we are alive */}/* MH mail check mailbox * Accepts: MAIL stream */void mh_check (MAILSTREAM *stream){  /* Perhaps in the future this will preserve flags */  if (mh_ping (stream)) mm_log ("Check completed",(long) NIL);}/* MH mail expunge mailbox * Accepts: MAIL stream */void mh_expunge (MAILSTREAM *stream){  MESSAGECACHE *elt;  unsigned long i = 1;  unsigned long n = 0;  unsigned long recent = stream->recent;  mm_critical (stream);		/* go critical */  while (i <= stream->nmsgs) {	/* for each message */				/* if deleted, need to trash it */    if ((elt = mail_elt (stream,i))->deleted) {      sprintf (LOCAL->buf,"%s/%lu",LOCAL->dir,elt->private.uid);      if (unlink (LOCAL->buf)) {/* try to delete the message */	sprintf (LOCAL->buf,"Expunge of message %lu failed, aborted: %s",i,		 strerror (errno));	mm_log (LOCAL->buf,(long) NIL);	break;      }				/* note uncached */      LOCAL->cachedtexts -= ((elt->private.msg.header.text.data ?			      elt->private.msg.header.text.size : 0) +			     (elt->private.msg.text.text.data ?			      elt->private.msg.text.text.size : 0));      mail_gc_msg (&elt->private.msg,GC_ENV | GC_TEXTS);      if (elt->recent) --recent;/* if recent, note one less recent message */      mail_expunged (stream,i);	/* notify upper levels */      n++;			/* count up one more expunged message */    }    else i++;			/* otherwise try next message */  }  if (n) {			/* output the news if any expunged */    sprintf (LOCAL->buf,"Expunged %lu messages",n);    mm_log (LOCAL->buf,(long) NIL);  }  else mm_log ("No messages deleted, so no update needed",(long) NIL);  mm_nocritical (stream);	/* release critical */				/* notify upper level of new mailbox size */  mail_exists (stream,stream->nmsgs);  mail_recent (stream,recent);}/* MH mail copy message(s) * Accepts: MAIL stream *	    sequence *	    destination mailbox *	    copy options * Returns: T if copy successful, else NIL */long mh_copy (MAILSTREAM *stream,char *sequence,char *mailbox,long options){  STRING st;  MESSAGECACHE *elt;  struct stat sbuf;  int fd;  unsigned long i;  char flags[MAILTMPLEN],date[MAILTMPLEN];				/* copy the messages */  if ((options & CP_UID) ? mail_uid_sequence (stream,sequence) :      mail_sequence (stream,sequence))    for (i = 1; i <= stream->nmsgs; i++)       if ((elt = mail_elt (stream,i))->sequence) {	sprintf (LOCAL->buf,"%s/%lu",LOCAL->dir,elt->private.uid);	if ((fd = open (LOCAL->buf,O_RDONLY,NIL)) < 0) return NIL;	fstat (fd,&sbuf);	/* get size of message */	if (!elt->day) {	/* make plausible IMAPish date string */	  struct tm *tm = gmtime (&sbuf.st_mtime);	  elt->day = tm->tm_mday; elt->month = tm->tm_mon + 1;	  elt->year = tm->tm_year + 1900 - BASEYEAR;	  elt->hours = tm->tm_hour; elt->minutes = tm->tm_min;	  elt->seconds = tm->tm_sec;	  elt->zhours = 0; elt->zminutes = 0;	}				/* is buffer big enough? */	if (sbuf.st_size > LOCAL->buflen) {	  fs_give ((void **) &LOCAL->buf);	  LOCAL->buf = (char *) fs_get ((LOCAL->buflen = sbuf.st_size) + 1);	}				/* slurp message */	read (fd,LOCAL->buf,sbuf.st_size);				/* tie off file */	LOCAL->buf[sbuf.st_size] = '\0';	close (fd);		/* flush message file */	INIT (&st,mail_string,(void *) LOCAL->buf,sbuf.st_size);				/* init flag string */	flags[0] = flags[1] = '\0';	if (elt->seen) strcat (flags," \\Seen");	if (elt->deleted) strcat (flags," \\Deleted");	if (elt->flagged) strcat (flags," \\Flagged");	if (elt->answered) strcat (flags," \\Answered");	if (elt->draft) strcat (flags," \\Draft");	flags[0] = '(';		/* open list */	strcat (flags,")");	/* close list */	mail_date (date,elt);	/* generate internal date */	if (!mail_append_full (NIL,mailbox,flags,date,&st)) return NIL;	if (options & CP_MOVE) elt->deleted = T;      }  return T;			/* return success */}/* MH mail append message from stringstruct * Accepts: MAIL stream *	    destination mailbox *	    append callback *	    data for callback * Returns: T if append successful, else NIL */long mh_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data){  struct direct **names;  int fd;  char c,*flags,*date,*s,tmp[MAILTMPLEN];  STRING *message;  MESSAGECACHE elt;  long i,size,last,nfiles;  long ret = LONGT;				/* default stream to prototype */  if (!stream) stream = &mhproto;				/* make sure valid mailbox */  if (!mh_isvalid (mailbox,tmp,NIL)) switch (errno) {  case ENOENT:			/* no such file? */    if ((mailbox[0] == '#') && ((mailbox[1] == 'M') || (mailbox[1] == 'm')) &&	((mailbox[2] == 'H') || (mailbox[2] == 'h')) &&	((mailbox[3] == 'I') || (mailbox[3] == 'i')) &&	((mailbox[4] == 'N') || (mailbox[4] == 'n')) &&	((mailbox[5] == 'B') || (mailbox[5] == 'b')) &&	((mailbox[6] == 'O') || (mailbox[6] == 'o')) &&	((mailbox[7] == 'X') || (mailbox[7] == 'x')) && !mailbox[8])      mh_create (NIL,"INBOX");    else {      mm_notify (stream,"[TRYCREATE] Must create mailbox before append",NIL);      return NIL;    }				/* falls through */  case 0:			/* merely empty file? */    break;  case EINVAL:    sprintf (tmp,"Invalid MH-format mailbox name: %.80s",mailbox);    mm_log (tmp,ERROR);    return NIL;  default:    sprintf (tmp,"Not a MH-format mailbox: %.80s",mailbox);    mm_log (tmp,ERROR);    return NIL;  }				/* get first message */  if (!(*af) (stream,data,&flags,&date,&message)) return NIL;  if ((nfiles = scandir (tmp,&names,mh_select,mh_numsort)) > 0) {				/* largest number */    last = atoi (names[nfiles-1]->d_name);        for (i = 0; i < nfiles; ++i) /* free directory */      fs_give ((void **) &names[i]);  }  else last = 0;		/* no messages here yet */  if (s = (void *) names) fs_give ((void **) &s);  mm_critical (stream);		/* go critical */  do {    if (date) {			/* want to preserve date? */				/* yes, parse date into an elt */      if (!mail_parse_date (&elt,date)) {	sprintf (tmp,"Bad date in append: %.80s",date);	mm_log (tmp,ERROR);	ret = NIL;	break;      }    }    mh_file (tmp,mailbox);	/* build file name we will use */    sprintf (tmp + strlen (tmp),"/%ld",++last);    if ((fd = open (tmp,O_WRONLY|O_CREAT|O_EXCL,S_IREAD|S_IWRITE)) < 0) {      sprintf (tmp,"Can't open append message: %s",strerror (errno));      mm_log (tmp,ERROR);      ret = NIL;      break;    }				/* copy the data w/o CR's */    for (size = 0,i = SIZE (message),s = (char *) fs_get (i + 1); i; --i)      if ((c = SNX (message)) != '\015') s[size++] = c;				/* write the data */    if ((write (fd,s,size) < 0) || fsync (fd)) {      unlink (tmp);		/* delete message */      sprintf (tmp,"Message append failed: %s",strerror (errno));      mm_log (tmp,ERROR);      ret = NIL;    }    fs_give ((void **) &s);	/* flush the buffer */    close (fd);			/* close the file */    if (ret) {			/* set the date for this message */      if (date) mh_setdate (tmp,&elt);				/* get next message */      if (!(*af) (stream,data,&flags,&date,&message)) ret = NIL;    }  } while (ret && message);  mm_nocritical (stream);	/* release critical */  return ret;}/* Internal routines *//* MH file name selection test * Accepts: candidate directory entry * Returns: T to use file name, NIL to skip it */int mh_select (struct direct *name){  char c;  char *s = name->d_name;  while (c = *s++) if (!isdigit (c)) return NIL;  return T;}/* MH file name comparision * Accepts: first candidate directory entry *	    second candidate directory entry * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2 */int mh_numsort (const void *d1,const void *d2){  return atoi ((*(struct direct **) d1)->d_name) -    atoi ((*(struct direct **) d2)->d_name);}/* MH mail build file name * Accepts: destination string *          source * Returns: destination */char *mh_file (char *dst,char *name){  char *s,tmp[MAILTMPLEN];				/* build composite name */  sprintf (dst,"%s/%.900s",mh_path,	   strcmp (ucase (strcpy (tmp,name)),"#MHINBOX") ? name + 4 : "inbox");				/* tie off unnecessary trailing / */  if ((s = strrchr (dst,'/')) && !s[1] && (s[-1] == '/')) *s = '\0';  return dst;}/* MH canonicalize name * Accepts: buffer to write name *	    reference *	    pattern * Returns: T if success, NIL if failure */long mh_canonicalize (char *pattern,char *ref,char *pat){  char tmp[MAILTMPLEN];  if (ref && *ref) {		/* have a reference */    strcpy (pattern,ref);	/* copy reference to pattern */				/* # overrides mailbox field in reference */    if (*pat == '#') strcpy (pattern,pat);				/* pattern starts, reference ends, with / */    else if ((*pat == '/') && (pattern[strlen (pattern) - 1] == '/'))      strcat (pattern,pat + 1);	/* append, omitting one of the period */    else strcat (pattern,pat);	/* anything else is just appended */  }  else strcpy (pattern,pat);	/* just have basic name */  return (mh_isvalid (pattern,tmp,T));}/* Set date for message * Accepts: file name *	    elt containing date */void mh_setdate (char *file,MESSAGECACHE *elt){  time_t tp[2];  tp[0] = time (0);		/* atime is now */  tp[1] = mail_longdate (elt);	/* modification time */  utime (file,tp);		/* set the times */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精久久久久久久久久久| 91精品国产一区二区三区蜜臀 | 综合分类小说区另类春色亚洲小说欧美| 亚洲欧洲日本在线| 奇米影视一区二区三区| 在线观看中文字幕不卡| 国产精品久久久一本精品| 麻豆91在线观看| 欧美另类z0zxhd电影| 综合久久久久综合| 成人性生交大片| 精品国产一区二区三区不卡 | 亚洲图片激情小说| 国产一区二区剧情av在线| 日韩一区二区精品葵司在线| 亚洲品质自拍视频网站| 成人av在线一区二区三区| 久久精品亚洲精品国产欧美kt∨| 日韩av一区二区在线影视| 欧美日韩精品一区二区三区| 亚洲欧美另类久久久精品 | 国产一区二区三区免费观看| 日韩欧美国产综合一区| 日韩国产高清在线| 欧美精品黑人性xxxx| 五月天激情小说综合| 欧美视频在线一区| 性感美女极品91精品| 欧美中文字幕一区二区三区| 亚洲激情图片qvod| 欧美视频一区二区三区| 亚洲第一久久影院| 欧美剧在线免费观看网站| 亚洲高清在线视频| 制服丝袜一区二区三区| 奇米影视在线99精品| 日韩欧美一级片| 国产中文字幕精品| 日本一区二区三区免费乱视频| 高清在线不卡av| 国产精品初高中害羞小美女文| 99精品视频在线播放观看| 亚洲乱码一区二区三区在线观看| 色综合久久天天| 亚洲成av人在线观看| 欧美白人最猛性xxxxx69交| 国产一区不卡精品| 亚洲欧美日韩国产综合| 在线观看成人小视频| 日本免费新一区视频| 26uuu精品一区二区| a在线欧美一区| 午夜精品久久久久久久| 欧美不卡一区二区三区| 成人激情免费电影网址| 一区二区三区四区在线免费观看| 欧美日韩免费一区二区三区视频 | 成人黄色av网站在线| 一区二区三区在线视频免费 | 欧美日韩在线播放三区四区| 日本免费在线视频不卡一不卡二| 久久久久久久综合日本| 色综合久久99| 久草这里只有精品视频| 亚洲欧美国产77777| 日韩三级视频中文字幕| 成人一级视频在线观看| 亚洲成av人综合在线观看| 久久精品在这里| 在线国产电影不卡| 国产精品影视天天线| 亚洲影视在线播放| 性做久久久久久久免费看| 久久人人爽爽爽人久久久| 色婷婷综合激情| 国产一区二区三区四区在线观看| 一二三区精品视频| 国产亚洲美州欧州综合国| 欧美三日本三级三级在线播放| 国内成人免费视频| 亚洲午夜久久久久中文字幕久| 久久久99精品免费观看不卡| 欧美日韩大陆一区二区| 不卡的av电影在线观看| 久色婷婷小香蕉久久| 一区二区三区不卡视频 | 丁香六月久久综合狠狠色| 日韩国产精品大片| 亚洲一区二区欧美日韩| 国产喷白浆一区二区三区| 日韩一区和二区| 欧美中文字幕不卡| 99精品在线免费| 国产成人av一区二区三区在线观看| 日韩在线一二三区| 亚洲永久精品大片| 亚洲色图20p| 亚洲欧美在线另类| 久久久精品中文字幕麻豆发布| 欧美一区二区三区视频| 欧美色手机在线观看| 91片在线免费观看| 不卡电影免费在线播放一区| 国产成人综合网| 韩日欧美一区二区三区| 美日韩黄色大片| 美女脱光内衣内裤视频久久影院| 亚洲综合色视频| 一区二区三区高清在线| 亚洲女与黑人做爰| 亚洲人成精品久久久久久| 专区另类欧美日韩| 亚洲精品中文字幕在线观看| 成人免费一区二区三区视频| 最新中文字幕一区二区三区| 国产精品免费久久| 亚洲人成在线播放网站岛国 | 美腿丝袜一区二区三区| 日本vs亚洲vs韩国一区三区二区| 蜜臀国产一区二区三区在线播放| 天天av天天翘天天综合网色鬼国产 | 欧美系列亚洲系列| 欧美日韩视频一区二区| 日韩三级免费观看| 欧美精品一区二区蜜臀亚洲| 精品999在线播放| 欧美经典一区二区| 国产精品久久久久久久浪潮网站| 国产精品久久久久影院亚瑟| 亚洲天堂2016| 亚洲国产婷婷综合在线精品| 日本亚洲电影天堂| 国产精品亚洲人在线观看| voyeur盗摄精品| 欧美色男人天堂| 欧美成人在线直播| 国产亚洲综合色| 亚洲精品亚洲人成人网| 日韩va欧美va亚洲va久久| 国产精品原创巨作av| 在线一区二区三区| 精品入口麻豆88视频| 国产精品国产三级国产普通话三级| 亚洲男同性视频| 精品写真视频在线观看| 成人美女视频在线观看| 精品视频一区二区不卡| 久久久99精品免费观看不卡| 亚洲精品视频免费观看| 久久精品国产亚洲5555| aaa国产一区| 日韩欧美一区电影| 亚洲裸体xxx| 韩国一区二区在线观看| 欧美自拍偷拍午夜视频| 国产丝袜欧美中文另类| 亚洲国产精品久久久久婷婷884 | 久久国产精品露脸对白| 99精品国产一区二区三区不卡| 欧美三级视频在线| 国产亚洲综合在线| 日韩**一区毛片| 色94色欧美sute亚洲13| 国产欧美日韩在线视频| 日本一道高清亚洲日美韩| 色偷偷一区二区三区| 久久综合色8888| 日韩精品电影在线| 色94色欧美sute亚洲13| 中国色在线观看另类| 美女精品自拍一二三四| 欧美在线一区二区| 国产精品久久久久婷婷| 麻豆91在线看| 3atv在线一区二区三区| 亚洲影院理伦片| 一本一道久久a久久精品综合蜜臀| 26uuu精品一区二区在线观看| 午夜精品国产更新| 欧美视频中文字幕| 一区二区成人在线视频| aaa亚洲精品| 日韩毛片视频在线看| 成人网页在线观看| 国产亚洲短视频| 加勒比av一区二区| 久久综合九色综合97婷婷| 日韩电影在线一区二区三区| 欧美日韩国产一级片| 亚洲va欧美va国产va天堂影院| 色婷婷综合久久久中文字幕| 中文字幕中文字幕一区| 成人黄动漫网站免费app| 国产精品欧美极品| 97久久精品人人澡人人爽| 国产精品久久久久久久蜜臀 | 91精品国产欧美一区二区18| 亚洲一区二区在线免费看| 欧美性猛片aaaaaaa做受| 亚洲午夜久久久久久久久电影院 |