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

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

?? htftpdir.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								     HTFTPDir.c**	FILE TRANSFER PROTOCOL (FTP) DIRECTORY LISTINGS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTFTPDir.c,v 2.18 1999/02/22 22:10:11 frystyk Exp $**** Authors**	HF	Henrik Frystyk <frystyk@w3.org>**** History:**	Sep 95		Spawned off from HTFTP.c and made a stream***//* Library include files */#include "wwwsys.h"#include "WWWUtil.h"#include "WWWCore.h"#include "WWWDir.h"#include "WWWTrans.h"#include "HTFTPDir.h"					 /* Implemented here */struct _HTStream {    const HTStreamClass *	isa;    HTRequest *			request;    FTPServerType		server;    HTEOLState			state;    HTDir *			dir;    BOOL			first;    BOOL			junk;    char			buffer[MAX_FTP_LINE+1];    int				buflen;};PRIVATE HTDirShow	dir_show = HT_DS_SIZE+HT_DS_DATE+HT_DS_DES+HT_DS_ICON;PRIVATE HTDirKey	dir_key = HT_DK_CINS;/* ------------------------------------------------------------------------- *//*	ParseUnix**	---------**	Extract the name, size, and date from an 'ls'. The function expects**	the following format of the ls-line:****	<permission> <nlink> <owner> [<group>] <size> <date> <filename>****	Returns YES if OK, NO on error*/PRIVATE BOOL ParseUnix (HTDir *dir, char * line){    int cnt;    char *ptr = line;    char *column = NULL;    char *date = NULL;    char sizestr[10];        HTFileMode mode = (*line == 'd') ? HT_IS_DIR : HT_IS_FILE;    /* Spool past permission, link, and owner */    for (cnt=0; cnt<4; cnt++) {	if ((column = HTNextField(&ptr)) == NULL) break;    }        /*    ** This field can either be group or size. We find out by looking at the    ** next field. If this is a non-digit then this field is the size.    */    while (*ptr && isspace((int) *ptr)) ptr++;    if (isdigit((int) *ptr)) {	column = HTNextField(&ptr);	while (*ptr && isspace((int) *ptr)) ptr++;    }    if (mode == HT_IS_FILE) {	long ls = atol(column);	HTNumToStr(ls, sizestr, 10);    } else	strcpy(sizestr, "-");    /* Find date field */    date = ptr;    ptr += 12;    *ptr++ = '\0';    date = HTStrip(date);    /* Take the reminder as the filename */    while (*ptr && isspace((int) *ptr)) ptr++;    if ((column = strstr(ptr, " -> ")))	*column = '\0';					   /* Strip any '->' */        /* Add the element with what we've got */    return HTDir_addElement(dir, ptr, date, sizestr, mode);}/*	ParseVMS**	--------**      Parse the VMS line and send it to the directory module**	Returns YES if OK, NO on error*/PRIVATE BOOL ParseVMS (HTDir *dir, char * line){    char *ptr = NULL;    char *date = NULL;    char *size = NULL;    char sizestr[10];    HTFileMode mode;        /* Valid lines have the semi-colon version number token */    if ((ptr = strchr(line, ';')) == NULL)	return YES;    *ptr++ ='\0';    if (HTNextField(&ptr) == NULL) return YES;    /* Cast VMS file and directory names to lowercase except .Z and _Z */    {	char *lp = line;	while (*lp) {	    if (strcmp(lp, ".Z")==0 || strcmp(lp, "_Z")==0) break;	    *lp = TOLOWER(*lp);	    lp++;	}	if ((lp = strstr(line, ".dir"))) {		   /* Strip any .dir */	    mode = HT_IS_DIR;	    *lp = '\0';	} else	    mode = HT_IS_FILE;    }    /* Find the size */    if ((size = HTNextField(&ptr))) {	if (mode == HT_IS_FILE) {	    long ls = atol(size) * 512;			    /* Assume blocks */	    HTNumToStr(ls, sizestr, 10);	} else	    strcpy(sizestr, "-");    } else	*sizestr = '\0';	    /* Find the date */    {	char *end = strchr(ptr, '[');	if (end) *end = '\0';	date = HTStrip(ptr);    }    return HTDir_addElement(dir, line, date, sizestr, mode);}/*	ParseFTPLine**	-----------**	Determines what to do with a line read from a FTP listing**	Returns YES if OK, else NO*/PRIVATE BOOL ParseFTPLine (HTStream *me){    if (!me->buflen) return YES;			    /* If empty line */    switch (me->server) {      case FTP_WINNT:      case FTP_UNIX:      case FTP_PETER_LEWIS:      case FTP_MACHTEN:	if (me->first) {	    if (strncmp(me->buffer, "total ", 6) &&		!strstr(me->buffer, "not available"))		ParseUnix(me->dir, me->buffer);	    me->first = NO;	} else	    ParseUnix(me->dir, me->buffer);	break;      case FTP_VMS:	/* Interpret and edit LIST output from VMS server */	/* and convert information lines to zero length.  */	ParseVMS(me->dir, me->buffer);	break;	      case FTP_NCSA:      case FTP_TCPC:	/* Directories identified by trailing "/" characters */	{	    HTFileMode mode = (*(me->buffer+me->buflen-1)=='/') ?		HT_IS_DIR : HT_IS_FILE;	    return HTDir_addElement(me->dir, me->buffer, NULL, NULL, mode);	}	break;	      default:	return HTDir_addElement(me->dir, me->buffer, NULL, NULL, HT_IS_FILE);	break;    }    return NO;}/***	Searches for FTP line until buffer fills up or a CRLF or LF is found*/PRIVATE int FTPDir_put_block (HTStream * me, const char * b, int l){    while (l-- > 0) {	if (me->state == EOL_FCR) {	    if (*b == LF && me->buflen) {		if (!me->junk) {		    *(me->buffer+me->buflen) = '\0';		    ParseFTPLine(me);		} else		    me->junk = NO;			   /* back to normal */	    }	    me->buflen = 0;	    me->state = EOL_BEGIN;	} else if (*b == CR) {	    me->state = EOL_FCR;	} else if (*b == LF && me->buflen) {	    if (!me->junk) {		*(me->buffer+me->buflen) = '\0';		ParseFTPLine(me);	    } else		me->junk = NO;				   /* back to normal */	    me->buflen = 0;	    me->state = EOL_BEGIN;	} else {	    *(me->buffer+me->buflen++) = *b;	    if (me->buflen >= MAX_FTP_LINE) {		HTTRACE(PROT_TRACE, "FTP Dir..... Line too long - ignored\n");		me->buflen = 0;		me->junk = YES;	    }	}	b++;    }    return HT_OK;}PRIVATE int FTPDir_put_string (HTStream * me, const char * s){    return FTPDir_put_block(me, s, (int) strlen(s));}PRIVATE int FTPDir_put_character (HTStream * me, char c){    return FTPDir_put_block(me, &c, 1);}PRIVATE int FTPDir_flush (HTStream * me){    return HT_OK;}PRIVATE int FTPDir_free (HTStream * me){    HTDir_free(me->dir);    HT_FREE(me);    return HT_OK;}PRIVATE int FTPDir_abort (HTStream * me, HTList * e){    HTTRACE(PROT_TRACE, "FTPDir...... ABORTING...\n");    FTPDir_free(me);    return HT_ERROR;}/*	FTPDir Stream**	-----------------*/PRIVATE const HTStreamClass FTPDirClass ={		    "FTPDir",    FTPDir_flush,    FTPDir_free,    FTPDir_abort,    FTPDir_put_character,    FTPDir_put_string,    FTPDir_put_block};PUBLIC HTStream * HTFTPDir_new (HTRequest *	request,				FTPServerType	server,				char		list){    HTStream * me;    if ((me = (HTStream  *) HT_CALLOC(1, sizeof(HTStream))) == NULL)        HT_OUTOFMEM("HTFTPDir");    me->isa = &FTPDirClass;    me->request = request;        me->server = server;    me->state = EOL_BEGIN;    me->dir = HTDir_new(request, (list=='L' ? dir_show : 0), dir_key);    me->first = YES;    if (me->dir == NULL) {	HT_FREE(me);	return HTErrorStream();    }    return me;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区成人在线观看| 欧美电影一区二区三区| 偷窥国产亚洲免费视频| 久久综合久久久久88| 在线视频中文字幕一区二区| 处破女av一区二区| 蜜桃免费网站一区二区三区| 一区二区三区中文字幕精品精品| 精品久久国产字幕高潮| 欧美日韩精品一二三区| 色综合久久天天| 成人国产亚洲欧美成人综合网| 九九国产精品视频| 美女视频第一区二区三区免费观看网站| 日韩免费视频一区二区| 日韩欧美亚洲国产另类| 欧美精品一级二级| 欧美系列一区二区| 在线观看www91| 在线观看视频一区二区欧美日韩| 成人深夜视频在线观看| 国产精品一二三| 国产成人一区在线| 国产成人综合网站| 成人亚洲一区二区一| 成人听书哪个软件好| 成人精品一区二区三区中文字幕| 国产精品一二一区| 国产露脸91国语对白| 国产精品资源在线| 成人涩涩免费视频| 色哟哟一区二区在线观看| 91视视频在线观看入口直接观看www| 不卡的电影网站| 色综合一个色综合亚洲| 91蜜桃免费观看视频| 国产成人av影院| 99久久久精品免费观看国产蜜| 色综合色狠狠天天综合色| 欧美视频一区二区三区在线观看 | 香蕉成人啪国产精品视频综合网| 亚洲激情在线激情| 五月婷婷激情综合网| 奇米精品一区二区三区在线观看一| 免费在线观看日韩欧美| 国产精品99久久久久久宅男| 国产一区二区0| 99久久久久免费精品国产| 在线观看亚洲一区| 欧美精品一区二区久久久| 国产精品乱子久久久久| 亚洲成人激情av| 国产精品白丝jk白祙喷水网站| 国产成人av电影| 欧美日韩亚洲不卡| 国产亚洲美州欧州综合国 | 五月天国产精品| 国产电影一区在线| 欧美综合在线视频| 久久久精品人体av艺术| 一区二区免费在线播放| 韩国午夜理伦三级不卡影院| 一本色道久久综合精品竹菊| 日韩亚洲欧美一区二区三区| 国产欧美综合色| 婷婷成人综合网| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美绝品在线观看成人午夜影视| 国产欧美日韩精品在线| 毛片av中文字幕一区二区| 91麻豆精品秘密| 2021久久国产精品不只是精品| 一区二区三区中文字幕| 成人午夜av在线| 日韩免费在线观看| 亚洲动漫第一页| eeuss鲁片一区二区三区在线看| 欧美日本国产一区| 亚洲啪啪综合av一区二区三区| 韩国女主播成人在线观看| 在线日韩一区二区| 亚洲欧洲www| 懂色av一区二区三区蜜臀| 日韩精品一区二区三区在线| 一区免费观看视频| 99久久伊人精品| 中文字幕国产一区| 亚洲国产另类精品专区| 97久久超碰国产精品电影| 亚洲国产精品国自产拍av| 免费观看久久久4p| 欧美一级在线免费| 日本不卡视频一二三区| 欧美喷水一区二区| 亚洲精品亚洲人成人网| 99视频精品免费视频| 国产精品久久久久一区| jizzjizzjizz欧美| 自拍视频在线观看一区二区| 99国产一区二区三精品乱码| 欧美大尺度电影在线| 免费久久99精品国产| 日韩欧美一区电影| 国产91综合网| 国产精品欧美久久久久无广告 | 成人av综合在线| 中文字幕中文字幕在线一区| 91欧美激情一区二区三区成人| 日韩一区在线看| 欧美性大战久久久久久久蜜臀| 亚洲欧洲三级电影| 在线免费观看日本欧美| 无码av免费一区二区三区试看| 欧美日韩国产美女| 精品亚洲成a人在线观看| 久久久噜噜噜久久中文字幕色伊伊| 另类中文字幕网| 91香蕉视频mp4| 久久超级碰视频| 一区二区三区.www| 久久综合狠狠综合久久综合88| 91丝袜美女网| 国产一区二区不卡在线| 性欧美疯狂xxxxbbbb| 国产精品视频yy9299一区| 欧美电影影音先锋| 日本黄色一区二区| 国产精品小仙女| 久久国产欧美日韩精品| 亚洲精品国产无套在线观| 国产日韩欧美综合一区| 91精品欧美一区二区三区综合在 | 成人h动漫精品一区二区| 日韩精品电影一区亚洲| 亚洲精品久久久蜜桃| 久久精品视频一区二区三区| 91精品国产综合久久福利 | 精品一区二区三区免费观看 | 91麻豆精品国产自产在线 | 久久久精品国产免大香伊| 欧美日本一道本在线视频| 色国产精品一区在线观看| 91原创在线视频| jlzzjlzz亚洲日本少妇| 成人午夜视频免费看| 国产乱一区二区| 国产一区视频在线看| 精品制服美女丁香| 三级成人在线视频| 婷婷亚洲久悠悠色悠在线播放| 一区二区三区久久| 亚洲妇女屁股眼交7| 亚洲成人高清在线| 亚洲成av人片在线| 日韩高清中文字幕一区| 日韩精品电影在线| 久久精品免费观看| 国产精品原创巨作av| 国产成人在线免费| 91免费观看在线| 欧美无砖专区一中文字| 欧美福利视频一区| 精品卡一卡二卡三卡四在线| 亚洲精品一区二区在线观看| 久久精品水蜜桃av综合天堂| 欧美国产日本视频| 亚洲欧洲三级电影| 亚洲二区在线视频| 卡一卡二国产精品| 99久久久国产精品免费蜜臀| 欧美视频一区二区三区四区| 欧美精品日韩精品| 久久免费精品国产久精品久久久久| 国产欧美一区二区精品婷婷| 1024国产精品| 日本伊人精品一区二区三区观看方式| 美女看a上一区| 99riav久久精品riav| 在线观看不卡视频| 精品久久国产97色综合| 亚洲视频图片小说| 日韩黄色免费网站| 国产精品影视在线| 欧美三级欧美一级| www国产精品av| 亚洲与欧洲av电影| 国产乱人伦偷精品视频免下载| 99精品视频在线观看| 91精品国产色综合久久| 国产精品高潮呻吟| 蜜臀a∨国产成人精品| 91亚洲国产成人精品一区二区三 | 中文字幕精品在线不卡| 亚洲福中文字幕伊人影院| 国产精品系列在线播放| 欧美日韩美少妇| 中文字幕日本不卡| 国产精品一线二线三线| 欧美美女bb生活片| 亚洲日本一区二区三区|