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

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

?? rfc822.c

?? SIP 1.5.0源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	j = bs->size;		/* save upper level size */				/* set offset for next level, fake size to i */	bs->size = GETPOS (bs) + i;	part->body.mime.text.size -= i;				/* now parse it */	rfc822_parse_content (&part->body,bs,h,depth+1,flags);	bs->size = j;		/* restore current level size */      }      else part->body.subtype =	/* default subtype if necessary */	cpystr (rfc822_default_subtype (part->body.type));    }    fs_give ((void **) &s1);	/* finished with scratch buffer */    break;  default:			/* nothing special to do in any other case */    break;  }}/* Parse RFC822 body content header * Accepts: body to write to *	    possible content name *	    remainder of header */void rfc822_parse_content_header (BODY *body,char *name,char *s){  char c,*t;  long i;  STRINGLIST *stl;				/* flush whitespace */  if (t = strchr (name,' ')) *t = '\0';  switch (*name) {		/* see what kind of content */  case 'I':			/* possible Content-ID */    if (!(strcmp (name+1,"D") || body->id)) body->id = cpystr (s);    break;  case 'D':			/* possible Content-Description */    if (!(strcmp (name+1,"ESCRIPTION") || body->description))      body->description = cpystr (s);    if (!(strcmp (name+1,"ISPOSITION") || body->disposition.type)) {				/* get type word */      if (!(name = rfc822_parse_word (s,ptspecials))) break;      c = *name;		/* remember delimiter */      *name = '\0';		/* tie off type */      body->disposition.type = ucase (cpystr (s));      *name = c;		/* restore delimiter */      rfc822_skipws (&name);	/* skip whitespace */      rfc822_parse_parameter (&body->disposition.parameter,name);    }    break;  case 'L':			/* possible Content-Language */    if (!(strcmp (name+1,"ANGUAGE") || body->language)) {      stl = NIL;		/* process languages */      while (s && (name = rfc822_parse_word (s,ptspecials))) {	c = *name;		/* save delimiter */	*name = '\0';		/* tie off subtype */	if (stl) stl = stl->next = mail_newstringlist ();	else stl = body->language = mail_newstringlist ();	stl->text.data = (unsigned char *) ucase (cpystr (s));	stl->text.size = strlen ((char *) stl->text.data);	*name = c;		/* restore delimiter */	rfc822_skipws (&name);	/* skip whitespace */	if (*name == ',') {	/* any more languages? */	  s = ++name;		/* advance to it them */	  rfc822_skipws (&s);	}	else s = NIL;		/* bogus or end of list */      }    }    break;  case 'M':			/* possible Content-MD5 */    if (!(strcmp (name+1,"D5") || body->md5)) body->md5 = cpystr (s);    break;  case 'T':			/* possible Content-Type/Transfer-Encoding */    if (!(strcmp (name+1,"YPE") || body->subtype || body->parameter)) {				/* get type word */      if (!(name = rfc822_parse_word (s,ptspecials))) break;      c = *name;		/* remember delimiter */      *name = '\0';		/* tie off type */      ucase (s);		/* search for body type */      for (i=0; (i<=TYPEMAX) && body_types[i] && strcmp(s,body_types[i]); i++);      if (i > TYPEMAX) body->type = TYPEOTHER;      else {			/* if empty slot, assign it to this type */	if (!body_types[i]) body_types[i] = cpystr (s);	body->type = (unsigned short) i;      }      *name = c;		/* restore delimiter */      rfc822_skipws (&name);	/* skip whitespace */      if ((*name == '/') &&	/* subtype? */	  (name = rfc822_parse_word ((s = ++name),ptspecials))) {	c = *name;		/* save delimiter */	*name = '\0';		/* tie off subtype */	rfc822_skipws (&s);	/* copy subtype */	if (s) body->subtype = ucase (cpystr (s));	*name = c;		/* restore delimiter */	rfc822_skipws (&name);	/* skip whitespace */      }      else {			/* no subtype */	if (!name) {		/* did the fool have a subtype delimiter? */	  name = s;		/* barf, restore pointer */	  rfc822_skipws (&name);/* skip leading whitespace */	}      }      rfc822_parse_parameter (&body->parameter,name);    }    else if (!strcmp (name+1,"RANSFER-ENCODING")) {				/* flush out any confusing whitespace */      if (t = strchr (ucase (s),' ')) *t = '\0';				/* search for body encoding */      for (i = 0; (i <= ENCMAX) && body_encodings[i] &&	   strcmp (s,body_encodings[i]); i++);      if (i > ENCMAX) body->type = ENCOTHER;      else {			/* if empty slot, assign it to this type */	if (!body_encodings[i]) body_encodings[i] = cpystr (s);	body->encoding = (unsigned short) i;      }    }    break;  default:			/* otherwise unknown */    break;  }}/* Parse RFC822 body parameter list * Accepts: parameter list to write to *	    text of list */void rfc822_parse_parameter (PARAMETER **par,char *text){  char c,*s,tmp[MAILTMPLEN];  PARAMETER *param = NIL;				/* parameter list? */  while (text && (*text == ';') &&	 (text = rfc822_parse_word ((s = ++text),ptspecials))) {    c = *text;			/* remember delimiter */    *text = '\0';		/* tie off attribute name */    rfc822_skipws (&s);		/* skip leading attribute whitespace */    if (!*s) *text = c;		/* must have an attribute name */    else {			/* instantiate a new parameter */      if (*par) param = param->next = mail_newbody_parameter ();      else param = *par = mail_newbody_parameter ();      param->attribute = ucase (cpystr (s));      *text = c;		/* restore delimiter */      rfc822_skipws (&text);	/* skip whitespace before equal sign */      if ((*text != '=') ||	/* missing value is a no-no too */	  !(text = rfc822_parse_word ((s = ++text),ptspecials)))	param->value = cpystr ("UNKNOWN_PARAMETER_VALUE");      else {			/* good, have equals sign */	c = *text;		/* remember delimiter */	*text = '\0';		/* tie off value */	rfc822_skipws (&s);	/* skip leading value whitespace */	if (*s) param->value = rfc822_cpy (s);	*text = c;		/* restore delimiter */	rfc822_skipws (&text);      }    }  }  if (!text) {			/* must be end of poop */    if (param && param->attribute)      sprintf (tmp,"Missing parameter value: %.80s",param->attribute);    else strcpy (tmp,"Missing parameter");    mm_log (tmp,PARSE);  }  else if (*text) {		/* must be end of poop */    sprintf (tmp,"Unexpected characters at end of parameters: %.80s",text);    mm_log (tmp,PARSE);  }}/* Parse RFC822 address list * Accepts: address list to write to *	    input string *	    default host name */void rfc822_parse_adrlist (ADDRESS **lst,char *string,char *host){  char c,*s,tmp[MAILTMPLEN];  ADDRESS *last = *lst;  ADDRESS *adr;  if (!string) return;		/* no string */  rfc822_skipws (&string);	/* skip leading WS */  if (!*string) return;		/* empty string */				/* run to tail of list */  if (last) while (last->next) last = last->next;  while (string) {		/* loop until string exhausted */				/* got an address? */    if (adr = rfc822_parse_address (lst,last,&string,host,0)) {      last = adr;		/* new tail address */      if (string) {		/* analyze what follows */	rfc822_skipws (&string);	switch (c = *string) {	case ',':		/* comma? */	  ++string;		/* then another address follows */	  break;	default:	  s = isalnum (c) ? "Must use comma to separate addresses: %.80s" :	    "Unexpected characters at end of address: %.80s";	  sprintf (tmp,s,string);	  mm_log (tmp,PARSE);	  last = last->next = mail_newaddr ();	  last->mailbox = cpystr ("UNEXPECTED_DATA_AFTER_ADDRESS");	  last->host = cpystr (errhst);				/* falls through */	case '\0':		/* null-specified address? */	  string = NIL;		/* punt remainder of parse */	  break;	}      }    }    else if (string) {		/* bad mailbox */      rfc822_skipws (&string);	/* skip WS */      if (!*string) strcpy (tmp,"Missing address after comma");      else sprintf (tmp,"Invalid mailbox list: %.80s",string);      mm_log (tmp,PARSE);      string = NIL;      (adr = mail_newaddr ())->mailbox = cpystr ("INVALID_ADDRESS");      adr->host = cpystr (errhst);      if (last) last = last->next = adr;      else *lst = last = adr;      break;    }  }}/* Parse RFC822 address * Accepts: address list to write to *	    tail of address list *	    pointer to input string *	    default host name *	    group nesting depth * Returns: new list tail */ADDRESS *rfc822_parse_address (ADDRESS **lst,ADDRESS *last,char **string,			       char *defaulthost,unsigned long depth){  ADDRESS *adr;  if (!*string) return NIL;	/* no string */  rfc822_skipws (string);	/* skip leading WS */  if (!**string) return NIL;	/* empty string */  if (adr = rfc822_parse_group (lst,last,string,defaulthost,depth)) last = adr;				/* got an address? */  else if (adr = rfc822_parse_mailbox (string,defaulthost)) {    if (!*lst) *lst = adr;	/* yes, first time through? */    else last->next = adr;	/* no, append to the list */				/* set for subsequent linking */    for (last = adr; last->next; last = last->next);  }  else if (*string) return NIL;  return last;}/* Parse RFC822 group * Accepts: address list to write to *	    pointer to tail of address list *	    pointer to input string *	    default host name *	    group nesting depth */ADDRESS *rfc822_parse_group (ADDRESS **lst,ADDRESS *last,char **string,			     char *defaulthost,unsigned long depth){  char tmp[MAILTMPLEN];  char *p,*s;  ADDRESS *adr;  if (depth > MAXGROUPDEPTH) {	/* excessively deep recursion? */    mm_log ("Ignoring excessively deep group recursion",PARSE);    return NIL;			/* probably abusive */  }  if (!*string) return NIL;	/* no string */  rfc822_skipws (string);	/* skip leading WS */  if (!**string ||		/* trailing whitespace or not group */      ((*(p = *string) != ':') && !(p = rfc822_parse_phrase (*string))))    return NIL;  s = p;			/* end of candidate phrase */  rfc822_skipws (&s);		/* find delimiter */  if (*s != ':') return NIL;	/* not really a group */  *p = '\0';			/* tie off group name */  p = ++s;			/* continue after the delimiter */  rfc822_skipws (&p);		/* skip subsequent whitespace */				/* write as address */  (adr = mail_newaddr ())->mailbox = rfc822_cpy (*string);  if (!*lst) *lst = adr;	/* first time through? */  else last->next = adr;	/* no, append to the list */  last = adr;			/* set for subsequent linking */  *string = p;			/* continue after this point */  while (*string && **string && (**string != ';')) {    if (adr = rfc822_parse_address (lst,last,string,defaulthost,depth+1)) {      last = adr;		/* new tail address */      if (*string) {		/* anything more? */	rfc822_skipws (string);	/* skip whitespace */	switch (**string) {	/* see what follows */	case ',':		/* another address? */	  ++*string;		/* yes, skip past the comma */	case ';':		/* end of group? */	case '\0':		/* end of string */	  break;	default:	  sprintf (tmp,"Unexpected characters after address in group: %.80s",		   *string);	  mm_log (tmp,PARSE);	  *string = NIL;	/* cancel remainder of parse */	  last = last->next = mail_newaddr ();	  last->mailbox = cpystr ("UNEXPECTED_DATA_AFTER_ADDRESS_IN_GROUP");	  last->host = cpystr (errhst);	}      }    }    else {			/* bogon */      sprintf (tmp,"Invalid group mailbox list: %.80s",*string);      mm_log (tmp,PARSE);      *string = NIL;		/* cancel remainder of parse */      (adr = mail_newaddr ())->mailbox = cpystr ("INVALID_ADDRESS_IN_GROUP");      adr->host = cpystr (errhst);      last = last->next = adr;    }  }  if (*string) {		/* skip close delimiter */    if (**string == ';') ++*string;    rfc822_skipws (string);  }				/* append end of address mark to the list */  last->next = (adr = mail_newaddr ());  last = adr;			/* set for subsequent linking */  return last;			/* return the tail */}/* Parse RFC822 mailbox * Accepts: pointer to string pointer *	    default host * Returns: address list * * Updates string pointer */ADDRESS *rfc822_parse_mailbox (char **string,char *defaulthost){  ADDRESS *adr = NIL;  char *s,*end;  parsephrase_t pp = (parsephrase_t) mail_parameters (NIL,GET_PARSEPHRASE,NIL);  if (!*string) return NIL;	/* no string */  rfc822_skipws (string);	/* flush leading whitespace */  if (!**string) return NIL;	/* empty string */  if (*(s = *string) == '<') 	/* note start, handle case of phraseless RA */    adr = rfc822_parse_routeaddr (s,string,defaulthost);				/* otherwise, expect at least one word */  else if (end = rfc822_parse_phrase (s)) {    if ((adr = rfc822_parse_routeaddr (end,string,defaulthost))) {				/* phrase is a personal name */      if (adr->personal) fs_give ((void **) &adr->personal);      *end = '\0';		/* tie off phrase */      adr->personal = rfc822_cpy (s);    }				/* call external phraseparser if phrase only */    else if (pp && rfc822_phraseonly (end) &&	     (adr = (*pp) (s,end,defaulthost))) {      *string = end;		/* update parse pointer */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一品视频| 精品日韩欧美一区二区| 欧美高清视频www夜色资源网| 欧美成人一区二区三区片免费| 欧美激情中文不卡| 日本不卡一区二区三区| 暴力调教一区二区三区| 日韩美女一区二区三区四区| 亚洲综合色成人| 99久久精品久久久久久清纯| 精品88久久久久88久久久| 亚洲国产精品天堂| 91免费视频观看| 国产精品婷婷午夜在线观看| 免费成人在线影院| 欧美日本在线视频| 亚洲日本乱码在线观看| 国产超碰在线一区| 久久综合色一综合色88| 青青草国产精品97视觉盛宴| 欧美日韩一级视频| 亚洲色图欧美偷拍| 99久久99久久免费精品蜜臀| 国产午夜精品久久久久久免费视| 久久不见久久见免费视频1| 欧美日韩高清在线| 亚洲妇女屁股眼交7| 91浏览器入口在线观看| 亚洲天堂av一区| 北条麻妃国产九九精品视频| 国产精品情趣视频| 成人精品国产一区二区4080| 国产日韩欧美综合在线| 国产成人av一区二区三区在线观看| 日韩亚洲欧美在线| 久久国产麻豆精品| 久久综合久久鬼色| 国产成人精品影视| 国产精品每日更新| 99热精品国产| 亚洲色图在线播放| 在线观看视频一区二区| 婷婷开心激情综合| 欧美一区二区在线播放| 久久精品国产第一区二区三区| 日韩欧美自拍偷拍| 国产成人精品一区二区三区网站观看| 国产亚洲精品中文字幕| 国v精品久久久网| 国产精品美女一区二区| 99久久国产综合色|国产精品| 亚洲精品国久久99热| 欧美日韩视频在线第一区| 日韩av电影免费观看高清完整版| 日韩欧美精品在线视频| 国产宾馆实践打屁股91| 亚洲卡通动漫在线| 欧美日韩免费一区二区三区| 激情综合五月天| 国产精品美日韩| 欧美精三区欧美精三区| 国内精品国产成人国产三级粉色 | 日韩成人午夜电影| 2021中文字幕一区亚洲| 91免费小视频| 久久不见久久见中文字幕免费| 国产精品视频一二三| 欧美视频精品在线观看| 国产精品一级片| 亚洲视频网在线直播| 欧美一级日韩不卡播放免费| 懂色av一区二区三区免费看| 亚洲精品一二三| 久久老女人爱爱| 欧美体内she精高潮| 国产在线不卡一区| 亚洲高清三级视频| 中文字幕av一区 二区| 欧美一级国产精品| 色综合天天综合狠狠| 精品一区二区三区在线播放| 亚洲欧美激情在线| 国产欧美精品一区二区三区四区| 欧美性感一区二区三区| 不卡一二三区首页| 激情综合网av| 日本中文字幕不卡| 一区二区三区高清| 国产精品入口麻豆九色| 日韩免费福利电影在线观看| 欧美日韩一区二区三区在线| 成人不卡免费av| 精品在线你懂的| 日韩电影在线免费| 亚洲亚洲人成综合网络| 亚洲视频中文字幕| 欧美韩日一区二区三区| 精品女同一区二区| 日韩视频123| 欧美一级一级性生活免费录像| 欧美亚日韩国产aⅴ精品中极品| av激情亚洲男人天堂| 粉嫩13p一区二区三区| 国产精品夜夜爽| 狠狠色丁香婷婷综合久久片| 视频一区二区国产| 日本怡春院一区二区| 香港成人在线视频| 亚洲电影一级黄| 亚洲一级片在线观看| 一区二区视频在线| 亚洲乱码国产乱码精品精98午夜| ...av二区三区久久精品| 国产精品美女一区二区在线观看| 国产蜜臀av在线一区二区三区| 久久综合精品国产一区二区三区| 精品播放一区二区| 国产亚洲精品久| 一区二区中文字幕在线| 亚洲欧美视频在线观看视频| 亚洲婷婷国产精品电影人久久| 日韩久久一区二区| 亚洲高清视频在线| 日韩成人精品在线观看| 美脚の诱脚舐め脚责91| 国产一区视频网站| av色综合久久天堂av综合| 色av成人天堂桃色av| 欧美影视一区在线| 欧美精品国产精品| 精品对白一区国产伦| 日本一区二区在线不卡| 自拍av一区二区三区| 亚洲综合丁香婷婷六月香| 视频一区国产视频| 国产黄色成人av| 99久久国产免费看| 欧美一区二区三区思思人| 精品国产网站在线观看| 亚洲欧洲精品天堂一级| 亚洲精品欧美激情| 美女免费视频一区| gogo大胆日本视频一区| 欧美精品一二三| 久久久久国产精品人| 一区二区三区中文字幕| 日韩电影在线观看一区| av男人天堂一区| 日韩欧美在线网站| 亚洲免费资源在线播放| 蜜臀精品久久久久久蜜臀 | 久久久国产精品午夜一区ai换脸| 国产精品毛片大码女人| 亚瑟在线精品视频| 国产成人夜色高潮福利影视| 欧美体内she精高潮| 欧美激情中文不卡| 美女看a上一区| 色94色欧美sute亚洲线路二| 精品国产乱码久久久久久影片| 国产欧美一区二区在线| 日韩精品成人一区二区三区| 成人av综合一区| 日韩亚洲欧美在线观看| 亚洲永久精品国产| 成人午夜电影小说| 日韩手机在线导航| 亚洲自拍偷拍网站| 波多野结衣在线aⅴ中文字幕不卡| 欧美一区二区视频在线观看 | 国产精品伦一区二区三级视频| 午夜视频一区二区| 91性感美女视频| 久久青草欧美一区二区三区| 日韩国产精品久久久久久亚洲| 波多野结衣中文字幕一区| 久久综合久久久久88| 免费在线观看一区| 欧美在线观看一区二区| 中文字幕不卡在线观看| 国产一区三区三区| 日韩久久久精品| 三级亚洲高清视频| 欧美性色aⅴ视频一区日韩精品| 欧美极品美女视频| 国产成人丝袜美腿| 精品奇米国产一区二区三区| 日韩高清在线不卡| 欧美日韩精品专区| 午夜亚洲国产au精品一区二区| 在线免费观看成人短视频| 亚洲欧洲精品一区二区精品久久久 | 国产美女主播视频一区| 欧美一区二区三区不卡| 亚洲成av人**亚洲成av**| 日本高清成人免费播放| 亚洲欧洲日本在线| 91麻豆福利精品推荐| 亚洲精品videosex极品| 色综合咪咪久久|