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

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

?? htmuxtx.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/***	BUFFERED MUX OUTPUT STREAM****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTMuxTx.c,v 2.3 1999/02/22 22:10:11 frystyk Exp $****	A buffered output MUX stream.**** Authors**	HFN	Henrik Frystyk Nielsen <frystyk@w3.org>**** History:**	Oct 96	Written*//* Library include files */#include "wwwsys.h"#include "WWWUtil.h"#include "WWWCore.h"#include "WWWTrans.h"#include "HTMuxHeader.h"#include "HTMuxCh.h"#include "HTMuxTx.h"					 /* Implemented here */struct _HTOutputStream {    const HTOutputStreamClass *	isa;    HTOutputStream *		target;		 /* Target for outgoing data */    HTChannel *			ch;    int				size;			      /* Buffer size */    int				bb;    char *			block;    char *			read;		       /* Position in 'data' */    char *			data;				   /* buffer */};#define PUTBLOCK(b,l) (*me->target->isa->put_block)(me->target,(b),(l))/* ------------------------------------------------------------------------- */PRIVATE int HTMuxBuffer_write (HTOutputStream *me, const char *buf, int len){    int status;    if (me->bb > 0) {	len -= (me->block - buf);	if ((status = PUTBLOCK(me->block, me->bb)) != HT_OK) return status;	me->block += me->bb;	len -= me->bb;	me->bb = 0;    } else {	int available = me->data + me->size - me->read;	/* Still room in buffer */	if (len <= available) {	    memcpy(me->read, buf, len);	    me->read += len;	    return HT_OK;	}	/* If already data in buffer then fill it and flush */	if (me->read > me->data) {	    memcpy(me->read, buf, available);	    me->block = (char *) buf+available;	    if ((status = PUTBLOCK(me->data, me->size))!=HT_OK) return status;	}	/* If more data then write n times buffer size */	if (!me->block)	    me->block = (char *) buf;	else {	    len -= (me->block - buf);	}	me->bb = len - len%me->size;	if ((status = PUTBLOCK(me->block, me->bb)) != HT_OK) return status;	me->block += me->bb;	len -= me->bb;	me->bb = 0;    }    /* If data is not aligned then save the rest in our buffer */    if (len > 0) {	memcpy(me->data, me->block, len);	me->read = me->data + len;    } else	me->read = me->data;    me->block = NULL;    return HT_OK;}PRIVATE int HTMuxBuffer_put_character (HTOutputStream * me, char c){    return HTMuxBuffer_write(me, &c, 1);}PRIVATE int HTMuxBuffer_put_string (HTOutputStream * me, const char * s){    return HTMuxBuffer_write(me, s, (int) strlen(s));}PRIVATE int HTMuxBuffer_flush (HTOutputStream * me){    int status = HT_OK;    if (me->read > me->data) {	if ((status = PUTBLOCK(me->data, me->read - me->data))==HT_WOULD_BLOCK)	    return HT_WOULD_BLOCK;	me->read = me->data;	me->block = NULL;    }    return status;}PRIVATE int HTMuxBuffer_free (HTOutputStream * me){#if 0    return HTMuxBuffer_flush(me);#else    return HT_OK;#endif}PRIVATE int HTMuxBuffer_abort (HTOutputStream * me, HTList * e){    if (me->target) (*me->target->isa->abort)(me->target, e);    HTTRACE(PROT_TRACE, "MUX Tx...... ABORTING...\n");    return HT_ERROR;}/***	The difference between the close and the free method is that we don't**	close the connection in the free method - we only call the free method**	of the target stream. That way, we can keep the output stream as long **	as the channel itself.*/PRIVATE int HTMuxBuffer_close (HTOutputStream * me){    if (me) {	HTMuxBuffer_flush(me);	if (me->target) (*me->target->isa->close)(me->target);	HT_FREE(me->data);	HT_FREE(me);    }    return HT_OK;}PRIVATE const HTOutputStreamClass HTMuxBuffer ={		    "MuxBuffer",    HTMuxBuffer_flush,    HTMuxBuffer_free,    HTMuxBuffer_abort,    HTMuxBuffer_put_character,    HTMuxBuffer_put_string,    HTMuxBuffer_write,    HTMuxBuffer_close}; PUBLIC HTOutputStream * HTMuxBuffer_new (HTHost * host, HTChannel * ch,					 void * param, int bufsize){    if (host && ch) {	HTOutputStream * me = HTChannel_output(ch);	if (me == NULL) {	    if (bufsize <= 0) bufsize = MUX_BUFFER_SIZE;	    if ((me = (HTOutputStream *) HT_CALLOC(1, sizeof(HTOutputStream))) == NULL ||		(me->data = (char *) HT_MALLOC(bufsize)) == NULL)		HT_OUTOFMEM("HTMuxBuffer_new");	    me->isa = &HTMuxBuffer;	    me->target = HTWriter_new(host, ch, param, 0);	    me->ch = ch;	    me->size = bufsize;	    me->read = me->data;	}	return me;    }    return NULL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色一区二区三区免费观看| 日本怡春院一区二区| 精品va天堂亚洲国产| 欧美久久婷婷综合色| 欧美日韩精品一区二区三区| 欧美日韩久久一区| 欧美日韩中文字幕精品| 欧美在线视频全部完| 欧美日韩国产综合一区二区 | 在线观看91视频| 色婷婷久久久久swag精品| 久久久久国产免费免费| 久久精品亚洲精品国产欧美| 欧美国产一区二区在线观看 | 亚洲中国最大av网站| 亚洲欧美日韩一区二区| 亚洲综合激情另类小说区| 无码av免费一区二区三区试看 | 国产日韩一级二级三级| 国产精品午夜在线| 亚洲综合一区在线| 青青草97国产精品免费观看| 国产激情视频一区二区三区欧美| 高清久久久久久| 在线观看视频一区二区欧美日韩| 欧美一区二区久久久| 亚洲国产精品ⅴa在线观看| 亚洲精品国产一区二区精华液 | 中文字幕一区三区| 一区二区三区四区精品在线视频| 日韩影院免费视频| 成人视屏免费看| 欧美日韩视频在线观看一区二区三区| 精品精品欲导航| 悠悠色在线精品| 国产乱码一区二区三区| 91热门视频在线观看| 欧美大片在线观看| 一个色在线综合| 国产福利91精品| 在线成人免费观看| 中文字幕亚洲成人| 久久丁香综合五月国产三级网站| 91一区二区在线| 久久精品一二三| 美女爽到高潮91| 欧美最新大片在线看| 国产欧美精品区一区二区三区| 天堂成人免费av电影一区| 成人午夜激情片| 精品国产免费一区二区三区香蕉| 亚洲第一二三四区| av激情成人网| 久久久国产精品不卡| 日本va欧美va瓶| 欧美日本在线一区| 亚洲精品国产无套在线观| 国产成人免费视频网站 | 亚洲成人一区在线| 成人福利视频网站| 久久久精品欧美丰满| 看片网站欧美日韩| 欧美电影在线免费观看| 亚洲一区二区三区影院| 91欧美一区二区| 最好看的中文字幕久久| 国产传媒欧美日韩成人| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 91玉足脚交白嫩脚丫在线播放| 国产日产欧美一区| 久久99日本精品| 欧美不卡一区二区三区| 日日夜夜免费精品| 884aa四虎影成人精品一区| 亚洲午夜久久久| 欧美色爱综合网| 图片区小说区国产精品视频| 欧美欧美午夜aⅴ在线观看| 亚洲韩国精品一区| 欧美日韩一级视频| 日韩精品五月天| 日韩欧美资源站| 国产九色sp调教91| 国产精品嫩草影院com| 成人黄色777网| 亚洲精品大片www| 欧美精品xxxxbbbb| 精品一区二区三区在线播放| 久久蜜臀中文字幕| 成人福利电影精品一区二区在线观看| 亚洲欧洲国产日韩| 欧美日韩一区中文字幕| 人人爽香蕉精品| 国产日韩视频一区二区三区| 91同城在线观看| 天堂影院一区二区| 久久久久久免费毛片精品| 成人精品在线视频观看| 亚洲一区二区成人在线观看| 91精品国产欧美日韩| 国产成人精品免费网站| 亚洲免费看黄网站| 91精品欧美久久久久久动漫 | 国产精品美女久久福利网站| 欧美在线影院一区二区| 六月丁香婷婷色狠狠久久| 欧美国产日韩亚洲一区| 在线精品亚洲一区二区不卡| 久久成人av少妇免费| 国产精品传媒入口麻豆| 欧美高清激情brazzers| 风间由美一区二区av101| 亚洲少妇中出一区| 日韩欧美在线不卡| 91美女视频网站| 国产一区二区91| 午夜精品福利一区二区三区av | 亚洲精品免费视频| 欧美性做爰猛烈叫床潮| 六月丁香婷婷色狠狠久久| 亚洲欧洲性图库| 欧美大白屁股肥臀xxxxxx| av在线播放成人| 国产一区福利在线| 午夜精品一区在线观看| 中文字幕一区二区三区在线观看| 欧美v亚洲v综合ⅴ国产v| 色狠狠av一区二区三区| 国产成人综合视频| 蜜臀a∨国产成人精品| 一区二区三区四区乱视频| 久久综合色婷婷| 日韩一区二区三区视频在线观看| 91视频xxxx| 成人性色生活片免费看爆迷你毛片| 欧美aⅴ一区二区三区视频| 一区二区三区色| 亚洲欧美在线观看| 久久久久久夜精品精品免费| 欧美一级高清片在线观看| 欧美日韩一区二区三区在线| 91久久精品一区二区二区| 99视频精品全部免费在线| 国产成人自拍高清视频在线免费播放| 蜜桃视频一区二区三区| 免费视频最近日韩| 热久久免费视频| 蜜桃av噜噜一区二区三区小说| 亚洲v精品v日韩v欧美v专区| 一区二区在线免费| 亚洲猫色日本管| 亚洲精品伦理在线| 亚洲精品免费在线| 亚洲自拍偷拍图区| 亚洲亚洲人成综合网络| 亚洲精品综合在线| 一区二区三区色| 婷婷久久综合九色国产成人| 日韩中文字幕一区二区三区| 免费观看在线综合| 美女脱光内衣内裤视频久久网站| 久久99国产精品麻豆| 看电视剧不卡顿的网站| 久久99日本精品| 国产电影精品久久禁18| 99精品欧美一区二区三区小说| 91福利在线看| 欧美一区二区三区视频在线| 久久综合久久综合久久| 中文字幕日韩一区| 亚洲一区二区中文在线| 午夜欧美大尺度福利影院在线看| 奇米一区二区三区| 国产精品亚洲视频| 99久久精品国产一区| 欧美在线免费观看亚洲| 日韩视频在线你懂得| 日本一区二区免费在线| 亚洲一卡二卡三卡四卡五卡| 九九国产精品视频| 97成人超碰视| 欧美一激情一区二区三区| 国产片一区二区| 午夜精品久久久久| 国产成人精品免费| 欧美日韩激情在线| 国产亚洲精久久久久久| 亚洲激情网站免费观看| 麻豆精品久久久| 色综合久久久网| 精品国产乱码久久| 综合分类小说区另类春色亚洲小说欧美| 丝袜脚交一区二区| 成人av资源在线观看| 555www色欧美视频| 国产精品久久久久aaaa樱花| 蜜桃视频一区二区| 在线看不卡av| 国产精品成人一区二区艾草 | 欧美色视频在线|