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

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

?? 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) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区视频| 九九**精品视频免费播放| 精品国产一区二区三区四区四 | 久久色在线观看| 热久久免费视频| 一区二区三区精密机械公司| 日韩免费视频一区二区| 欧美视频你懂的| 国产美女在线观看一区| 五月天激情小说综合| 中文字幕精品一区二区三区精品| 久久精品综合网| 亚洲精品久久久蜜桃| 成人禁用看黄a在线| 日韩精品专区在线| 精品国精品自拍自在线| 亚洲一二三区不卡| 97超碰欧美中文字幕| 亚洲欧美日韩国产成人精品影院 | 欧美性xxxxxx少妇| 成人免费高清视频| 激情小说亚洲一区| 久久精品国产99| 麻豆一区二区在线| 美女网站在线免费欧美精品| 免费黄网站欧美| 日日夜夜免费精品| 日本亚洲视频在线| 欧美sm美女调教| 国产精品一区二区男女羞羞无遮挡 | 久久午夜免费电影| 韩国理伦片一区二区三区在线播放| 欧美日韩午夜精品| 国产日韩欧美精品综合| 51精品秘密在线观看| 精品国产乱码91久久久久久网站| 久久色在线观看| 国产精品久久久久久亚洲伦| 一区二区三区在线播放| 伊人一区二区三区| 蜜桃视频在线一区| 成人avav在线| 91麻豆国产福利精品| 亚洲免费观看视频| 欧美福利视频一区| 成人精品免费视频| 美女网站视频久久| 99国产精品久久久| 爽爽淫人综合网网站| 久久伊人蜜桃av一区二区| 91小视频免费看| 卡一卡二国产精品| 久久久蜜桃精品| 中文字幕亚洲不卡| 久久国产精品第一页| 一本到一区二区三区| 欧美一级高清大全免费观看| 一区二区三区四区蜜桃 | 中国av一区二区三区| 亚洲第四色夜色| 亚洲国产成人在线| 亚洲精品在线三区| 51久久夜色精品国产麻豆| 91老司机福利 在线| 91亚洲永久精品| 欧美国产日韩亚洲一区| 91精品国产综合久久小美女 | 亚洲日本电影在线| 日本丶国产丶欧美色综合| 在线播放亚洲一区| 亚洲一区二区在线视频| 99精品热视频| 欧美激情一区二区三区| 老色鬼精品视频在线观看播放| 欧美在线观看你懂的| 国产精品每日更新| 日本福利一区二区| 亚洲1区2区3区4区| 亚洲一区电影777| 亚洲一区二区三区在线播放| 国产精品久久久久久久裸模 | 日韩免费高清av| 国产一区二区美女诱惑| 蜜臀va亚洲va欧美va天堂| 日本v片在线高清不卡在线观看| 美女免费视频一区| 婷婷综合另类小说色区| 成人性生交大片免费看视频在线 | 99久久免费视频.com| 中文字幕一区免费在线观看| 成人精品国产一区二区4080| 日本一区二区在线不卡| 欧美主播一区二区三区美女| 欧美一级搡bbbb搡bbbb| 久久久久久久综合色一本| 国产精品热久久久久夜色精品三区| 中文字幕欧美激情| 亚洲一级二级三级在线免费观看| 看电影不卡的网站| 中文字幕欧美日韩一区| 一区二区三区在线观看欧美| 日韩精品一卡二卡三卡四卡无卡| 亚洲日本韩国一区| 狠狠色2019综合网| 国产精品国产三级国产aⅴ中文| 欧美伊人久久久久久午夜久久久久| 偷拍一区二区三区| 国产亚洲综合av| 欧美日韩国产片| av成人动漫在线观看| 久久精品国产久精国产爱| 精品免费一区二区三区| 欧美日韩精品免费观看视频| 久久久久高清精品| 日韩二区三区四区| 91在线视频网址| 欧美日韩国产精品成人| 欧美一区二区三区在线电影| 久久久久99精品一区| 日韩女优av电影在线观看| 日韩一区二区视频在线观看| 美女在线视频一区| 久久精品二区亚洲w码| 奇米综合一区二区三区精品视频| 免费成人美女在线观看| 国产精品白丝jk黑袜喷水| 成人av电影在线网| 欧美吻胸吃奶大尺度电影 | 欧美不卡一区二区三区四区| 欧美精品日韩一区| 欧美精品一区二区三区久久久| 久久精品人人做| 亚洲免费毛片网站| 日韩不卡一区二区三区| 粉嫩av一区二区三区| 欧美日韩一区二区三区高清| 精品国产电影一区二区| 亚洲图片另类小说| 免费高清不卡av| 91免费观看国产| 欧美不卡一区二区三区| 一区二区三区丝袜| 国产在线观看一区二区| 欧美偷拍一区二区| 久久久久久99精品| 日韩亚洲欧美一区| 亚洲天堂2016| 极品美女销魂一区二区三区免费| 成人av在线影院| 日韩美女天天操| 2017欧美狠狠色| 一区二区三区色| 国产99久久久国产精品潘金| 欧美日韩国产综合一区二区| 中文字幕日韩av资源站| 日韩av一区二区三区| 色综合视频一区二区三区高清| 日韩女优毛片在线| 亚洲一区二区三区美女| 成人h版在线观看| 欧美大度的电影原声| 亚洲福利一二三区| av电影在线不卡| 久久精品亚洲精品国产欧美kt∨| 午夜影院久久久| 色综合久久久久综合体 | 中文字幕一区在线| 精品一区二区免费| 69p69国产精品| 亚洲一区二区三区四区中文字幕| 国产一区二区h| 精品亚洲成a人| 日韩一区二区免费高清| 午夜av一区二区| 色综合久久中文综合久久牛| 国产精品国产三级国产aⅴ入口| 国产呦萝稀缺另类资源| 日韩色在线观看| 午夜精品视频在线观看| 欧美少妇xxx| 亚洲国产日韩综合久久精品| 成人网男人的天堂| 国产欧美日韩精品一区| 国产精品一卡二| 久久久久国产精品人| 国产伦精品一区二区三区视频青涩 | 日韩欧美亚洲国产另类| 国产精品丝袜91| 亚洲国产精品高清| 国产一区二区在线观看视频| 麻豆国产欧美日韩综合精品二区| 欧美酷刑日本凌虐凌虐| 亚洲成人av在线电影| 欧美丝袜丝交足nylons图片| 亚洲自拍另类综合| 欧美性猛片xxxx免费看久爱| 亚洲一区日韩精品中文字幕| 精品国产99国产精品| 亚洲欧洲日韩综合一区二区| 91麻豆国产在线观看|