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

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

?? htguess.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								      HTGuess.c**	STREAM TO GUESS CONTENT-TYPE****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTGuess.c,v 2.36 1999/02/22 22:10:11 frystyk Exp $****	This version of the stream object just writes its input**	to its output, but prepends Content-Type: field and an**	empty line after it.**** HISTORY:**	 8 Jul 94  FM	Insulate free() from _free structure element.***//* Library include files */#include "wwwsys.h"#include "WWWUtil.h"#include "WWWLib.h"#include "WWWFile.h"#include "HTGuess.h"#define SAMPLE_SIZE	200	/* Number of chars to look at *//*		Stream Object**		------------*/struct _HTStream {	const HTStreamClass *	isa;	HTRequest *		request;        HTResponse *		response;	HTFormat		output_format;	HTStream *		output_stream;	HTStream *		target;	BOOL			transparent;	int			cnt;	int			text_cnt;	int			lf_cnt;	int			cr_cnt;	int			pg_cnt;	int			ctrl_cnt;	int			high_cnt;	char *			write_ptr;	char			buffer[ SAMPLE_SIZE + 1 ];};#define PUT_CHAR(c)		(*me->target->isa->put_character)(me->target,(c))#define PUT_STRING(s)		(*me->target->isa->put_string)(me->target,(s))#define PUT_BLOCK(b,l)		(*me->target->isa->put_block)(me->target,(b),(l))/* ------------------------------------------------------------------------- */PRIVATE BOOL is_html (char * buf){    char * p = strchr(buf,'<');    if (p && (!strncasecomp(p, "<HTML>", 6) ||	      !strncasecomp(p, "<!DOCTYPE HTML", 13) ||	      !strncasecomp(p, "<HEAD", 5) ||	      !strncasecomp(p, "<TITLE>", 7) ||	      !strncasecomp(p, "<BODY>", 6) ||	      !strncasecomp(p, "<PLAINTEXT>", 11) ||	      (p[0]=='<' && TOUPPER(p[1]) == 'H' && p[3]=='>')))	return YES;    else	return NO;}PRIVATE int HTGuess_flush (HTStream * me){    if (!me->transparent) {	HTResponse * response = me->response;	/*	**  First we look for magic tokens and evaluate the contents of the buffer	**  that we are investigating. 	*/	if (me->cnt) {	    HTTRACE(STREAM_TRACE, "GUESSING.... Result of content analysis: Text=%d%% Newlines=%d%% Ctrl=%d%% High=%d%%\n" _ 			(int)(100*me->text_cnt/me->cnt + 0.5) _ 			(int)(100*me->lf_cnt  /me->cnt + 0.5) _ 			(int)(100*me->ctrl_cnt/me->cnt + 0.5) _ 			(int)(100*me->high_cnt/me->cnt + 0.5));	}		if (!me->ctrl_cnt ||	    me->text_cnt + me->lf_cnt >= 16 * (me->ctrl_cnt + me->high_cnt)) {	    char *ptr;	    /* some kind of text */	    	    *me->write_ptr = 0;	/* terminate buffer */	    	    if (me->high_cnt > 0)		HTResponse_setContentTransferEncoding(response, WWW_CODING_8BIT);	    else		HTResponse_setContentTransferEncoding(response, WWW_CODING_7BIT);	    	    if (is_html(me->buffer))		HTResponse_setFormat(response, HTAtom_for("text/html"));	    	    else if (!strncmp(me->buffer, "%!", 2))		HTResponse_setFormat(response, HTAtom_for("application/postscript"));	    	    else if (strstr(me->buffer, "#define") &&		     strstr(me->buffer, "_width") &&		     strstr(me->buffer, "_bits"))		HTResponse_setFormat(response, HTAtom_for("image/x-xbitmap"));	    	    else if ((ptr = strstr(me->buffer, "converted with BinHex"))!=NULL)		HTResponse_setContentTransferEncoding(response, WWW_CODING_MACBINHEX);	    else if (!strncmp(me->buffer, "begin ", 6))		HTResponse_setContentTransferEncoding(response, WWW_CODING_BASE64);	    else		HTResponse_setFormat(response, WWW_PLAINTEXT);	}	else {	    if (!strncmp(me->buffer, "GIF", 3))		HTResponse_setFormat(response, WWW_GIF);	    else if (!strncmp(me->buffer, "\377\330\377\340", 4))		HTResponse_setFormat(response, WWW_JPEG);	    else if (!strcmp(me->buffer, "MM"))	/* MM followed by a zero */		HTResponse_setFormat(response, WWW_TIFF); 	    else if (!strncmp(me->buffer, "\211PNG\r\n\032\n", 8)) 		HTResponse_setFormat(response, WWW_PNG);	    else if (!strncmp(me->buffer, ".snd", 4))		HTResponse_setFormat(response, WWW_AUDIO);	    else if (!strncmp(me->buffer, "\037\235", 2))		HTResponse_addEncoding(response, WWW_CODING_COMPRESS);	    else if (!strncmp(me->buffer, "\037\213", 2))		HTResponse_addEncoding(response, WWW_CODING_GZIP);	    else		HTResponse_setFormat(response, WWW_BINARY);	}		/*	**  If we couldn't find any magic tokens then we try and look at the suffix	**  of the URL file name and use our own bindings to see if that gives any	**  results.	*/	if (HTResponse_format(response) == WWW_UNKNOWN) {	    HTParentAnchor * anchor = HTRequest_anchor(me->request);	    char * addr = HTAnchor_physical(anchor);	    HTTRACE(STREAM_TRACE, "GUESSING.... Hmm - trying local bindings\n");	    HTBind_getResponseBindings (response, addr);	}	/*	**  If nothing worked then give up and say binary...	*/	if (HTResponse_format(response) == WWW_UNKNOWN) {	    HTTRACE(STREAM_TRACE, "GUESSING.... That's it - I'm giving up!\n");	    HTResponse_setFormat(response, WWW_BINARY);	}			HTTRACE(STREAM_TRACE, "Guessed..... Content-Type `%s\'\n" _ HTAtom_name(HTResponse_format(response)));	/*	**  Set up the new stream stack with the type we figured out 	*/	if ((me->target = HTStreamStack(HTResponse_format(response),					me->output_format, me->output_stream,					me->request, NO)) == NULL) {	    HTTRACE(STREAM_TRACE, "HTGuess..... Can't convert media type\n");	    me->target = HTErrorStream();	}	me->transparent = YES;	return PUT_BLOCK(me->buffer, me->cnt);    }    return HT_OK;}PRIVATE int HTGuess_put_block (HTStream * me, const char * b, int l){    while (!me->transparent && l-- > 0) {	int status;	if (me->target) {	    if ((status = HTGuess_flush(me)) != HT_OK)		return status;	} else {	    me->cnt++;	    if (*b == LF)		me->lf_cnt++;	    else if (*b == CR)		me->cr_cnt++;	    else if (*b == 12)		me->pg_cnt++;	    else if (*b =='\t')		me->text_cnt++;	    else if ((unsigned char)*b < 32)		me->ctrl_cnt++;	    else if ((unsigned char)*b < 128)		me->text_cnt++;	    else		me->high_cnt++;	    *me->write_ptr++ = *b++;	    if (me->cnt >= SAMPLE_SIZE) {		if ((status = HTGuess_flush(me)) != HT_OK)		    return status;	    }	}    }    if (l > 0)	return PUT_BLOCK(b, l);    return HT_OK;}PRIVATE int HTGuess_put_character (HTStream * me, char c){    return HTGuess_put_block(me, &c, 1);}PRIVATE int HTGuess_put_string (HTStream * me, const char * s){    return HTGuess_put_block(me, s, (int) strlen(s));}PRIVATE int HTGuess_free (HTStream * me){    int status;    if (!me->transparent && (status = HTGuess_flush(me)) != HT_OK)	return status;    else	me->transparent = YES;    if ((status = (*me->target->isa->_free)(me->target)) != HT_OK)	return status;    HT_FREE(me);    return HT_OK;}PRIVATE int HTGuess_abort (HTStream * me, HTList * e){    if (me->target) (*me->target->isa->abort)(me->target, e);    HT_FREE(me);    return HT_ERROR;}/*	Guessing stream**	---------------*/PRIVATE const HTStreamClass HTGuessClass ={			"GuessWhat",	HTGuess_flush,	HTGuess_free,	HTGuess_abort,	HTGuess_put_character, 	HTGuess_put_string,	HTGuess_put_block};PUBLIC HTStream * HTGuess_new (HTRequest *	request,			       void *		param,			       HTFormat		input_format,			       HTFormat		output_format,			       HTStream *	output_stream){    HTStream * me;    if ((me = (HTStream  *) HT_CALLOC(1,sizeof(HTStream))) == NULL)        HT_OUTOFMEM("HTGuess_new");    me->isa = &HTGuessClass;    me->request = request;    me->response = HTRequest_response(request);    me->output_format = output_format;    me->output_stream = output_stream;    me->write_ptr = me->buffer;    return me;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产丝袜欧美中文另类| 欧美日韩一区小说| 欧美国产日韩亚洲一区| 国产高清一区日本| 国产欧美精品一区二区三区四区| 国产高清一区日本| 国产精品夫妻自拍| 欧美亚洲自拍偷拍| 青青草国产成人99久久| 国产视频在线观看一区二区三区| av亚洲精华国产精华精| 亚洲国产精品欧美一二99| 欧美一级在线观看| 国产精品91一区二区| 亚洲精品成人天堂一二三| 欧美日韩一区二区三区免费看| 美国精品在线观看| 亚洲国产精品激情在线观看| 色哟哟一区二区在线观看| 美女免费视频一区二区| 国产精品蜜臀av| 欧美日韩国产一区二区三区地区| 久久国产欧美日韩精品| 中日韩av电影| 正在播放亚洲一区| 成人黄动漫网站免费app| 午夜精品久久久久久久蜜桃app| 亚洲精品一区二区三区影院| 91在线精品一区二区| 日韩avvvv在线播放| 日本一区二区视频在线观看| 欧美日韩一区二区三区在线看| 国产成人精品一区二区三区网站观看| 亚洲精品久久7777| 国产欧美日韩麻豆91| 91精品国产欧美一区二区18| 成人黄色国产精品网站大全在线免费观看| 午夜婷婷国产麻豆精品| 中文字幕一区日韩精品欧美| 日韩欧美一区二区在线视频| 色哟哟国产精品| 国产精品1024久久| 日本免费在线视频不卡一不卡二| 亚洲视频电影在线| 久久久91精品国产一区二区精品| 欧美人牲a欧美精品| 99热这里都是精品| 国产九色sp调教91| 精品一区二区三区在线视频| 亚洲国产日韩一级| 亚洲精品大片www| 国产欧美日韩另类视频免费观看| 91麻豆精品国产| 欧美日韩综合一区| 色综合天天在线| 成人高清伦理免费影院在线观看| 精品一区二区久久久| 午夜视黄欧洲亚洲| 亚洲高清免费视频| 亚洲黄色av一区| 中文在线免费一区三区高中清不卡| 成人国产电影网| 91黄色激情网站| 成人激情免费网站| 国产精品羞羞答答xxdd| 久久av老司机精品网站导航| 五月天一区二区三区| 亚洲一区二区三区国产| 亚洲三级小视频| 亚洲色图一区二区三区| 国产精品少妇自拍| 国产日韩欧美一区二区三区乱码 | 中文字幕欧美日韩一区| 久久亚洲精精品中文字幕早川悠里| 欧美一级日韩一级| 3d成人动漫网站| 日韩一二三区不卡| 欧美mv日韩mv| 欧美精品一区二区三区久久久| 欧美一级二级三级乱码| 日韩欧美在线一区二区三区| 精品国产污污免费网站入口 | 日韩美女久久久| 中文字幕综合网| 亚洲综合久久久久| 亚洲国产成人av| 卡一卡二国产精品| 国产剧情一区二区| 99re免费视频精品全部| 在线观看成人免费视频| 欧美日本乱大交xxxxx| 日韩欧美一区中文| 国产亚洲欧美一级| 亚洲视频综合在线| 午夜久久久久久| 精品一区二区三区影院在线午夜| 国产激情视频一区二区在线观看 | 一本一本久久a久久精品综合麻豆| 99精品视频在线播放观看| 91国产福利在线| 日韩欧美亚洲国产精品字幕久久久 | 在线观看91视频| 日韩一区二区精品葵司在线| 久久久美女毛片| 亚洲免费高清视频在线| 图片区小说区区亚洲影院| 精品无人码麻豆乱码1区2区 | 欧美一级片免费看| 国产亚洲成av人在线观看导航| 成人免费在线播放视频| 日韩一区精品字幕| 成人免费毛片aaaaa**| 欧美三级蜜桃2在线观看| 精品av综合导航| 最新国产精品久久精品| 日韩和欧美的一区| 成人h版在线观看| 91精品国产91久久综合桃花| 中文字幕高清不卡| 日韩av电影一区| 99久久精品国产麻豆演员表| 欧美成人三级在线| 亚洲精品免费视频| 韩国欧美国产一区| 欧美系列一区二区| 国产香蕉久久精品综合网| 亚洲国产aⅴ天堂久久| 成人综合日日夜夜| 欧美一区二区精品久久911| 亚洲色图清纯唯美| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品国产三级国产aⅴ入口| 亚洲制服丝袜av| 成人综合在线视频| 精品成人一区二区三区| 亚洲v中文字幕| 91美女片黄在线观看| 久久久精品免费网站| 免费日本视频一区| 欧美天天综合网| 中文字幕中文字幕一区二区| 精品亚洲porn| 91精品婷婷国产综合久久竹菊| 亚洲乱码一区二区三区在线观看| 国产一区91精品张津瑜| 51精品秘密在线观看| 亚洲一区二区美女| 色综合色综合色综合| 欧美高清在线精品一区| 国产精品一级片在线观看| 91精品国产综合久久精品 | 国产精品久久午夜| 国产精品18久久久久久久久| 精品国产免费一区二区三区香蕉| 亚洲成人激情社区| 精品视频在线视频| 亚洲一区二区欧美日韩| 欧美色电影在线| 亚洲国产中文字幕在线视频综合| 91蝌蚪porny| 亚洲欧美一区二区三区久本道91| 96av麻豆蜜桃一区二区| 国产精品久久久久9999吃药| 懂色中文一区二区在线播放| 国产亚洲欧美激情| 国产aⅴ综合色| 国产精品欧美一级免费| 不卡影院免费观看| ㊣最新国产の精品bt伙计久久| 99久久99久久精品免费观看| 亚洲视频你懂的| 欧美视频中文字幕| 日韩av高清在线观看| 欧美va亚洲va国产综合| 国产美女一区二区| 国产片一区二区三区| 不卡高清视频专区| 一区二区三区精品在线观看| 欧美性一区二区| 青青草国产精品亚洲专区无| 欧美精品一区二区久久婷婷| 国产精品一区二区三区乱码| 欧美激情一区二区三区蜜桃视频| 99久久亚洲一区二区三区青草 | 国产精品网站在线观看| av电影天堂一区二区在线观看| ●精品国产综合乱码久久久久| 欧洲国内综合视频| 人人狠狠综合久久亚洲| 国产亚洲欧美色| 色哟哟一区二区| 奇米精品一区二区三区在线观看| 久久九九99视频| 91成人看片片| 精品无码三级在线观看视频| 国产精品乱子久久久久| 欧美中文字幕一区二区三区亚洲| 日韩福利电影在线观看| 国产精品网站导航| 欧美群妇大交群的观看方式|