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

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

?? htmethod.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								     HTMethod.c**	MANAGES REQUEST METHODS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTMethod.c,v 2.8 2002/05/29 16:09:13 kirschpi Exp $****** HISTORY:**	6 June 95  HFN	Spawned off from HTAccess. Can be extended to allow**			registration of new methods**      15 Feb 2002 MKP Introduced methods from WebDAV protocol and **                      Extension Methods. (Manuele.Kirsch_Pinheiro@inrialpes.fr**                      or manuele@inf.ufrgs.br)***//* Library Include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTString.h"#include "HTMethod.h"					 /* Implemented here */PRIVATE char *method_names[] ={    "INVALID-METHOD",    "GET",    "HEAD",    "POST",    "PUT",    "PATCH",    "DELETE",    "TRACE",    "OPTIONS",    "LINK",    "UNLINK",#ifdef HT_DAV    "LOCK",                                             /* new methods for */    "UNLOCK",                                           /* webDAV protocol */    "PROPFIND",    "PROPPATCH",    "MKCOL",    "COPY",    "MOVE",#endif /* HT_DAV */#ifdef HT_EXT                                           /* extension methods */    NULL,                                               /* METHOD_EXT_0 */    NULL,                                               /* METHOD_EXT_1 */    NULL,                                               /* METHOD_EXT_2 */    NULL,                                               /* METHOD_EXT_3 */    NULL,                                               /* METHOD_EXT_4 */    NULL,                                               /* METHOD_EXT_5 */    NULL,                                               /* METHOD_EXT_6 */    #endif /* HT_EXT  */    NULL};#ifdef HT_EXT/* This array keeps the information about the presence of** an entity body in each extension method*/PRIVATE BOOL HTEXT_EntityMethods [] = {    NO,         /* METHOD_EXT_0 */    NO,         /* METHOD_EXT_1 */    NO,         /* METHOD_EXT_2 */    NO,         /* METHOD_EXT_3 */    NO,         /* METHOD_EXT_4 */    NO,         /* METHOD_EXT_5 */    NO          /* METHOD_EXT_6 */};#endif/* ------------------------------------------------------------------------- *//*	Get method enum value**	---------------------*/PUBLIC HTMethod HTMethod_enum (const char * name){    if (name) {	if (!strcasecomp(name, *(method_names+1)))	    return METHOD_GET;	else if (!strcasecomp(name, *(method_names+2)))	    return METHOD_HEAD;	else if (!strcasecomp(name, *(method_names+3)))	    return METHOD_POST;	else if (!strcasecomp(name, *(method_names+4)))	    return METHOD_PUT;	else if (!strcasecomp(name, *(method_names+5)))	    return METHOD_PATCH;	else if (!strcasecomp(name, *(method_names+6)))	    return METHOD_DELETE;	else if (!strcasecomp(name, *(method_names+7)))	    return METHOD_TRACE;	else if (!strcasecomp(name, *(method_names+8)))	    return METHOD_OPTIONS;	else if (!strcasecomp(name, *(method_names+9)))	    return METHOD_LINK;	else if (!strcasecomp(name, *(method_names+10)))	    return METHOD_UNLINK;#ifdef HT_DAV        else if (!strcasecomp(name, *(method_names+11)))        /* WebDAV lock/unlock */            return METHOD_LOCK;        else if (!strcasecomp(name, *(method_names+12)))            return METHOD_UNLOCK;        else if (!strcasecomp(name, *(method_names+13)))        /* other WebDAV methods */            return METHOD_PROPFIND;        else if (!strcasecomp(name, *(method_names+14)))            return METHOD_PROPPATCH;            else if (!strcasecomp(name, *(method_names+15)))            return METHOD_MKCOL;        else if (!strcasecomp(name, *(method_names+16)))            return METHOD_COPY;        else if (!strcasecomp(name, *(method_names+17)))                    return METHOD_MOVE;#endif /* HT_DAV */#ifdef HT_EXT                      /* if there is no extension method set, return METHOD_INVALID */        else if ( *(method_names+18) && !strcasecomp(name, *(method_names+18)))            return METHOD_EXT_0;                                        else if ( *(method_names+19) && !strcasecomp(name, *(method_names+19)))            return METHOD_EXT_1;        else if ( *(method_names+20) && !strcasecomp(name, *(method_names+20)))            return METHOD_EXT_2;        else if ( *(method_names+21) && !strcasecomp(name, *(method_names+21)))            return METHOD_EXT_3;        else if ( *(method_names+22) && !strcasecomp(name, *(method_names+22)))            return METHOD_EXT_4;        else if ( *(method_names+23) && !strcasecomp(name, *(method_names+23)))            return METHOD_EXT_5;        else if ( *(method_names+24) && !strcasecomp(name, *(method_names+24)))            return METHOD_EXT_6;#endif      }    return METHOD_INVALID;}/*	Get method name**	---------------**	Returns pointer to entry in static table in memory*/PUBLIC const char * HTMethod_name (HTMethod method){    if (method & METHOD_GET)	return *(method_names+1);    else if (method == METHOD_HEAD)	return *(method_names+2);    else if (method == METHOD_POST)	return *(method_names+3);    else if (method == METHOD_PUT)	return *(method_names+4);    else if (method == METHOD_PATCH)	return *(method_names+5);    else if (method == METHOD_DELETE)	return *(method_names+6);    else if (method == METHOD_TRACE)	return *(method_names+7);    else if (method == METHOD_OPTIONS)	return *(method_names+8);    else if (method == METHOD_LINK)	return *(method_names+9);    else if (method == METHOD_UNLINK)	return *(method_names+10);    #ifdef HT_DAV        else if (method == METHOD_LOCK)                     /* webdav lock/unlock */        return *(method_names+11);                      /* methods (locking)  */    else if (method == METHOD_UNLOCK)        return *(method_names+12);    else if (method == METHOD_PROPFIND)                 /* webdav proppatch/propfind */        return *(method_names+13);                      /* methods (properties)      */    else if (method == METHOD_PROPPATCH)        return *(method_names+14);     else if (method == METHOD_MKCOL)                   /* webdav mkcol method */        return *(method_names+15);                      /* (collencions)       */    else if (method == METHOD_COPY)             return *(method_names+16);                      /* webdav copy/move    */                   else if (method == METHOD_MOVE)                     /* methods (namespace) */        return *(method_names+17);#endif /* HT_DAV */#ifdef HT_EXT        else if (method == METHOD_EXT_0 && (*(method_names+18)))    /* extension methods */        return *(method_names+18);                              /* customizable for the app. */    else if (method == METHOD_EXT_1 && (*(method_names+19)))        return *(method_names+19);    else if (method == METHOD_EXT_2 && (*(method_names+20)))    /* if the method is not set */        return *(method_names+20);                              /* then it will return      */    else if (method == METHOD_EXT_3 && ((*method_names+21)))    /* "INVALID-METHOD"         */        return *(method_names+21);    else if (method == METHOD_EXT_4 && ((*method_names+22)))        return *(method_names+22);    else if (method == METHOD_EXT_5 && ((*method_names+23)))        return *(method_names+23);    else if (method == METHOD_EXT_6 && ((*method_names+24)))        return *(method_names+24);#endif /* HT_EXT */        else	return *method_names;}/* ** Does the method include an entity body? */PUBLIC BOOL HTMethod_hasEntity (HTMethod me) {    if (me) {        /* normal HTTP methods */        if (me & (METHOD_PUT | METHOD_POST)) return YES;#ifdef HT_DAV        /* WebDAV methods */        if (me & (METHOD_LOCK | METHOD_PROPFIND | METHOD_PROPPATCH |            METHOD_COPY | METHOD_MOVE)) return YES;#endif#ifdef HT_EXT        /* extension methods */        HTTRACE (PROT_TRACE, "HTMethod.... Has this extension method a body?\n");        if (me == METHOD_EXT_0) return HTEXT_EntityMethods[0];        else if (me == METHOD_EXT_1) return HTEXT_EntityMethods[1];        else if (me == METHOD_EXT_2) return HTEXT_EntityMethods[2];        else if (me == METHOD_EXT_3) return HTEXT_EntityMethods[3];        else if (me == METHOD_EXT_4) return HTEXT_EntityMethods[4];        else if (me == METHOD_EXT_5) return HTEXT_EntityMethods[5];        else if (me == METHOD_EXT_6) return HTEXT_EntityMethods[6];        else return (NO);#endif    }    return (NO);}/*** Set an extension method: HTMethod structure has 7 methods (METHOD_EXT_0** to METHOD_EXT_6) that can be set by the application.** This function set one of this extension methods. **** Parameters: **             HTMethod method - extension method to be set**             const char name - new name for the method** Return:**         BOOL - YES, if the operation succeed**              - NO, if it failed, for example, if the parameter method is**                                  not a extension method (METHOD_EXT_0 -**                                  METHOD_EXT_6)***/PUBLIC BOOL HTMethod_setExtensionMethod (HTMethod method, const char * name, BOOL hasEntity) {#ifdef HT_EXT    if (name && *name) {        if (method == METHOD_EXT_0) {             StrAllocCopy ((char *)(*(method_names+18)), name);            HTEXT_EntityMethods[0] = hasEntity;        }        else if (method == METHOD_EXT_1) {            StrAllocCopy ((char *)(*(method_names+19)), name);            HTEXT_EntityMethods[1] = hasEntity;        }        else if (method == METHOD_EXT_2) {            StrAllocCopy ((char *)(*(method_names+20)), name);            HTEXT_EntityMethods[2] = hasEntity;        }        else if (method == METHOD_EXT_3) {            StrAllocCopy ((char *)(*(method_names+21)), name);            HTEXT_EntityMethods[3] = hasEntity;        }        else if (method == METHOD_EXT_4) {            StrAllocCopy ((char *)(*(method_names+22)), name);            HTEXT_EntityMethods[4] = hasEntity;        }        else if (method == METHOD_EXT_5) {            StrAllocCopy ((char *)(*(method_names+23)), name);            HTEXT_EntityMethods[5] = hasEntity;        }        else if (method == METHOD_EXT_6) {            StrAllocCopy ((char *)(*(method_names+24)), name);              HTEXT_EntityMethods[6] = hasEntity;        }        else return NO;        return YES;         }   #endif /* HT_EXT */    return NO;    }/*** Delete the extension method: this funcion unset the extension method*/PUBLIC BOOL HTMethod_deleteExtensionMethod (HTMethod method) {#ifdef HT_EXT    char *ptr = NULL;       if ( (method == METHOD_EXT_0) && (*(method_names+18)) )  {         ptr = (char *) (*(method_names+18));         (*(method_names+18)) = NULL;    }    else if ( (method == METHOD_EXT_1) && (*(method_names+19)) ) {        ptr = (char *) (*(method_names+19));        (*(method_names+19)) = NULL;    }       else if ( (method == METHOD_EXT_2) && (*(method_names+20)) ) {        ptr = (char *) (*(method_names+20));        (*(method_names+20)) = NULL;    }    else if ( (method == METHOD_EXT_3) && (*(method_names+21)) ) {        ptr = (char *) (*(method_names+21));        (*(method_names+21)) = NULL;    }    else if ( (method == METHOD_EXT_4) && (*(method_names+22)) ) {        ptr = (char *) (*(method_names+22));        (*(method_names+22)) = NULL;        }    else if ( (method == METHOD_EXT_5) && (*(method_names+23)) ) {        ptr = (char *) (*(method_names+23));        (*(method_names+23)) = NULL;    }    else if ( (method == METHOD_EXT_6) && (*(method_names+24)) ) {        ptr = (char *) (*(method_names+24));        (*(method_names+24)) = NULL;    }        if (ptr) {        HT_FREE(ptr);        return YES;    }    #endif /* HT_EXT */    return NO;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日产国产精品| 五月综合激情网| 欧美日韩国产天堂| 成人h精品动漫一区二区三区| 亚洲三级小视频| 亚洲欧洲精品天堂一级| 久久婷婷国产综合国色天香| 日韩欧美在线网站| 欧美丝袜第三区| 国产a视频精品免费观看| 亚洲一级二级在线| 亚洲男人电影天堂| 洋洋av久久久久久久一区| 亚洲男人天堂av网| 国产精品一二二区| 欧美男同性恋视频网站| 精品美女一区二区三区| 国产亚洲欧美一区在线观看| 亚洲精品国产a| 国产在线不卡视频| 欧美日韩精品欧美日韩精品一 | 亚洲素人一区二区| 精品一区二区三区香蕉蜜桃| 不卡一区在线观看| 欧美精品一区二区三区视频| 亚洲一区二区偷拍精品| av电影在线观看完整版一区二区| 制服丝袜亚洲精品中文字幕| 中文字幕精品一区| 国产一区二区三区四区五区入口 | 亚洲最新在线观看| jlzzjlzz亚洲女人18| 欧美videos中文字幕| 日本成人在线一区| 欧美美女喷水视频| 亚洲自拍都市欧美小说| 成人激情免费视频| 欧美韩国日本一区| 成人免费高清在线观看| 久久九九国产精品| 丰满岳乱妇一区二区三区| 精品国产第一区二区三区观看体验| 日韩国产欧美一区二区三区| 欧美三级一区二区| 亚洲第一狼人社区| 91麻豆精品国产91久久久久久| 日韩精品久久理论片| 2023国产一二三区日本精品2022| 久久国产免费看| 亚洲国产精品av| 在线视频国产一区| 日本不卡不码高清免费观看| 欧美mv日韩mv亚洲| 国产999精品久久| 一区二区三区丝袜| 精品少妇一区二区三区在线播放 | 亚洲精品日韩专区silk| 欧美精品粉嫩高潮一区二区| 国产精品一区在线| 亚洲一区二区三区四区不卡| wwww国产精品欧美| 欧美最猛性xxxxx直播| 国产一区91精品张津瑜| 亚洲无线码一区二区三区| 久久久久久久久久久久电影| 日本精品一区二区三区高清| 激情综合色综合久久综合| 亚洲色图欧美在线| 久久奇米777| 91精品国产入口| 欧美日韩中文字幕一区二区| 成人h精品动漫一区二区三区| 秋霞午夜av一区二区三区| 亚洲免费观看高清完整版在线观看 | 亚洲成人动漫精品| 欧美精品一区二区三区一线天视频| 国产欧美日韩另类一区| 欧美一区二区三区四区视频| 91片黄在线观看| 91啪九色porn原创视频在线观看| 大白屁股一区二区视频| 国产一区二区精品在线观看| 蜜桃视频在线一区| 蜜桃精品视频在线观看| 日本免费在线视频不卡一不卡二| 亚洲大片精品永久免费| 亚洲激情一二三区| 亚洲成人动漫一区| 美国毛片一区二区| 国产91精品一区二区麻豆网站| 国产精品一区二区在线看| 成人国产在线观看| 欧美影片第一页| 欧美成人一级视频| 久久精品网站免费观看| 亚洲六月丁香色婷婷综合久久 | 在线观看一区二区精品视频| caoporen国产精品视频| 欧美日韩中文另类| 精品国产一区二区亚洲人成毛片 | 国产精品一区二区久久精品爱涩| 国产91对白在线观看九色| 91精品视频网| 欧美经典一区二区三区| 亚洲视频资源在线| 久久不见久久见免费视频1| 国产.欧美.日韩| 欧美精品粉嫩高潮一区二区| 国产午夜精品理论片a级大结局 | 日韩国产精品久久久久久亚洲| 亚洲高清视频中文字幕| 国产美女主播视频一区| 欧美日精品一区视频| 亚洲国产一区二区三区青草影视| 久久久久久久久免费| 99久久婷婷国产| 91精品福利视频| 日韩美女视频一区二区在线观看| 国产日产欧美精品一区二区三区| 中文字幕一区av| 免费人成在线不卡| av在线不卡网| 精品久久一区二区三区| 图片区小说区国产精品视频| 国产精品无码永久免费888| 麻豆专区一区二区三区四区五区| 日本韩国欧美在线| 亚洲综合丁香婷婷六月香| 色8久久人人97超碰香蕉987| 中文字幕一区二区三中文字幕 | 制服视频三区第一页精品| 亚洲国产视频直播| 91精品国产91久久综合桃花| 午夜欧美在线一二页| 51午夜精品国产| 日av在线不卡| 久久久久9999亚洲精品| 国产69精品一区二区亚洲孕妇| 国产免费观看久久| 色婷婷av久久久久久久| 亚洲线精品一区二区三区八戒| 欧美亚洲国产bt| 视频一区视频二区在线观看| 日韩欧美色综合网站| 国产成人av自拍| 亚洲国产精品久久久久秋霞影院 | 国产伦理精品不卡| 亚洲另类色综合网站| 欧美无砖专区一中文字| 久久99精品久久久久婷婷| 亚洲区小说区图片区qvod| 777奇米成人网| av影院午夜一区| 韩国一区二区三区| 亚洲福利视频三区| 国产精品美女视频| 精品剧情在线观看| 欧美在线播放高清精品| 国产精品一区久久久久| 日韩av一区二区三区四区| 亚洲四区在线观看| 国产亚洲精品福利| 日韩欧美不卡在线观看视频| 精品视频在线看| 91无套直看片红桃| 高潮精品一区videoshd| 奇米精品一区二区三区在线观看一 | 欧美一区二区播放| 欧美日韩第一区日日骚| 91小视频免费观看| 91毛片在线观看| 91在线国产福利| 国产一区欧美二区| 久久久精品国产免费观看同学| 91麻豆精品国产综合久久久久久 | 成人污视频在线观看| 免费成人美女在线观看.| 亚洲青青青在线视频| 中文一区一区三区高中清不卡| 精品对白一区国产伦| 日韩一级片网址| 国产欧美日韩在线视频| 国产目拍亚洲精品99久久精品| 中文字幕亚洲不卡| 亚洲午夜久久久久久久久电影网| 亚洲电影在线播放| 狠狠色丁香婷综合久久| 成人激情校园春色| 欧美亚洲一区三区| 日韩精品一区二区三区三区免费| 精品国产1区二区| 中文字幕日本不卡| 亚洲v日本v欧美v久久精品| 日本91福利区| 一本久久综合亚洲鲁鲁五月天| 在线一区二区三区| 久久久久国产精品麻豆| 亚洲综合无码一区二区| 成人黄色电影在线| 日韩精品影音先锋|