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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? htdav.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*** WebDAV MANAGER****      (c) COPYRIGHT MIT 1995.**      Please first read the full copyright statement in the file COPYRIGH.**** Authors**      MKP     Manuele Kirsch Pinheiro, Manuele.Kirsch_Pinheiro@inrialpes.fr **                                       manuele@inf.ufrgs.br**** History**      15 Fev 02 Writen**      15 Mar 02 Changed - All methods will use entity callback and not the**                message body functions. This modification was demanded by**                Jose Kahan.**      30 May 02 Changed - wwwsys.h becames the first include file****      $Log: HTDAV.c,v $**      Revision 1.3  2002/05/30 18:08:56  kirschpi**      Minor changes concerning windows plataform (as STDIN_FILENO reference at**      myext.c and myext2.c) and concerning code readability.****      Revision 1.2  2002/05/29 16:09:13  kirschpi****      Fixes for windows plataform concerning WebDAV and Extension**      methods. In HTMethod and HTRequest, functions defined for**      the Extension Methods are now defined always, but return**      fail values when HT_EXT is not defined. In addition, the**      files "Library/src/WWWDAV.html" and "Library/src/windows/wwwdav.files"**      have been added. These files and modifications were needed**      to produce the correct "*.def" files, for windows plataform.****      Revision 1.1  2002/03/21 14:16:27  kirschpi**      Missing files**      Manuele Kirsch****** $Id: HTDAV.c,v 1.3 2002/05/30 18:08:56 kirschpi Exp $*//* Library include files */#include "wwwsys.h"#include "WWWLib.h"#include "WWWInit.h"#include "WWWUtil.h"#include "WWWStream.h"#include "HTDAV.h"              /* implemented here */#ifdef HT_DAVstruct _HTStream {    const HTStreamClass *       isa;    HTStream *                  target;    HTRequest *                 request;    int                         version;    BOOL                        endHeader;    BOOL                        transparent;};/* --------------------------------------------------------------------------*//*                           WebDAV REQUEST HEADERS                          *//* --------------------------------------------------------------------------*//* Headers defined in WebDAV - RC2518 ** If: state list _ may be a tagged or a non-tag list of state tokens and Etags** Depth: how depth the method should be executed. Values are: 0,1,infinity** Destination: destination URI for COPY and MOVE methods** Overwrite: should the method overwrite any existant resource? Values: T or F** LockToken: lock identification (used only in UNLOCK method)** Timeout: lock timeout. Values: Second-nnn,Infinite or Extend file (RFC2068) */struct _HTDAVHeaders {    char * If;    char * Depth;    char * Destination;    char * LockToken;    char * Timeout;    char Overwrite;};/*** Creates a new HTDAVHeaders struct */ PUBLIC HTDAVHeaders * HTDAVHeaders_new (void) {    HTDAVHeaders *me;    if ( (me = (HTDAVHeaders *) HT_CALLOC (1,sizeof(HTDAVHeaders))) == NULL)        HT_OUTOFMEM ("HTDAVHeaders_new");    /* set everything to an empty value */    me->If = NULL;    me->Depth = NULL;    me->Destination = NULL;    me->LockToken = NULL;    me->Timeout = NULL;    me->Overwrite = ' ';    HTTRACE (PROT_TRACE,"HTDAV.... HTDAVHeaders object created\n");    return me;} /*** Deletes a HTDAVHeaders object*/PUBLIC BOOL HTDAVHeaders_delete (HTDAVHeaders *me) {    if (me) {        if (me->If) HT_FREE (me->If);        if (me->Depth) HT_FREE (me->Depth);        if (me->Destination) HT_FREE (me->Destination);        if (me->LockToken) HT_FREE (me->LockToken);        if (me->Timeout) HT_FREE (me->Timeout);        HT_FREE (me);        HTTRACE (PROT_TRACE,"HTDAV.... HTDAVHeaders object removed\n");        return YES;    }    return NO;}/*** Set the If header - see section 9.4 of RFC2518 */ PUBLIC BOOL HTDAV_setIfHeader (HTDAVHeaders *me, const char *If) {    if (me && If && *If) {        HTTRACE (PROT_TRACE,"HTDAV.... If Header set\n");        StrAllocCopy (me->If,If);        return YES;    }    return NO;}/*** Removes the "If" header.*/PUBLIC BOOL HTDAV_deleteIfHeader (HTDAVHeaders * me) {    if (me && me->If) {        HT_FREE(me->If);        me->If = NULL;        return YES;    }    return NO;}/*** Return the "If" header, NULL if this header is not set.** The caller should FREE the returned string*/PUBLIC char * HTDAV_ifHeader (HTDAVHeaders *me) {    char *copy = NULL;    if (me && me->If) {        StrAllocCopy (copy,me->If);    }    return copy;}/*** Set the Depth header - see section 9.2 of RFC2518 */ PUBLIC BOOL HTDAV_setDepthHeader (HTDAVHeaders *me, const char *Depth) {    if (me && Depth && *Depth) {        HTTRACE (PROT_TRACE,"HTDAV.... Depth Header set\n");        StrAllocCopy (me->Depth,Depth);        return YES;    }    return NO;}/*** Removes the "Depth" header.*/PUBLIC BOOL HTDAV_deleteDepthHeader (HTDAVHeaders * me) {    if (me && me->Depth) {        HT_FREE (me->Depth);        me->Depth = NULL;        return YES;    }    return NO;}/*** Return the "Depth" header, NULL if this header is not set.** The caller should FREE the returned string*/PUBLIC char * HTDAV_DepthHeader (HTDAVHeaders *me) {    char *copy = NULL;    if (me && me->Depth) {        StrAllocCopy (copy,me->Depth);    }    return copy;}/*** Set the LockToken header - see section 9.5 of RFC2518 */ PUBLIC BOOL HTDAV_setLockTokenHeader (HTDAVHeaders *me, const char *LockToken) {    if (me && LockToken && *LockToken) {        HTTRACE (PROT_TRACE,"HTDAV.... Lock-Token Header set\n");        StrAllocCopy (me->LockToken,LockToken);        return YES;    }    return NO;}/*** Removes the "LockToken" header.*/PUBLIC BOOL HTDAV_deleteLockTokenHeader (HTDAVHeaders * me) {    if (me && me->LockToken) {        HT_FREE (me->LockToken);        me->LockToken = NULL;        return YES;    }    return NO;}/*** Return the "LockToken" header, NULL if this header is not set.** The caller should FREE the returned string*/PUBLIC char * HTDAV_LockTokenHeader (HTDAVHeaders *me) {    char *copy = NULL;    if (me && me->LockToken) {        StrAllocCopy (copy,me->LockToken);    }    return copy;}/*** Set the Destination header - see section 9.3 of RFC2518 */ PUBLIC BOOL HTDAV_setDestinationHeader (HTDAVHeaders *me, const char *Destination) {    if (me && Destination && *Destination) {        HTTRACE (PROT_TRACE,"HTDAV.... Destination Header set\n");        StrAllocCopy (me->Destination,Destination);        return YES;    }    return NO;}/*** Removes the "Destination" header.*/PUBLIC BOOL HTDAV_deleteDestinationHeader (HTDAVHeaders * me) {    if (me && me->Destination) {        HT_FREE (me->Destination);        me->Destination = NULL;        return YES;    }    return NO;}/*** Return the "Destination" header, NULL if this header is not set.** The caller should FREE the returned string*/PUBLIC char * HTDAV_DestinationHeader (HTDAVHeaders *me) {    char *copy = NULL;    if (me && me->Destination) {        StrAllocCopy (copy,me->Destination);    }    return copy;}/*** Set the Timeout header - see section 9.8 of RFC2518 */ PUBLIC BOOL HTDAV_setTimeoutHeader (HTDAVHeaders *me, const char *Timeout) {    if (me && Timeout && *Timeout) {        HTTRACE (PROT_TRACE,"HTDAV.... Timeout Header set\n");        StrAllocCopy (me->Timeout,Timeout);        return YES;    }    return NO;}/*** Removes the "Timeout" header.*/PUBLIC BOOL HTDAV_deleteTimeoutHeader (HTDAVHeaders * me) {    if (me && me->Timeout) {        HT_FREE (me->Timeout);        me->Timeout = NULL;        return YES;    }    return NO;}/*** Return the "Timeout" header, NULL if this header is not set.** The caller should FREE the returned string*/PUBLIC char * HTDAV_TimeoutHeader (HTDAVHeaders *me) {    char *copy = NULL;    if (me && me->Timeout) {        StrAllocCopy (copy,me->Timeout);    }    return copy;}/*** Set the Overwrite header - see section 9.6 of RFC2518*/PUBLIC BOOL HTDAV_setOverwriteHeader (HTDAVHeaders *me, BOOL Overwrite) {    if (me) {        HTTRACE (PROT_TRACE,"HTDAV.... Overwrite Header set\n");        me->Overwrite = (Overwrite)?'T':'F';        return YES;    }    return NO;}/*** Removes the "Overwirte" header.*/PUBLIC BOOL HTDAV_deleteOverwriteHeader (HTDAVHeaders * me) {    if (me) {        me->Overwrite = ' ';        return YES;    }    return NO;}/*** Returns the "Overwrite" header. If it is not set, returns the** default value (YES == TRUE)*/PUBLIC BOOL HTDAV_OverwriteHeader (HTDAVHeaders * me) {    if (me) {      return (me->Overwrite==' ' || me->Overwrite=='T')?YES:NO;    }    return YES;}/* --------------------------------------------------------------------------*//*                           ENTITY CALLBACK                                 *//* --------------------------------------------------------------------------*//*** Entity Callback - IDEM HTAccess.c*/PRIVATE int HTEntity_callback (HTRequest * request, HTStream * target){    HTParentAnchor * entity = HTRequest_entityAnchor(request);    HTTRACE(APP_TRACE, "Posting Data from callback function\n");    if (!request || !entity || !target) return HT_ERROR;    {        BOOL chunking = NO;        int status;        char * document = (char *) HTAnchor_document(entity);        int len = HTAnchor_length(entity);        if (!document) {           HTTRACE(PROT_TRACE, "Posting Data No document\n");           return HT_ERROR;        }        /*        ** If the length is unknown (-1) then see if the document is a text        ** type and in that case take the strlen. If not then we don't know        ** how much data we can write and must stop        */        if (len < 0) {            HTFormat actual = HTAnchor_format(entity);            HTFormat tmplate = HTAtom_for("text/*");            if (HTMIMEMatch(tmplate, actual)) {                len = strlen(document);                 /* Naive! */                chunking = YES;            } else {                HTTRACE(PROT_TRACE, "Posting Data Must know the length of document %p\n" _                              document);                return HT_ERROR;            }       }        /* Send the data down the pipe */        status = (*target->isa->put_block)(target, document, len);        if (status == HT_WOULD_BLOCK) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9191精品国产综合久久久久久| 麻豆国产一区二区| 亚洲福利视频一区| 日韩va亚洲va欧美va久久| 国产一区二区在线免费观看| 成人午夜电影小说| 精品视频全国免费看| 91精品国产免费| 国产精品美女一区二区三区 | 国产精品99久久久久久宅男| 波多野结衣亚洲一区| 91麻豆精品国产91久久久久久久久| 精品国产乱子伦一区| 亚洲色欲色欲www在线观看| 日韩国产欧美在线观看| 成人永久免费视频| 制服丝袜中文字幕一区| 国产喷白浆一区二区三区| 亚洲国产欧美日韩另类综合| 国产揄拍国内精品对白| 欧洲生活片亚洲生活在线观看| 日韩免费看的电影| 亚洲精品乱码久久久久久日本蜜臀| 日韩精品欧美精品| 91碰在线视频| 欧美大白屁股肥臀xxxxxx| 亚洲欧美日韩精品久久久久| 久久69国产一区二区蜜臀| 色哟哟欧美精品| 国产欧美va欧美不卡在线| 免费成人在线影院| 在线观看91精品国产入口| 久久精品亚洲精品国产欧美| 亚洲gay无套男同| 波多野结衣一区二区三区| 欧美大片拔萝卜| 亚洲一区二区高清| av中文字幕亚洲| 2023国产一二三区日本精品2022| 亚洲在线视频网站| 成人h精品动漫一区二区三区| 欧美一级片免费看| 亚洲午夜日本在线观看| 欧美日韩精品久久久| 欧美日韩国产综合久久| 中文字幕制服丝袜一区二区三区 | 国产精品自拍毛片| 欧美理论片在线| 亚洲免费av网站| 波多野结衣精品在线| 久久精品视频一区二区| 另类小说图片综合网| 欧美日韩电影一区| 亚洲夂夂婷婷色拍ww47| 一本色道**综合亚洲精品蜜桃冫| 欧美国产日本视频| 国产成人在线视频网站| 久久午夜色播影院免费高清| 奇米777欧美一区二区| 精品视频1区2区3区| 亚洲一区二区三区中文字幕在线| aaa欧美色吧激情视频| 欧美国产精品一区| 国产很黄免费观看久久| 亚洲精品一线二线三线| 久久不见久久见中文字幕免费| 欧美酷刑日本凌虐凌虐| 亚洲香肠在线观看| 欧美午夜电影在线播放| 一区二区三区.www| 在线观看亚洲一区| 午夜国产精品影院在线观看| 欧美三级资源在线| 亚洲午夜视频在线| 欧美巨大另类极品videosbest| 午夜精彩视频在线观看不卡| 欧美日韩免费视频| 日本在线播放一区二区三区| 欧美一区二区三区视频在线| 秋霞成人午夜伦在线观看| 欧美一区二区免费观在线| 免费成人美女在线观看.| 欧美一区二区三区免费在线看| 日本视频一区二区| 久久免费国产精品| 东方aⅴ免费观看久久av| 国产精品午夜春色av| 99久久精品国产精品久久| 中文字幕一区二区在线播放| 91久久精品网| 日韩制服丝袜av| 精品日韩一区二区三区免费视频| 国内精品写真在线观看| 国产欧美日韩精品a在线观看| 成人av网址在线| 亚洲伊人伊色伊影伊综合网| 欧美美女直播网站| 麻豆精品一区二区| 国产精品嫩草影院av蜜臀| 91美女在线观看| 天堂成人免费av电影一区| 日韩美一区二区三区| 国产成人一级电影| 亚洲精品免费一二三区| 91精品一区二区三区在线观看| 精品制服美女丁香| 国产精品成人免费| 在线不卡中文字幕| 国产一区二区久久| 一区二区三区在线观看网站| 91精品国产入口| 成人18视频在线播放| 亚洲在线免费播放| 久久综合色之久久综合| 95精品视频在线| 青青草成人在线观看| 欧美激情在线看| 欧美三级电影精品| 国产一区二区三区香蕉| 一区二区视频在线看| 欧美一区二区视频在线观看2020 | 国产精品理论在线观看| 色综合久久66| 九色综合国产一区二区三区| 中文字幕日本乱码精品影院| 91精品在线免费观看| eeuss国产一区二区三区| 视频一区免费在线观看| 中文字幕人成不卡一区| 538在线一区二区精品国产| 成人av中文字幕| 精品一区二区免费看| 亚洲美女在线国产| 久久久久久久久久久电影| 在线观看91视频| 国产91精品精华液一区二区三区| 亚洲最新视频在线观看| 国产亚洲短视频| 7777精品伊人久久久大香线蕉经典版下载| 国产成人在线电影| 日本亚洲欧美天堂免费| 综合av第一页| 久久精品无码一区二区三区| 91精品国产综合久久精品图片 | 亚洲欧美激情视频在线观看一区二区三区 | 国产喂奶挤奶一区二区三区| 欧美久久一二三四区| 不卡欧美aaaaa| 久久99热这里只有精品| 亚洲国产视频直播| 国产精品国产三级国产三级人妇| 欧美一级二级在线观看| 欧洲精品在线观看| av电影在线观看完整版一区二区| 久久成人久久鬼色| 午夜精品爽啪视频| 亚洲激情欧美激情| 国产精品卡一卡二| 久久久夜色精品亚洲| 91精品国产综合久久婷婷香蕉| 欧洲精品视频在线观看| 91色视频在线| av成人免费在线观看| 国产成人午夜精品影院观看视频| 久久精品国产色蜜蜜麻豆| 五月天久久比比资源色| 亚洲午夜电影在线观看| 亚洲乱码中文字幕| 综合av第一页| 中文字幕亚洲一区二区va在线| 久久精品夜色噜噜亚洲aⅴ| 精品久久久久久久久久久久久久久 | 欧美国产激情二区三区 | 成人综合激情网| 国产成人免费9x9x人网站视频| 精品无人码麻豆乱码1区2区| 蜜臀久久99精品久久久画质超高清| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲色图制服诱惑| 一区二区三区资源| 亚洲午夜久久久久久久久电影院 | 欧美成人三级在线| 日韩欧美一卡二卡| 欧美v日韩v国产v| 精品免费日韩av| 久久久精品天堂| 中文子幕无线码一区tr| 国产精品久久久久一区二区三区 | 一本色道久久综合精品竹菊| 91免费观看在线| 在线精品视频免费观看| 欧美亚洲一区二区在线观看| 欧美专区日韩专区| 欧美乱妇一区二区三区不卡视频| 欧美日韩一级黄| 日韩一区二区麻豆国产| 日韩欧美亚洲国产另类| 精品国产乱码久久久久久浪潮| 精品福利一二区| 欧美国产97人人爽人人喊|