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

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

?? csstream.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								      CSParse.c**	PICS CONFIGURATION MANAGER FOR CLIENTS AND SERVERS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGHT.****	This module converts application/xpics streams (files or network) to PICS_ class data**** History:**	 4 Dec 95  EGP  start**** BUGS: no code yet; doesn't actually do anything*//* Library include files */#include "WWWLib.h"#include "HTProxy.h"#include "CSLUtils.h"#include "CSMR.h"#include "CSUser.h"#include "CSLL.h"#include "CSLApp.h"#include "CSParse.h"struct _HTStream {    const HTStreamClass * isa;    HTRequest *		  request;    HTStream *		  target;    CSParse_t *		  pCSParse;};PRIVATE int CSParse_put_block (HTStream * me, const char * b, int l){    if (PICS_TRACE) {        char * ptr;	if ((ptr = (char *) HT_MALLOC(l+1)) == NULL)	    HT_OUTOFMEM("diagnostic buffer");	strncpy(ptr, b, l);	ptr[l] = 0;	HTTRACE(PICS_TRACE, "PICS: parser %p parsing block \"%s\"\n" _ me->pCSParse _ ptr);	HT_FREE(ptr);    }    if (CSParse_parseChunk(me->pCSParse, b, l, 0) == CSDoMore_error)        return HT_ERROR;    return HT_OK;}PRIVATE int CSParse_put_character (HTStream * me, char c){    return CSParse_put_block(me, &c, 1);}PRIVATE int CSParse_put_string (HTStream * me, const char * s){    return CSParse_put_block(me, s, (int) strlen(s));}PRIVATE int CSParse_flush (HTStream * me){    return (*me->target->isa->flush)(me->target);}PRIVATE int CSParse_free (HTStream * me){    int status = HT_OK;    if (me->target) {	if ((status = (*me->target->isa->_free)(me->target)) == HT_WOULD_BLOCK)	    return HT_WOULD_BLOCK;    }    HTTRACE(APP_TRACE, "Parser....... FREEING....\n");    HTTRACE(PICS_TRACE, "PICS: freeing parser %p.\n" _ me->pCSParse);    CSParse_delete(me->pCSParse);    return status;}#if 0PRIVATE int CSParse_abort (HTStream * me, HTList * e){    int status = HT_ERROR;    if (me->target) status = (*me->target->isa->abort)(me->target, e);    HTTRACE(APP_TRACE, "Rules....... ABORTING...\n");    HT_FREE(me);    return status;}PRIVATE const HTStreamClass CSParseClass ={		    "PICSParser",    CSParse_flush,    CSParse_free,    CSParse_abort,    CSParse_put_character,    CSParse_put_string,    CSParse_put_block};#endifPRIVATE HTStream * CSParseConverter_new (HTRequest *	request,			                             HTStream *	output_stream){    HTStream * me;    if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL)        HT_OUTOFMEM("CSParse");    me->request = request;    me->target = output_stream;    return me;}PRIVATE int CSParseMachRead_free (HTStream * me){    int status = CSParse_free(me);    CSParse_deleteMachRead(me->pCSParse);    return status;}PRIVATE int CSParseMachRead_abort (HTStream * me, HTList * e){    int status = CSParse_free(me);        CSParse_deleteMachRead(me->pCSParse);    return status;}PRIVATE const HTStreamClass CSParseClass_machRead ={		    "PICSParser",    CSParse_flush,    CSParseMachRead_free,    CSParseMachRead_abort,    CSParse_put_character,    CSParse_put_string,    CSParse_put_block};PUBLIC HTStream * CSParseMachRead (HTRequest *	request,				   void *	param,				   HTFormat  	input_format,				   HTFormat     output_format,				   HTStream *	output_stream){    HTStream * me = CSParseConverter_new(request, output_stream);    me->isa = &CSParseClass_machRead;    me->pCSParse = CSParse_newMachRead(0, 0);    HTTRACE(PICS_TRACE, "PICS: creating MachRead parser %p.\n" _ me->pCSParse);    return me;}PRIVATE int CSParseUser_free (HTStream * me){/*    CSParse_deleteUser(me->pCSParse); */    char * addr = HTAnchor_address((HTAnchor *)HTRequest_anchor(me->request));    CSLoadedUser_add(CSParse_getUser(me->pCSParse), addr);    HT_FREE(addr);    CSParse_free(me);    HT_FREE(me);    return HT_OK;}PRIVATE int CSParseUser_abort (HTStream * me, HTList * e){    CSParse_deleteUser(me->pCSParse);    HT_FREE(me);    return HT_OK;}PRIVATE const HTStreamClass CSParseClass_user ={		    "PICSParser",    CSParse_flush,    CSParseUser_free,    CSParseUser_abort,    CSParse_put_character,    CSParse_put_string,    CSParse_put_block};PUBLIC HTStream * CSParseUser (HTRequest *  request,			       void *	    param,			       HTFormat     input_format,			       HTFormat	    output_format,			       HTStream *   output_stream){    HTStream * me = CSParseConverter_new(request, output_stream);    me->isa = &CSParseClass_user;    me->pCSParse = CSParse_newUser();    me->request = request;/*    if (HTRequest_context(request))        *((CSUser_t **)HTRequest_context(request)) = CSParse_getUser(me->pCSParse);*/    HTTRACE(PICS_TRACE, "PICS: creating user parser %p.\n" _ me->pCSParse);    return me;}PRIVATE int CSParseLabel_free (HTStream * me){    CSApp_label(me->request, CSParse_getLabel(me->pCSParse));/*    CSParse_deleteLabel(me->pCSParse); keep it around and let CSApp free it */    CSParse_free(me);    HT_FREE(me);    return HT_OK;}PRIVATE int CSParseLabel_abort (HTStream * me, HTList * e){    CSParse_deleteLabel(me->pCSParse);    CSParse_free(me);    HT_FREE(me);    return HT_OK;}PRIVATE const HTStreamClass CSParseClass_label ={		    "PICSParser",    CSParse_flush,    CSParseLabel_free,    CSParseLabel_abort,    CSParse_put_character,    CSParse_put_string,    CSParse_put_block};PRIVATE StateRet_t parseErrorHandler(CSLabel_t * pCSLabel, 				     CSParse_t * pCSParse, 				     const char * token, char demark, 				     StateRet_t errorCode){    char space[256];if (PICS_TRACE)    printf("%20s - %s:", pCSParse->pTargetObject->note, 	   pCSParse->currentSubState == SubState_X ? "SubState_X" : 	   pCSParse->currentSubState == SubState_N ? "SubState_N" : 	   pCSParse->currentSubState == SubState_A ? "SubState_A" : 	   pCSParse->currentSubState == SubState_B ? "SubState_B" : 	   pCSParse->currentSubState == SubState_C ? "SubState_C" : 	   pCSParse->currentSubState == SubState_D ? "SubState_D" : 	   pCSParse->currentSubState == SubState_E ? "SubState_E" : 	   pCSParse->currentSubState == SubState_F ? "SubState_F" : 	   pCSParse->currentSubState == SubState_G ? "SubState_G" : 	   pCSParse->currentSubState == SubState_H ? "SubState_H" : 	   "???");    switch (errorCode) {        case StateRet_WARN_NO_MATCH:            if (token)	        sprintf(space, "Unexpected token \"%s\".\n", token);	    else	        sprintf(space, "Unexpected lack of token.\n");            break;        case StateRet_WARN_BAD_PUNCT:            sprintf(space, "Unextected punctuation \"%c\"", demark);	    if (token)	        printf("after token \"%s\".\n", token);	    else	        printf(".\n");            break;        case StateRet_ERROR_BAD_CHAR:            sprintf(space, "Unextected character \"%c\" in token \"%s\".\n", 		    *pCSParse->pParseContext->pTokenError, token);            break;        default:            sprintf(space, "Internal error: demark:\"%c\" token:\"%s\".\n", 		    demark, token);            break;    }    HTTRACE(PICS_TRACE, "%s" _ space); /* make sure %s don't get interpretted */    return errorCode;}PUBLIC HTStream * CSParseLabel (HTRequest *	request,           			            void *	    param,			                    HTFormat  	input_format,            			        HTFormat	    output_format,			                    HTStream *	output_stream){    HTStream * me = CSParseConverter_new(request, output_stream);    me->isa = &CSParseClass_label;    me->pCSParse = CSParse_newLabel(0, &parseErrorHandler);    HTTRACE(PICS_TRACE, "PICS: creating label parser %p.\n" _ me->pCSParse);    return me;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜精品17c| 亚洲电影一区二区三区| 日韩理论片网站| 老司机午夜精品| 色婷婷综合中文久久一本| 精品国产髙清在线看国产毛片| 久久一区二区视频| 亚洲地区一二三色| av影院午夜一区| 久久九九久精品国产免费直播| 亚洲一区二区三区四区在线观看| 国产成人精品免费看| 欧美大片顶级少妇| 亚洲成av人片一区二区梦乃| 成人激情图片网| 精品国产一区二区三区av性色| 性欧美大战久久久久久久久| 91福利社在线观看| 一区二区三区欧美亚洲| 波波电影院一区二区三区| 精品国产3级a| 精品夜夜嗨av一区二区三区| 欧美一区三区二区| 午夜精品久久久久久| 91久久精品网| 亚洲一区中文在线| 欧美性色黄大片手机版| 亚洲精品成人在线| 色婷婷综合久久久中文字幕| 中文字幕一区三区| 91亚洲永久精品| 亚洲日本在线视频观看| 97se亚洲国产综合自在线观| 亚洲国产成人午夜在线一区| 成人免费高清在线| 国产精品免费视频一区| zzijzzij亚洲日本少妇熟睡| 中文字幕一区二区三区精华液 | 高清shemale亚洲人妖| 欧美成人aa大片| 麻豆国产欧美日韩综合精品二区| 欧美一级片在线观看| 蜜桃视频免费观看一区| 亚洲精品在线三区| 国产麻豆成人精品| 综合电影一区二区三区| 日本道免费精品一区二区三区| 亚洲综合一区二区三区| 欧美猛男gaygay网站| 日韩av电影一区| 亚洲精品在线网站| 99久久精品免费精品国产| 亚洲视频一二三区| 在线一区二区三区| 看电视剧不卡顿的网站| 欧美激情综合五月色丁香小说| 99久久久国产精品免费蜜臀| 一区二区三区在线播放| 日韩视频一区二区三区在线播放| 国产黑丝在线一区二区三区| 亚洲天堂精品视频| 日韩视频一区在线观看| bt7086福利一区国产| 午夜精品成人在线视频| 国产亚洲精品7777| 在线视频一区二区免费| 极品销魂美女一区二区三区| 成人免费小视频| 日韩写真欧美这视频| 99久久综合精品| 免费成人在线影院| 亚洲精品中文在线影院| 日韩一级成人av| 91丨porny丨国产| 另类调教123区| 亚洲综合成人在线视频| 国产午夜精品一区二区三区视频| 91国产精品成人| 成人在线视频一区| 婷婷丁香久久五月婷婷| 国产日韩欧美精品一区| 91麻豆精品国产91久久久久久| 国产成人免费视频网站高清观看视频 | 综合自拍亚洲综合图不卡区| 91精品国产综合久久久久久| 99国内精品久久| 激情图区综合网| 亚洲超丰满肉感bbw| 中文字幕成人在线观看| 日韩欧美国产精品一区| 日本高清不卡视频| 国产大片一区二区| 激情久久五月天| 日本中文字幕不卡| 亚洲精品写真福利| 中文字幕 久热精品 视频在线| 日韩一级视频免费观看在线| 欧美在线一区二区| 91亚洲男人天堂| 在线免费不卡视频| 91视频免费看| 99re视频这里只有精品| 成人手机电影网| 国产麻豆精品theporn| 激情小说亚洲一区| 国产一区啦啦啦在线观看| 人人精品人人爱| 日韩高清一区二区| 日韩有码一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 美女看a上一区| 日本系列欧美系列| 蜜臀久久99精品久久久久宅男| 日韩电影网1区2区| 日韩电影在线一区二区三区| 亚洲成人黄色小说| 日韩国产一二三区| 麻豆传媒一区二区三区| 精品一区二区免费在线观看| 国产自产视频一区二区三区| 国产一区二区导航在线播放| 韩国成人精品a∨在线观看| 国产精品资源在线| 成人做爰69片免费看网站| 成人综合在线观看| 99精品桃花视频在线观看| 99精品视频中文字幕| 欧美日韩在线播放三区四区| 欧美另类一区二区三区| 欧美午夜精品一区二区三区| 欧美日韩亚洲高清一区二区| 日韩欧美在线综合网| 久久嫩草精品久久久精品| 日本一区二区综合亚洲| 专区另类欧美日韩| 亚洲bt欧美bt精品| 蜜臀va亚洲va欧美va天堂 | 亚洲色图视频网站| 亚洲激情成人在线| 五月天久久比比资源色| 国产一区二区导航在线播放| 成人av资源网站| 欧美日本在线播放| 久久精品夜色噜噜亚洲aⅴ| 日韩毛片高清在线播放| 青青青爽久久午夜综合久久午夜| 国产高清久久久| 欧美系列在线观看| 日本三级亚洲精品| 免费人成在线不卡| 大胆亚洲人体视频| 欧美高清你懂得| 久久久久久久久久久黄色| 亚洲三级小视频| 国产一级精品在线| 99re8在线精品视频免费播放| 在线一区二区观看| 国产日韩欧美a| 久久精品国产999大香线蕉| 国产91富婆露脸刺激对白| 色婷婷久久99综合精品jk白丝| 69av一区二区三区| 国产精品久久网站| 蜜臀久久久久久久| 91精彩视频在线| 亚洲国产精品激情在线观看| 国产一区二区三区免费| 欧美日韩一本到| 免费观看在线综合| 欧美亚洲日本一区| 欧美日韩黄色影视| 精品国产乱码久久久久久久久| 国产精品久久一卡二卡| 奇米影视在线99精品| 99v久久综合狠狠综合久久| 日韩高清不卡一区二区三区| 午夜精品久久一牛影视| 亚洲一区二区三区精品在线| 久久成人免费网站| 欧美在线免费观看亚洲| 日本一区二区成人| 韩国毛片一区二区三区| 宅男在线国产精品| 亚洲影院免费观看| 日本久久一区二区| 亚洲视频在线观看一区| 国产精品性做久久久久久| 日韩美女视频在线| 日韩黄色在线观看| 69堂国产成人免费视频| 一区二区三区四区av| 91猫先生在线| 亚洲欧洲一区二区三区| 成人综合激情网| 国产精品乱人伦中文| av一二三不卡影片| 中文字幕一区二区三区不卡在线| 成人开心网精品视频| 国产精品欧美一级免费| 国产很黄免费观看久久|