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

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

?? htmimprs.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								       HTAtom.c**	HTHashList: hash indexed array of MIME header parsers****	(c) COPYRIGHT MIT 1996.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTMIMPrs.c,v 2.11 2000/07/28 10:27:15 kahan Exp $****      See HTHshLst.html for a description of HashLists.**** Authors:**	EGP	Eric Prud'hommeaux w3***//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTString.h"#include "HTMIMPrs.h"struct _HTMIMEParseEl{    HTMIMEParseEl * 	next;    char *		token;    BOOL		caseSensitive;    HTParserCallback * 	pFunk;};PRIVATE HTMIMEParseEl * HTMIMEParseEl_new(HTMIMEParseEl ** pBefore, 					  const char * token, 					  BOOL caseSensitive, 					  HTParserCallback * callback){    HTMIMEParseEl * ret;    if ((ret = (HTMIMEParseEl *) HT_MALLOC(sizeof(HTMIMEParseEl))) == NULL)        HT_OUTOFMEM("HTMIMEParseEl");    ret->next = *pBefore;    *pBefore = ret;    if ((ret->token = (char *) HT_MALLOC(strlen(token)+1)) == NULL)        HT_OUTOFMEM("token");    strcpy((char *)ret->token, token);    ret->caseSensitive = caseSensitive;    ret->pFunk = callback;        return ret;}PRIVATE int HTMIMEParseEl_delete(HTMIMEParseEl * me, HTMIMEParseEl ** pBefore){    *pBefore = me->next;    HT_FREE(me->token);    HT_FREE(me);    return HT_OK;}PRIVATE int HTMIMEParseSet_hash(HTMIMEParseSet * me, const char * token){    int ret;    const char * p;    for (p=token, ret=0; *p; p++) {        char ch;        ch = *(unsigned char *) p;	ch = TOLOWER(ch);        ret = (ret * 3 +(ch)) % me->size;    }    return ret;}PUBLIC HTMIMEParseSet * HTMIMEParseSet_new(int hashSize){    HTMIMEParseSet * me;    if ((me = (HTMIMEParseSet *) HT_CALLOC(1, sizeof(HTMIMEParseSet))) == NULL)        HT_OUTOFMEM("HTMIMEParseSet");    me->size = hashSize;    return me;}PUBLIC int HTMIMEParseSet_deleteAll (HTMIMEParseSet * me){    int i;    HTMIMEParseEl * pEl, * next;    if (me && me->parsers) {	for (i=0; i<me->size; i++) {	    for (pEl = me->parsers[i]; pEl; pEl = next) {		next = pEl->next;		HT_FREE(pEl->token);		HT_FREE(pEl);	    }	}	HT_FREE(me->parsers);	HT_FREE(me);    }    return HT_OK;}PUBLIC HTMIMEParseEl * HTMIMEParseSet_add (HTMIMEParseSet * me, 					   const char * token, 					   BOOL caseSensitive, 					   HTParserCallback * callback){    int hash;    /*		Insure hash list    */    if (!me->parsers) {        if (!me->size)	    me->size = HT_S_HASH_SIZE;	if ((me->parsers = (HTMIMEParseEl **) HT_CALLOC(me->size, sizeof(HTMIMEParseEl *))) == NULL)	    HT_OUTOFMEM("HTMIME parsers");    }    hash = HTMIMEParseSet_hash(me, token);    /*		Add a new entry    */    return HTMIMEParseEl_new(&me->parsers[hash], token, 			     caseSensitive, callback);}PUBLIC HTMIMEParseEl * HTMIMEParseSet_addRegex (HTMIMEParseSet * me, 						const char * token, 						BOOL caseSensitive, 						HTParserCallback * callback){    return HTMIMEParseEl_new(&me->regexParsers, token, 			     caseSensitive, callback);}PUBLIC int HTMIMEParseSet_delete (HTMIMEParseSet * me, const char * token){    int hash, i;    HTMIMEParseEl * pEl, ** last;        hash = HTMIMEParseSet_hash(me, token);    pEl = me->parsers[hash];    last = &me->parsers[hash];    for (i = 0; i < 2; i++) { /* do both  */        for (; pEl; last = &pEl->next, pEl = pEl->next) {	    if ((pEl->caseSensitive && !strcmp(pEl->token, token)) || 		(!pEl->caseSensitive && !strcasecomp(pEl->token, token))) {	        return HTMIMEParseEl_delete(pEl, last);	    }	}	pEl = me->regexParsers;	last = &me->regexParsers;    }    return HT_ERROR;}/***	Search registered parsers to find suitable one for this token**	If a parser isn't found, the function returns HT_OK*/PUBLIC int HTMIMEParseSet_dispatch (HTMIMEParseSet * me, HTRequest * request, 				    char * token, char * value, BOOL * pFound){    int hash;    HTResponse * response = HTRequest_response(request);    HTMIMEParseEl * pEl;        if (pFound) *pFound = NO;    /*    **  Get a hash value for this token. This has is a function of the hash    **  size given when the MIME header parse set was created.    */    hash = HTMIMEParseSet_hash(me, token);    /*    **  Search for an exact match    */    for (pEl = me->parsers[hash]; pEl; pEl = pEl->next) {        if ((pEl->caseSensitive && !strcmp(pEl->token, token)) || 	    (!pEl->caseSensitive && !strcasecomp(pEl->token, token))) {	    if (pFound) *pFound = YES;	    if (!pEl->pFunk) return HT_OK; /* registered with no callback*/	    return (*pEl->pFunk)(request, response, token, value);	}    }    /*    **  Search for best match using regular expressions.     */    for (pEl = me->regexParsers; pEl; pEl = pEl->next) {        if ((pEl->caseSensitive && HTStrMatch(pEl->token, token)) || 	    (!pEl->caseSensitive && HTStrCaseMatch(pEl->token, token))) {	    if (pFound) *pFound = YES;	    if (!pEl->pFunk) return HT_OK; /* registered with no callback*/	    return (*pEl->pFunk)(request, response, token, value);	}    }    return HT_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品最新网址| 亚洲精品一区二区三区香蕉| 激情综合网最新| 亚洲视频小说图片| 久久久久久久久久久久久女国产乱| 色噜噜狠狠成人网p站| 韩国精品一区二区| 午夜亚洲福利老司机| 国产精品久久久久久久久免费丝袜| 日韩一区二区免费在线观看| 色呦呦一区二区三区| 国产成人免费9x9x人网站视频| 日韩av电影天堂| 亚洲一区二区三区自拍| 日本一区二区视频在线观看| 欧美成人高清电影在线| 欧美揉bbbbb揉bbbbb| 99v久久综合狠狠综合久久| 狠狠色综合日日| 日韩成人免费看| 亚洲成人av电影在线| 亚洲卡通欧美制服中文| 国产区在线观看成人精品| 精品日韩99亚洲| 欧美一区欧美二区| 欧美久久久久久久久久| 欧美在线播放高清精品| 91在线看国产| 91麻豆福利精品推荐| 成人av动漫网站| 成人黄色软件下载| 成人avav在线| jlzzjlzz亚洲女人18| aaa亚洲精品| 成人av网站在线| 97精品国产97久久久久久久久久久久| 国产精品123| 成人综合婷婷国产精品久久免费| 国产麻豆视频一区| 国产精品自产自拍| 国产精品91一区二区| 国产伦精品一区二区三区视频青涩 | 欧美激情自拍偷拍| 久久久亚洲精华液精华液精华液| 久久综合狠狠综合久久激情| 精品日韩在线观看| 国产亚洲欧美日韩日本| 久久精品一区蜜桃臀影院| 久久久三级国产网站| 久久精品一级爱片| 中文字幕不卡在线观看| 日韩久久一区二区| 一区二区三区四区在线播放 | 欧美日韩精品专区| 这里是久久伊人| 国产一区在线观看视频| 在线观看日韩精品| 欧美日韩视频在线第一区| 欧美日韩aaa| 欧美不卡一区二区| 国产欧美日韩综合| 亚洲色图19p| 日韩主播视频在线| 国产成人在线影院| 91美女视频网站| 欧美日韩国产在线观看| 欧美tickle裸体挠脚心vk| 国产欧美日韩精品在线| 亚洲一区影音先锋| 乱中年女人伦av一区二区| 成人免费毛片app| 欧美在线影院一区二区| 精品捆绑美女sm三区| 中文字幕一区三区| 天天操天天综合网| 国模套图日韩精品一区二区| 一本大道久久a久久综合婷婷| 欧美精品成人一区二区三区四区| 2020日本不卡一区二区视频| 中文字幕一区日韩精品欧美| 午夜av区久久| 91高清视频在线| 欧美日韩激情一区二区| 国产亚洲欧美在线| 午夜欧美2019年伦理| 国产精品中文有码| 精品1区2区3区| 久久久不卡网国产精品一区| 亚洲免费观看高清完整版在线| 奇米影视一区二区三区小说| 国产suv一区二区三区88区| 精品视频资源站| 国产视频亚洲色图| 久久久综合视频| 中文字幕一区二区5566日韩| 男人的天堂亚洲一区| av毛片久久久久**hd| 欧美一区二区女人| 玉米视频成人免费看| 国产成人精品一区二| 欧美人妖巨大在线| 国产精品青草久久| 老司机精品视频导航| 欧美日韩视频专区在线播放| 国产精品免费观看视频| 狠狠色丁香久久婷婷综| 欧美日韩国产精品成人| 亚洲免费电影在线| 成人小视频在线观看| 欧美电影精品一区二区| 五月综合激情日本mⅴ| 94色蜜桃网一区二区三区| 久久综合999| 喷水一区二区三区| 制服丝袜亚洲网站| 亚洲激情中文1区| 不卡的av中国片| 久久久久久久久久久久久夜| 免费在线观看视频一区| 欧美性感一区二区三区| 亚洲日本在线看| 国产不卡在线播放| 日韩精品中文字幕在线不卡尤物 | 国产精品18久久久久久久久| 欧美久久久久久久久中文字幕| 亚洲综合自拍偷拍| 色综合久久88色综合天天免费| 国产精品国产三级国产aⅴ无密码| 国产精品1区2区| 久久久久久影视| 国内精品视频一区二区三区八戒| 欧美一区二区视频观看视频| 婷婷综合另类小说色区| 欧美午夜电影在线播放| 亚洲一区二区三区爽爽爽爽爽| 色婷婷综合久色| 亚洲老妇xxxxxx| 欧美亚洲动漫制服丝袜| 一区二区三区在线免费| 欧美性色aⅴ视频一区日韩精品| 亚洲在线视频网站| 欧美群妇大交群中文字幕| 石原莉奈在线亚洲三区| 欧美久久久一区| 久久91精品国产91久久小草| 精品国精品国产尤物美女| 精品一区二区三区香蕉蜜桃| 久久伊99综合婷婷久久伊| 亚洲高清三级视频| 久久精品国产精品青草| 欧美性淫爽ww久久久久无| 亚洲一区二区三区国产| 欧美视频在线一区二区三区| 舔着乳尖日韩一区| 91精品国产综合久久久久久| 美女视频黄a大片欧美| 精品国产电影一区二区| 国产成人免费在线观看不卡| 国产精品久久久久久久久免费樱桃 | 在线精品视频一区二区三四| 亚洲最大色网站| 日韩美女视频一区二区在线观看| 国产精品一区久久久久| 亚洲日本在线天堂| 欧美一区二区在线播放| 国产精品一区久久久久| 一区二区三区欧美视频| 日韩一级黄色大片| 成人性生交大片| 亚洲国产wwwccc36天堂| 精品久久久久一区二区国产| 成人在线视频一区| 天堂资源在线中文精品| 久久综合精品国产一区二区三区 | 欧美视频你懂的| 久久99久久久久久久久久久| 国产欧美一区二区在线| 91黄色小视频| 免费在线观看视频一区| 国产精品伦一区二区三级视频| 欧美日本一区二区| 国产成人av电影免费在线观看| 亚洲免费观看高清完整版在线| 日韩一区二区免费视频| 成人av资源网站| 蜜臀精品久久久久久蜜臀| 日韩一区欧美小说| 日韩片之四级片| 97久久人人超碰| 卡一卡二国产精品| 一区二区三区四区不卡视频| 久久女同互慰一区二区三区| 欧美日韩午夜精品| 成人精品国产福利| 美女在线观看视频一区二区| 日韩伦理av电影| 久久久99免费| 91精品在线一区二区| 91免费国产在线观看| 国产一区日韩二区欧美三区|