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

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

?? htproxy.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*	HTGateway_add**	-------------**	Registers a gateway as the server to contact for a specific**	access method. `gateway' should be a fully valid name, like**	"http://gateway.w3.org:8001" but domain name is not required.**	If an entry exists for this access then delete it and use the **	ne one. Returns YES if OK, else NO*/PUBLIC BOOL HTGateway_add (const char * access, const char * gate){    if (!gateways)	gateways = HTList_new();    return add_object(gateways, access, gate, NO, -1);}/***	Removes all registered gateways*/PUBLIC BOOL HTGateway_deleteAll (void){    if (remove_allObjects(gateways)) {	HTList_delete(gateways);	gateways = NULL;	return YES;    }    return NO;}/*	HTNoProxy_add**	-------------**	Registers a host name or a domain as a place where no proxy should**	be contacted - for example a very fast link. If `port' is '0' then**	it applies to all ports and if `access' is NULL then it applies to**	to all access methods.****	Examples:	w3.org**			www.close.com*/PUBLIC BOOL HTNoProxy_add (const char * host, const char * access,			   unsigned port){    if (!noproxy)	noproxy = HTList_new();        return add_hostname(noproxy, host, access, port, NO, -1);}/*	HTNoProxy_addRegex**	------------------**	Registers a regular expression where URIs matching this expression**      should go directly and not via a proxy.***/PUBLIC BOOL HTNoProxy_addRegex (const char * regex, int regex_flags){    if (!noproxy)	noproxy = HTList_new();    #ifdef HT_POSIX_REGEX    return add_hostname(noproxy, regex, NULL, 0, YES, regex_flags);#else    return add_hostname(noproxy, regex, NULL, 0, NO, -1);#endif}/*	HTNoProxy_deleteAll**	-------------------**	Removes all registered no_proxy directives*/PUBLIC BOOL HTNoProxy_deleteAll (void){    if (remove_AllHostnames(noproxy)) {	HTList_delete(noproxy);	noproxy = NULL;	return YES;    }    return NO;}/*      HTNProxy_noProxyIsOnlyProxy**     `----------------------------**      Returns the state of the noproxy_is_onlyproxy flag*/PUBLIC int HTProxy_NoProxyIsOnlyProxy (void){  return noproxy_is_onlyproxy;}/*      HTNProxy_setNoProxyisOnlyProxy**      --------------------------**      Sets the state of the noproxy_is_onlyproxy flag*/PUBLIC void HTProxy_setNoProxyIsOnlyProxy (int value){  noproxy_is_onlyproxy = value;}/*	HTProxy_find**	------------**	This function evaluates the lists of registered proxies and if**	one is found for the actual access method and it is not registered**	in the `noproxy' list, then a URL containing the host to be contacted**	is returned to the caller. This string must be freed be the caller.****	Returns: proxy	If OK (must be freed by caller)**		 NULL	If no proxy is found or error*/PUBLIC char * HTProxy_find (const char * url){    char * access;    char * proxy = NULL;    int no_proxy_found = 0;    if (!url || !proxies)	return NULL;    access = HTParse(url, "", PARSE_ACCESS);    /* First check if the host (if any) is registered in the noproxy list */    if (noproxy) {	char *host = HTParse(url, "", PARSE_HOST);	char *ptr;	unsigned port=0;	if ((ptr = strchr(host, ':')) != NULL) {	    *ptr++ = '\0';				    /* Chop off port */	    if (*ptr) port = (unsigned) atoi(ptr);	}	if (*host) {				   /* If we have a host name */	    HTList *cur = noproxy;	    HTHostList *pres;	    while ((pres = (HTHostList *) HTList_nextObject(cur)) != NULL) {#ifdef HT_POSIX_REGEX		if (pres->regex) {		    BOOL match = regexec(pres->regex, url, 0, NULL, 0) ? NO : YES;		    if (match) {			HTTRACE(PROT_TRACE, "GetProxy.... No proxy directive found: `%s\'\n" _ pres->host);			no_proxy_found = 1;			break;		    }		} else#endif		if (!pres->access ||		    (pres->access && !strcmp(pres->access, access))) {		    if ((pres->port == 0) || (pres->port == port)) {			char *np = pres->host+strlen(pres->host);			char *hp = host+strlen(host);			while (np>=pres->host && hp>=host && (*np--==*hp--));			if (np==pres->host-1 && (hp==host-1 || *hp=='.')) {			    HTTRACE(PROT_TRACE, "GetProxy.... No proxy directive found: `%s\'\n" _ pres->host);			    no_proxy_found = 1;			    break;			}		    }		}	    }	}	HT_FREE(host);    }    if ((no_proxy_found && !noproxy_is_onlyproxy)        || (!no_proxy_found && noproxy_is_onlyproxy)) {      HT_FREE(access);      return NULL;    }    /* Now check if we have a proxy registered for this access method */    {	HTList *cur = proxies;	HTProxy *pres;	while ((pres = (HTProxy *) HTList_nextObject(cur)) != NULL) {#ifdef HT_POSIX_REGEX	    if (pres->regex) {		BOOL match = regexec(pres->regex, url, 0, NULL, 0) ? NO : YES;		if (match) {		    StrAllocCopy(proxy, pres->url);		    HTTRACE(PROT_TRACE, "GetProxy.... Found: `%s\'\n" _ pres->url);		    break;		}	    } else#endif	    if (!strcmp(pres->access, access)) {		StrAllocCopy(proxy, pres->url);		HTTRACE(PROT_TRACE, "GetProxy.... Found: `%s\'\n" _ pres->url);		break;	    }	}    }    HT_FREE(access);    return proxy;}/*	HTGateway_find**	--------------**	This function evaluates the lists of registered gateways and if**	one is found for the actual access method then it is returned****	Returns: gateway If OK (must be freed by caller)**		 NULL	 If no gateway is found or error*/PUBLIC char * HTGateway_find (const char * url){    char * access;    char * gateway = NULL;    if (!url || !gateways)	return NULL;    access = HTParse(url, "", PARSE_ACCESS);    /* Check if we have a gateway registered for this access method */    {	HTList *cur = gateways;	HTProxy *pres;	while ((pres = (HTProxy *) HTList_nextObject(cur)) != NULL) {	    if (!strcmp(pres->access, access)) {		StrAllocCopy(gateway, pres->url);		HTTRACE(PROT_TRACE, "GetGateway.. Found: `%s\'\n" _ pres->url);		break;	    }	}    }    HT_FREE(access);    return gateway;}/***	This function maintains backwards compatibility with the old **	environment variables and searches for the most common values:**	http, ftp, news, wais, and gopher*/PUBLIC void HTProxy_getEnvVar (void){    char buf[80];    static const char *accesslist[] = {	"http",	"ftp",	"news",	"wais",	"gopher",	NULL    };    const char **access = accesslist;    HTTRACE(PROT_TRACE, "Proxy....... Looking for environment variables\n");    while (*access) {	BOOL found = NO;	char *gateway=NULL;	char *proxy=NULL;	/* Search for proxy gateways */	if (found == NO) {	    strcpy(buf, *access);	    strcat(buf, "_proxy");	    if ((proxy = (char *) getenv(buf)) && *proxy) {		HTProxy_add(*access, proxy);		found = YES;	    }	    /* Try the same with upper case */	    if (found == NO) {		char * up = buf;		while ((*up = TOUPPER(*up))) up++;		if ((proxy = (char *) getenv(buf)) && *proxy) {		    HTProxy_add(*access, proxy);		    found = YES;		}	    }	}	/* As a last resort, search for gateway servers */	if (found == NO) {	    strcpy(buf, "WWW_");	    strcat(buf, *access);	    strcat(buf, "_GATEWAY");	    if ((gateway = (char *) getenv(buf)) && *gateway) {		HTGateway_add(*access, gateway);		found = YES;	    }	}	++access;    }    /* Search for `noproxy' directive */    {	char *noproxy = getenv("no_proxy");	if (noproxy && *noproxy) {	    char *str = NULL;	    char *strptr;	    char *name;	    StrAllocCopy(str, noproxy);		 /* Get copy we can mutilate */	    strptr = str;	    while ((name = HTNextField(&strptr)) != NULL) {		char *portstr = strchr(name, ':');		unsigned port=0;		if (portstr) {		    *portstr++ = '\0';		    if (*portstr) port = (unsigned) atoi(portstr);		}		/* Register it for all access methods */		HTNoProxy_add(name, NULL, port);	    }	    HT_FREE(str);	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图视频免费播放| 99国产精品99久久久久久| 亚洲第一在线综合网站| 亚洲欧美国产三级| 一区二区三区四区五区视频在线观看| 成人欧美一区二区三区在线播放| 中文字幕不卡在线| 最新热久久免费视频| 亚洲欧洲成人精品av97| 亚洲欧美二区三区| 午夜激情综合网| 麻豆久久一区二区| 另类小说视频一区二区| 国产一区91精品张津瑜| 国产a久久麻豆| 91影院在线观看| 欧美日韩一区二区三区免费看| 欧美色视频一区| 91精品欧美综合在线观看最新| 欧美大片顶级少妇| 中文字幕乱码一区二区免费| 椎名由奈av一区二区三区| 亚洲精品福利视频网站| 香港成人在线视频| 久久se这里有精品| 不卡一区二区三区四区| 色又黄又爽网站www久久| 欧洲av在线精品| 日韩一区二区三| 中文字幕精品—区二区四季| 日韩毛片精品高清免费| 亚洲1区2区3区4区| 国产剧情一区在线| 在线日韩一区二区| 欧美成人精品高清在线播放| 国产精品久久久久久久久晋中| 亚洲国产精品视频| 国产综合一区二区| 欧美亚洲综合在线| 久久亚洲精品小早川怜子| 亚洲日本va午夜在线电影| 日韩精品亚洲一区二区三区免费| 激情小说亚洲一区| 91免费视频网址| 精品久久久久久久人人人人传媒 | 日本高清不卡一区| 日韩欧美你懂的| 日韩美女视频一区| 久久99精品久久久| 欧美在线小视频| 久久久久免费观看| 午夜国产精品一区| www.激情成人| 欧美大片在线观看| 亚洲国产日日夜夜| 懂色av中文字幕一区二区三区| 欧美视频精品在线观看| 国产婷婷色一区二区三区四区| 午夜av区久久| 91视频精品在这里| 国产亚洲成年网址在线观看| 亚洲va中文字幕| 成人av免费在线播放| 日韩精品综合一本久道在线视频| 亚洲精品久久久久久国产精华液| 麻豆精品视频在线| 欧美蜜桃一区二区三区| 亚洲欧洲成人自拍| 福利电影一区二区| 欧美电视剧在线看免费| 天天综合色天天综合色h| 99视频精品免费视频| 久久久久综合网| 日韩精品91亚洲二区在线观看| 99国产精品久| 欧美激情中文字幕| 韩国三级在线一区| 蜜桃精品视频在线| 一区二区三区小说| 日韩一区国产二区欧美三区| 91精品在线一区二区| 亚洲人成在线观看一区二区| 韩国中文字幕2020精品| 宅男在线国产精品| 亚洲国产精品久久不卡毛片 | 欧美日韩在线播| 国产精品福利在线播放| 高清视频一区二区| 欧美激情一区二区三区全黄| 国内偷窥港台综合视频在线播放| 欧美精品乱码久久久久久 | 粗大黑人巨茎大战欧美成人| 精品久久国产字幕高潮| 免费久久99精品国产| 7777精品伊人久久久大香线蕉的| 亚洲精品乱码久久久久久黑人| 99久久综合精品| 亚洲三级电影网站| 色婷婷久久99综合精品jk白丝| 亚洲欧美色综合| 91高清视频在线| 亚洲一区av在线| 欧美人妖巨大在线| 水野朝阳av一区二区三区| 欧美日韩国产综合一区二区三区 | 国产一区二区不卡在线| 久久九九99视频| 成人av在线网站| 亚洲色图欧洲色图| 在线视频一区二区三| 亚洲国产精品久久一线不卡| 欧美性受xxxx黑人xyx性爽| 洋洋成人永久网站入口| 欧美日韩亚洲综合在线 | 亚洲人成精品久久久久久| 91麻豆成人久久精品二区三区| 亚洲人成在线观看一区二区| 欧美这里有精品| 免费亚洲电影在线| 久久亚洲免费视频| 99国产精品久| 日韩激情一二三区| 26uuu色噜噜精品一区| 成人性生交大合| 一区二区三区四区在线播放| 91精品一区二区三区久久久久久 | 日韩高清一级片| 精品国产sm最大网站| 成人福利视频网站| 一区二区三区波多野结衣在线观看| 欧美精品久久久久久久久老牛影院| 日韩精品成人一区二区三区| 欧美精品一区二区三| 成人激情综合网站| 亚洲成av人片在线| 精品国产免费视频| 色女孩综合影院| 日本麻豆一区二区三区视频| 久久蜜桃香蕉精品一区二区三区| av在线综合网| 婷婷久久综合九色综合伊人色| xf在线a精品一区二区视频网站| 丁香啪啪综合成人亚洲小说| 亚洲二区在线视频| 国产日韩亚洲欧美综合| 色av成人天堂桃色av| 日本欧美肥老太交大片| 国产精品九色蝌蚪自拍| 日韩一区二区三区视频在线| 成人小视频在线| 奇米在线7777在线精品| 中文字幕在线观看不卡视频| 91精品国产91久久综合桃花 | 91国内精品野花午夜精品| 久久99久国产精品黄毛片色诱| 亚洲免费av观看| 久久免费视频色| 欧美日韩免费电影| 懂色av一区二区三区免费观看| 日韩av一二三| 亚洲精品视频在线观看网站| 欧美成人性战久久| 欧美系列一区二区| 成人精品鲁一区一区二区| 蜜桃精品视频在线| 亚洲一区二区三区精品在线| 国产片一区二区三区| 日韩一区二区麻豆国产| 一本久久综合亚洲鲁鲁五月天| 久久成人精品无人区| 亚洲成人在线免费| 亚洲欧美激情在线| 国产精品色婷婷| 欧美精品一区二区三区在线| 在线播放欧美女士性生活| 91在线观看一区二区| 国产精品一线二线三线| 日本不卡视频在线| 亚洲国产精品自拍| 亚洲久本草在线中文字幕| 欧美精品一区二区不卡| 欧美一级爆毛片| 欧美日韩国产a| 欧美日韩中文国产| 欧洲av一区二区嗯嗯嗯啊| 91麻豆福利精品推荐| 成人深夜在线观看| 国产在线看一区| 国精产品一区一区三区mba桃花 | 亚洲曰韩产成在线| 国产精品国产自产拍在线| 久久精品在线免费观看| 欧美大胆一级视频| 精品久久人人做人人爱| 日韩欧美在线观看一区二区三区| 欧美日韩1区2区| 欧美剧在线免费观看网站 | www精品美女久久久tv| 欧美一区二区播放| 欧美日韩在线综合|