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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rfc822.c

?? SIP 1.5.0源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
 *	    source driver flags */void rfc822_parse_msg_full (ENVELOPE **en,BODY **bdy,char *s,unsigned long i,			    STRING *bs,char *host,unsigned long depth,			    unsigned long flags){  char c,*t,*d;  char *tmp = (char *) fs_get ((size_t) i + 100);  ENVELOPE *env = (*en = mail_newenvelope ());  BODY *body = bdy ? (*bdy = mail_newbody ()) : NIL;  long MIMEp = -1;		/* flag that MIME semantics are in effect */  long PathP = NIL;		/* flag that a Path: was seen */  parseline_t pl = (parseline_t) mail_parameters (NIL,GET_PARSELINE,NIL);  while (i && *s != '\n') {	/* until end of header */    t = tmp;			/* initialize buffer pointer */    c = ' ';			/* and previous character */    while (i && c) {		/* collect text until logical end of line */      switch (c = *s++) {	/* slurp a character */      case '\015':		/* return, possible end of logical line */	if (*s == '\n') break;	/* ignore if LF follows */      case '\012':		/* LF, possible end of logical line */				/* tie off unless next line starts with WS */	if (*s != ' ' && *s != '\t') *t++ = c = '\0';	break;      case '\t':		/* tab */	*t++ = ' ';		/* coerce to space */	break;      default:			/* all other characters */	*t++ = c;		/* insert the character into the line */	break;      }      if (!--i) *t++ = '\0';	/* see if end of header */    }				/* find header item type */    if (t = d = strchr (tmp,':')) {      *d++ = '\0';		/* tie off header item, point at its data */      while (*d == ' ') d++;	/* flush whitespace */      while ((tmp < t--) && (*t == ' ')) *t = '\0';      ucase (tmp);		/* coerce to uppercase */				/* external callback */      if (pl) (*pl) (env,tmp,d,host);      switch (*tmp) {		/* dispatch based on first character */      case '>':			/* possible >From: */	if (!strcmp (tmp+1,"FROM")) rfc822_parse_adrlist (&env->from,d,host);	break;      case 'B':			/* possible bcc: */	if (!strcmp (tmp+1,"CC")) rfc822_parse_adrlist (&env->bcc,d,host);	break;      case 'C':			/* possible cc: or Content-<mumble>*/	if (!strcmp (tmp+1,"C")) rfc822_parse_adrlist (&env->cc,d,host);	else if ((tmp[1] == 'O') && (tmp[2] == 'N') && (tmp[3] == 'T') &&		 (tmp[4] == 'E') && (tmp[5] == 'N') && (tmp[6] == 'T') &&		 (tmp[7] == '-') && body)	  switch (MIMEp) {	  case -1:		/* unknown if MIME or not */	    if (MIMEp = search ((unsigned char *) s-1,i,				(unsigned char *)"\012MIME-Version",				(long) 13))	  case T:		/* definitely MIME */	      rfc822_parse_content_header (body,tmp+8,d);	  }	break;      case 'D':			/* possible Date: */	if (!env->date && !strcmp (tmp+1,"ATE")) env->date = cpystr (d);	break;      case 'F':			/* possible From: */	if (!strcmp (tmp+1,"ROM")) rfc822_parse_adrlist (&env->from,d,host);	else if (!strcmp (tmp+1,"OLLOWUP-TO")) {	  t = env->followup_to = (char *) fs_get (1 + strlen (d));	  while (c = *d++) if (c != ' ') *t++ = c;	  *t++ = '\0';	}	break;      case 'I':			/* possible In-Reply-To: */	if (!env->in_reply_to && !strcmp (tmp+1,"N-REPLY-TO"))	  env->in_reply_to = cpystr (d);	break;      case 'M':			/* possible Message-ID: or MIME-Version: */	if (!env->message_id && !strcmp (tmp+1,"ESSAGE-ID"))	  env->message_id = cpystr (d);	else if (!strcmp (tmp+1,"IME-VERSION")) {				/* tie off at end of phrase */	  if (t = rfc822_parse_phrase (d)) *t = '\0';	  rfc822_skipws (&d);	/* skip whitespace */				/* known version? */	  if (strcmp (d,"1.0") && strcmp (d,"RFC-XXXX"))	    mm_log ("Warning: message has unknown MIME version",PARSE);	  MIMEp = T;		/* note that we are MIME */	}	break;      case 'N':			/* possible Newsgroups: */	if (!env->newsgroups && !strcmp (tmp+1,"EWSGROUPS")) {	  t = env->newsgroups = (char *) fs_get (1 + strlen (d));	  while (c = *d++) if (c != ' ') *t++ = c;	  *t++ = '\0';	}	break;      case 'P':			/* possible Path: */	if (!strcmp (tmp+1,"ATH")) PathP = T;	break;      case 'R':			/* possible Reply-To: */	if (!strcmp (tmp+1,"EPLY-TO"))	  rfc822_parse_adrlist (&env->reply_to,d,host);	else if (!env->references && !strcmp (tmp+1,"EFERENCES"))	  env->references = cpystr (d);	break;      case 'S':			/* possible Subject: or Sender: */	if (!env->subject && !strcmp (tmp+1,"UBJECT"))	  env->subject = cpystr (d);	else if (!strcmp (tmp+1,"ENDER"))	  rfc822_parse_adrlist (&env->sender,d,host);	break;      case 'T':			/* possible To: */	if (!strcmp (tmp+1,"O")) rfc822_parse_adrlist (&env->to,d,host);	break;      default:	break;      }    }  }  /* We require a Path: header and/or a Message-ID belonging to a known   * winning mail program, in order to believe Newsgroups:.  This is because   * of the unfortunate existance of certain cretins who believe that it   * is reasonable to transmit messages via SMTP with a "Newsgroups" header   * that were not actually posted to any of the named newsgroups.   * The authors of other high-quality email/news software are encouraged to   * use similar methods to indentify messages as coming from their software,   * and having done so, to tell us so they too can be blessed in this list.   *   * May 1998 update: as was predicted back in March 1995 when this kludge was   * first added, mail/news unifying programs are now the norm.  However, the   * encouragement in the previous paragraph didn't take, and there's no good   * way to determine bogons accurately.  Consequently, we no longer remove the   * newsgroup information from the envelope on the bogon test; we just light   * a bogon bit and let the main program worry about what to do.   */  if (env->newsgroups && !PathP && env->message_id &&      strncmp (env->message_id,"<Pine.",6) &&      strncmp (env->message_id,"<MS-C.",6) &&      strncmp (env->message_id,"<MailManager.",13) &&      strncmp (env->message_id,"<EasyMail.",11) &&      strncmp (env->message_id,"<ML-",4)) env->ngbogus = T;  fs_give ((void **) &tmp);	/* done with scratch buffer */				/* default Sender: and Reply-To: to From: */  if (!env->sender) env->sender = rfc822_cpy_adr (env->from);  if (!env->reply_to) env->reply_to = rfc822_cpy_adr (env->from);				/* now parse the body */  if (body) rfc822_parse_content (body,bs,host,depth,flags);}/* Parse a message body content * Accepts: pointer to body structure *	    body string *	    pointer to local host name *	    recursion depth *	    source driver flags */void rfc822_parse_content (BODY *body,STRING *bs,char *h,unsigned long depth,			   unsigned long flags){  char c,c1,*s,*s1;  int f;  unsigned long i,j,k,m;  PARAMETER *param;  PART *part = NIL;  if (depth > MAXMIMEDEPTH) {	/* excessively deep recursion? */    body->type = TYPETEXT;	/* yes, probably a malicious MIMEgram */    mm_log ("Ignoring excessively deep MIME recursion",PARSE);  }  if (!body->subtype)		/* default subtype if still unknown */    body->subtype = cpystr (rfc822_default_subtype (body->type));				/* note offset and sizes */  body->contents.offset = GETPOS (bs);				/* note internal body size in all cases */  body->size.bytes = body->contents.text.size = i = SIZE (bs);  if (!(flags & DR_CRLF)) body->size.bytes = strcrlflen (bs);  switch (body->type) {		/* see if anything else special to do */  case TYPETEXT:		/* text content */    if (!body->parameter) {	/* default parameters */      body->parameter = mail_newbody_parameter ();      body->parameter->attribute = cpystr ("CHARSET");      body->parameter->value = cpystr ("US-ASCII");    }				/* count number of lines */    while (i--) if ((SNX (bs)) == '\n') body->size.lines++;    break;  case TYPEMESSAGE:		/* encapsulated message */    body->nested.msg = mail_newmsg ();				/* encapsulated RFC-822 message? */    if (!strcmp (body->subtype,"RFC822")) {      switch (body->encoding) {	/* make sure valid encoding */      case ENC7BIT:		/* these are valid nested encodings */      case ENC8BIT:      case ENCBINARY:	break;      default:	mm_log ("Ignoring nested encoding of message contents",PARSE);      }				/* hunt for blank line */      for (c = '\012',j = 0; (i > j) && ((c != '\012') || (CHR(bs) != '\012'));	   j++) if ((c1 = SNX (bs)) != '\015') c = c1;      if (i > j) {		/* unless no more text */	c1 = SNX (bs);		/* body starts here */	j++;			/* advance count */      }				/* note body text offset and header size */      body->nested.msg->header.text.size = j;      body->nested.msg->text.text.size = body->contents.text.size - j;      body->nested.msg->text.offset = GETPOS (bs);      body->nested.msg->full.offset = body->nested.msg->header.offset =	body->contents.offset;      body->nested.msg->full.text.size = body->contents.text.size;				/* copy header string */      SETPOS (bs,body->contents.offset);      s = (char *) fs_get ((size_t) j + 1);      for (s1 = s,k = j; k--; *s1++ = SNX (bs));      s[j] = '\0';		/* tie off string (not really necessary) */				/* now parse the body */      rfc822_parse_msg_full (&body->nested.msg->env,&body->nested.msg->body,s,			     j,bs,h,depth+1,flags);      fs_give ((void **) &s);	/* free header string */				/* restore position */      SETPOS (bs,body->contents.offset);    }				/* count number of lines */    while (i--) if (SNX (bs) == '\n') body->size.lines++;    break;  case TYPEMULTIPART:		/* multiple parts */    switch (body->encoding) {	/* make sure valid encoding */    case ENC7BIT:		/* these are valid nested encodings */    case ENC8BIT:    case ENCBINARY:      break;    default:      mm_log ("Ignoring nested encoding of multipart contents",PARSE);    }				/* remember if digest */    f = !strcmp (body->subtype,"DIGEST");				/* find cookie */    for (s1 = NIL,param = body->parameter; param && !s1; param = param->next)      if (!strcmp (param->attribute,"BOUNDARY")) s1 = param->value;    if (!(s1 && *s1)) s1 = "-";	/* yucky default */    j = strlen (s1);		/* length of cookie and header */    c = '\012';			/* initially at beginning of line */    while (i > j) {		/* examine data */      if (m = GETPOS (bs)) m--;	/* get position in front of character */      switch (c) {		/* examine each line */      case '\015':		/* handle CRLF form */	if (CHR (bs) == '\012'){/* following LF? */	  c = SNX (bs); i--;	/* yes, slurp it */	}      case '\012':		/* at start of a line, start with -- ? */	if (i-- && ((c = SNX (bs)) == '-') && i-- && ((c = SNX (bs)) == '-')) {				/* see if cookie matches */	  for (k = j,s = s1; i-- && *s++ == (c = SNX (bs)) && --k;);	  if (k) break;		/* strings didn't match if non-zero */				/* look at what follows cookie */	  if (i && i--) switch (c = SNX (bs)) {	  case '-':		/* at end if two dashes */	    if ((i && i--) && ((c = SNX (bs)) == '-') &&		((i && i--) ? (((c = SNX (bs)) == '\015') || (c=='\012')):T)) {				/* if have a final part calculate its size */	      if (part) part->body.mime.text.size =		(m > part->body.mime.offset) ? (m - part->body.mime.offset) :0;	      part = NIL; i = 1; /* terminate scan */	    }	    break;	  case '\015':		/* handle CRLF form */	    if (i && CHR (bs) == '\012') {	      c = SNX (bs); i--;/* yes, slurp it */	    }	  case '\012':		/* new line */	    if (part) {		/* calculate size of previous */	      part->body.mime.text.size =		(m > part->body.mime.offset) ? (m-part->body.mime.offset) : 0;				/* instantiate next */	      part = part->next = mail_newbody_part ();	    }			/* otherwise start new list */	    else part = body->nested.part = mail_newbody_part ();				/* digest has a different default */	    if (f) part->body.type = TYPEMESSAGE;				/* note offset from main body */	    part->body.mime.offset = GETPOS (bs);	    break;	  default:		/* whatever it was it wasn't valid */	    break;	  }	}	break;      default:			/* not at a line */	c = SNX (bs); i--;	/* get next character */	break;      }    }				/* calculate size of any final part */    if (part) part->body.mime.text.size = i +      ((GETPOS(bs) > part->body.mime.offset) ?       (GETPOS(bs) - part->body.mime.offset) : 0);				/* make a scratch buffer */    s1 = (char *) fs_get ((size_t) (k = MAILTMPLEN));				/* parse non-empty body parts */    for (part = body->nested.part; part; part = part->next) {      if (i = part->body.mime.text.size) {				/* move to that part of the body */	SETPOS (bs,part->body.mime.offset);				/* until end of header */	while (i && ((c = CHR (bs)) != '\015') && (c != '\012')) {				/* collect text until logical end of line */	  for (j = 0,c = ' '; c; ) {				/* make sure buffer big enough */	    if (j > (k - 10)) fs_resize ((void *) &s1,k += MAILTMPLEN);	    switch (c1 = SNX (bs)) {	    case '\015':	/* return */	      if (i && (CHR (bs) == '\012')) {		c1 = SNX (bs);	/* eat any LF following */		i--;	      }	    case '\012':	/* newline, possible end of logical line */				/* tie off unless continuation */	      if (!i || ((CHR (bs) != ' ') && (CHR (bs) != '\t')))		s1[j] = c = '\0';	      break;	    case '\t':		/* tab */	    case ' ':		/* insert whitespace if not already there */	      if (c != ' ') s1[j++] = c = ' ';	      break;	    default:		/* all other characters */	      s1[j++] = c = c1;	/* insert the character into the line */	      break;	    }				/* end of data ties off the header */	    if (!--i) s1[j++] = c = '\0';	  }				/* find header item type */	  if (((s1[0] == 'C') || (s1[0] == 'c')) &&	      ((s1[1] == 'O') || (s1[1] == 'o')) &&	      ((s1[2] == 'N') || (s1[2] == 'n')) &&	      ((s1[3] == 'T') || (s1[3] == 't')) &&	      ((s1[4] == 'E') || (s1[4] == 'e')) &&	      ((s1[5] == 'N') || (s1[5] == 'n')) &&	      ((s1[6] == 'T') || (s1[6] == 't')) &&	      (s1[7] == '-') && (s = strchr (s1+8,':'))) {				/* tie off and flush whitespace */	    for (*s++ = '\0'; *s == ' '; s++);				/* parse the header */	    rfc822_parse_content_header (&part->body,ucase (s1+8),s);	  }	}				/* skip header trailing (CR)LF */	if (i && (CHR (bs) =='\015')) {i--; c1 = SNX (bs);}	if (i && (CHR (bs) =='\012')) {i--; c1 = SNX (bs);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品国产| 欧美日韩一卡二卡| 欧美日韩久久一区| 五月婷婷综合网| 奇米综合一区二区三区精品视频| 精品国内片67194| 成人av电影免费观看| 一区av在线播放| 高清视频一区二区| 国产一区二区三区四区五区入口 | 成人免费视频app| 欧美日韩免费观看一区二区三区| 中文无字幕一区二区三区 | 亚洲图片自拍偷拍| 99精品视频中文字幕| 久久久久久久久99精品| 日本欧美大码aⅴ在线播放| 色婷婷国产精品| 成人欧美一区二区三区视频网页 | 久久精品人人爽人人爽| 麻豆国产欧美日韩综合精品二区| 欧美日韩国产精品自在自线| **性色生活片久久毛片| 国产精品18久久久久久久网站| 精品人伦一区二区色婷婷| 天天做天天摸天天爽国产一区| 在线一区二区视频| 亚洲精品久久嫩草网站秘色| zzijzzij亚洲日本少妇熟睡| 欧美高清在线一区二区| 成人h版在线观看| 国产精品久久久久一区| 成人精品视频一区| 亚洲私人黄色宅男| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 丁香激情综合五月| 亚洲国产激情av| 成人伦理片在线| ㊣最新国产の精品bt伙计久久| 成人av在线一区二区三区| 国产精品日韩成人| 色狠狠桃花综合| 香蕉久久一区二区不卡无毒影院| 欧美日韩你懂的| 精品一区二区精品| 久久久久久久久久美女| 99精品视频中文字幕| 亚洲国产日韩a在线播放| 欧美专区在线观看一区| 日本在线不卡一区| 久久亚洲私人国产精品va媚药| 成人网在线播放| 亚洲一区二区四区蜜桃| 精品奇米国产一区二区三区| 国产精品一区三区| 亚洲日本免费电影| 91麻豆精品国产91久久久更新时间 | 欧美日韩你懂的| 久久国产精品无码网站| 国产日韩精品一区| 在线亚洲免费视频| 麻豆成人久久精品二区三区小说| 国产欧美一区二区三区网站| 在线观看国产91| 精品一区二区精品| 亚洲综合一区在线| 国产亚洲一区二区三区四区| 91视频你懂的| 日本亚洲视频在线| **欧美大码日韩| 欧美大片顶级少妇| 欧美这里有精品| 丁香婷婷综合激情五月色| 午夜精品福利久久久| 久久久久久电影| 4438x亚洲最大成人网| 成人一区在线观看| 日本午夜精品一区二区三区电影| 国产精品丝袜在线| 日韩一级片网址| 色婷婷av一区二区三区gif| 久久国产精品第一页| 一区二区三区四区不卡视频| 久久综合九色综合久久久精品综合| 色综合色狠狠综合色| 国产精品一区二区你懂的| 亚洲成人av一区二区| 国产精品你懂的在线| 精品噜噜噜噜久久久久久久久试看 | 26uuuu精品一区二区| 色妹子一区二区| 成人黄动漫网站免费app| 麻豆久久一区二区| 午夜亚洲国产au精品一区二区| 国产欧美日韩在线| 日韩欧美综合在线| 欧美日韩一区二区电影| 91视频精品在这里| 99久久er热在这里只有精品15 | 欧美aⅴ一区二区三区视频| 亚洲日本丝袜连裤袜办公室| 国产精品色婷婷久久58| 国产欧美日韩卡一| 久久久久久电影| 久久九九国产精品| 国产亚洲欧美日韩在线一区| 精品国产一区二区三区不卡 | 国产成人精品影视| 韩国成人精品a∨在线观看| 麻豆国产一区二区| 日韩av一区二区三区四区| 日韩和欧美一区二区三区| 亚洲成国产人片在线观看| 一区二区三区视频在线观看| 国产精品传媒在线| 亚洲伦理在线精品| 亚洲精品国产品国语在线app| 亚洲欧美另类久久久精品2019| 国产精品网站在线播放| 国产精品久久网站| 亚洲毛片av在线| 亚洲午夜久久久久久久久久久| 亚洲成av人片一区二区三区| 日韩高清国产一区在线| 美女诱惑一区二区| 国产一区中文字幕| 国产成人av一区二区三区在线| 国产高清精品网站| 97久久超碰国产精品| 欧美亚洲国产一区二区三区| 欧美色涩在线第一页| 欧美日韩国产精品成人| 日韩午夜在线影院| 久久久99免费| 亚洲视频在线一区二区| 亚洲高清免费观看高清完整版在线观看| 午夜精品福利一区二区蜜股av| 免费观看在线综合| 国产一区二区久久| k8久久久一区二区三区| 在线免费视频一区二区| 欧美一二三四区在线| 国产欧美精品国产国产专区| 亚洲日本一区二区| 奇米影视在线99精品| 粉嫩一区二区三区性色av| 色先锋aa成人| 欧美成人一区二区三区片免费| 国产精品毛片无遮挡高清| 一二三区精品福利视频| 久久国产欧美日韩精品| 99re视频精品| 精品久久久三级丝袜| 亚洲欧美激情视频在线观看一区二区三区 | 884aa四虎影成人精品一区| 精品黑人一区二区三区久久| 亚洲精品视频在线| 久久国产夜色精品鲁鲁99| 成人av在线看| 欧美草草影院在线视频| 国产精品福利一区| 秋霞电影网一区二区| 波多野结衣一区二区三区| 欧美精品久久久久久久久老牛影院| 久久精品夜色噜噜亚洲aⅴ| 亚洲h在线观看| 成人午夜视频网站| 日韩西西人体444www| 一区二区在线观看不卡| 国产成人啪免费观看软件| 欧美无砖砖区免费| 国产精品久久久久四虎| 国产一区二区中文字幕| 6080午夜不卡| 亚洲国产欧美在线| 91免费视频观看| 国产精品免费人成网站| 国产乱码精品一区二区三区av | 国产一区二区精品在线观看| 337p亚洲精品色噜噜狠狠| 亚洲激情五月婷婷| 成人18精品视频| 国产亚洲一二三区| 国内久久精品视频| 日韩精品专区在线影院重磅| 日韩精品亚洲专区| 欧美日韩中文一区| 亚洲一区二区精品视频| 一本大道av伊人久久综合| 中文字幕一区二区三区四区| 国内精品久久久久影院一蜜桃| 欧美哺乳videos| 韩日欧美一区二区三区| 日韩免费视频一区| 麻豆视频一区二区| 精品成a人在线观看| 国产真实乱子伦精品视频| 精品粉嫩超白一线天av| 久久精品国产久精国产| 欧美成人性福生活免费看|