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

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

?? lock.c

?? apache服務器源代碼(版本號:2.2.2)
?? C
?? 第 1 頁 / 共 4 頁
字號:
}static dav_error * dav_fs_find_lock(dav_lockdb *lockdb,                                    const dav_resource *resource,                                    const dav_locktoken *locktoken,                                    int partial_ok,                                    dav_lock **lock){    dav_error *err;    apr_datum_t key;    dav_lock_discovery *dp;    dav_lock_indirect *ip;    *lock = NULL;    key = dav_fs_build_key(lockdb->info->pool, resource);    if ((err = dav_fs_load_lock_record(lockdb, key, DAV_CREATE_LIST,                                       &dp, &ip)) != NULL) {        /* ### push a higher-level desc? */        return err;    }    for (; dp != NULL; dp = dp->next) {        if (!dav_compare_locktoken(locktoken, dp->locktoken)) {            *lock = dav_fs_alloc_lock(lockdb, key, locktoken);            (*lock)->is_locknull = !resource->exists;            (*lock)->scope = dp->f.scope;            (*lock)->type = dp->f.type;            (*lock)->depth = dp->f.depth;            (*lock)->timeout = dp->f.timeout;            (*lock)->owner = dp->owner;            (*lock)->auth_user = dp->auth_user;            return NULL;        }    }    for (; ip != NULL; ip = ip->next) {        if (!dav_compare_locktoken(locktoken, ip->locktoken)) {            *lock = dav_fs_alloc_lock(lockdb, ip->key, locktoken);            (*lock)->is_locknull = !resource->exists;            /* ### nobody uses the resolving right now! */            if (partial_ok) {                (*lock)->rectype = DAV_LOCKREC_INDIRECT_PARTIAL;            }            else {                (*lock)->rectype = DAV_LOCKREC_INDIRECT;                if ((err = dav_fs_resolve(lockdb, ip, &dp,                                          NULL, NULL)) != NULL) {                    /* ### push a higher-level desc? */                    return err;                }                (*lock)->scope = dp->f.scope;                (*lock)->type = dp->f.type;                (*lock)->depth = dp->f.depth;                (*lock)->timeout = dp->f.timeout;                (*lock)->owner = dp->owner;                (*lock)->auth_user = dp->auth_user;            }            return NULL;        }    }    return NULL;}static dav_error * dav_fs_has_locks(dav_lockdb *lockdb,                                    const dav_resource *resource,                                    int *locks_present){    dav_error *err;    apr_datum_t key;    *locks_present = 0;    if ((err = dav_fs_really_open_lockdb(lockdb)) != NULL) {        /* ### insert a higher-level error description */        return err;    }    /*    ** If we opened readonly and the db wasn't there, then there are no    ** locks for this resource. Just exit.    */    if (lockdb->info->db == NULL)        return NULL;    key = dav_fs_build_key(lockdb->info->pool, resource);    *locks_present = dav_dbm_exists(lockdb->info->db, key);    return NULL;}static dav_error * dav_fs_append_locks(dav_lockdb *lockdb,                                       const dav_resource *resource,                                       int make_indirect,                                       const dav_lock *lock){    apr_pool_t *p = lockdb->info->pool;    dav_error *err;    dav_lock_indirect *ip;    dav_lock_discovery *dp;    apr_datum_t key;    key = dav_fs_build_key(lockdb->info->pool, resource);    if ((err = dav_fs_load_lock_record(lockdb, key, 0, &dp, &ip)) != NULL) {        /* ### maybe add in a higher-level description */        return err;    }    /*    ** ### when we store the lock more directly, we need to update    ** ### lock->rectype and lock->is_locknull    */    if (make_indirect) {        for (; lock != NULL; lock = lock->next) {            /* ### this works for any <lock> rectype */            dav_lock_indirect *newi = apr_pcalloc(p, sizeof(*newi));            /* ### shut off the const warning for now */            newi->locktoken = (dav_locktoken *)lock->locktoken;            newi->timeout   = lock->timeout;            newi->key       = lock->info->key;            newi->next      = ip;            ip              = newi;        }    }    else {        for (; lock != NULL; lock = lock->next) {            /* create and link in the right kind of lock */            if (lock->rectype == DAV_LOCKREC_DIRECT) {                dav_lock_discovery *newd = apr_pcalloc(p, sizeof(*newd));                newd->f.scope = lock->scope;                newd->f.type = lock->type;                newd->f.depth = lock->depth;                newd->f.timeout = lock->timeout;                /* ### shut off the const warning for now */                newd->locktoken = (dav_locktoken *)lock->locktoken;                newd->owner = lock->owner;                newd->auth_user = lock->auth_user;                newd->next = dp;                dp = newd;            }            else {                /* DAV_LOCKREC_INDIRECT(_PARTIAL) */                dav_lock_indirect *newi = apr_pcalloc(p, sizeof(*newi));                /* ### shut off the const warning for now */                newi->locktoken = (dav_locktoken *)lock->locktoken;                newi->key       = lock->info->key;                newi->next      = ip;                ip              = newi;            }        }    }    if ((err = dav_fs_save_lock_record(lockdb, key, dp, ip)) != NULL) {        /* ### maybe add a higher-level description */        return err;    }    /* we have a special list for recording locknull resources */    /* ### ack! this can add two copies to the locknull list */    if (!resource->exists        && (err = dav_fs_add_locknull_state(lockdb, resource)) != NULL) {        /* ### maybe add a higher-level description */        return err;    }    return NULL;}static dav_error * dav_fs_remove_lock(dav_lockdb *lockdb,                                      const dav_resource *resource,                                      const dav_locktoken *locktoken){    dav_error *err;    dav_buffer buf = { 0 };    dav_lock_discovery *dh = NULL;    dav_lock_indirect *ih = NULL;    apr_datum_t key;    key = dav_fs_build_key(lockdb->info->pool, resource);    if (locktoken != NULL) {        dav_lock_discovery *dp;        dav_lock_discovery *dprev = NULL;        dav_lock_indirect *ip;        dav_lock_indirect *iprev = NULL;        if ((err = dav_fs_load_lock_record(lockdb, key, DAV_CREATE_LIST,                                           &dh, &ih)) != NULL) {            /* ### maybe add a higher-level description */            return err;        }        for (dp = dh; dp != NULL; dp = dp->next) {            if (dav_compare_locktoken(locktoken, dp->locktoken) == 0) {                if (dprev)                    dprev->next = dp->next;                else                    dh = dh->next;            }            dprev = dp;        }        for (ip = ih; ip != NULL; ip = ip->next) {            if (dav_compare_locktoken(locktoken, ip->locktoken) == 0) {                if (iprev)                    iprev->next = ip->next;                else                    ih = ih->next;            }            iprev = ip;        }    }    /* save the modified locks, or remove all locks (dh=ih=NULL). */    if ((err = dav_fs_save_lock_record(lockdb, key, dh, ih)) != NULL) {        /* ### maybe add a higher-level description */        return err;    }    /*    ** If this resource is a locknull resource AND no more locks exist,    ** then remove the locknull member.    **    ** Note: remove_locknull_state() attempts to convert a locknull member    **       to a real member. In this case, all locks are gone, so the    **       locknull resource returns to the null state (ie. doesn't exist),    **       so there is no need to update the lockdb (and it won't find    **       any because a precondition is that none exist).    */    if (!resource->exists && dh == NULL && ih == NULL        && (err = dav_fs_remove_locknull_member(lockdb->info->pool,                                                dav_fs_pathname(resource),                                                &buf)) != NULL) {        /* ### maybe add a higher-level description */        return err;    }    return NULL;}static int dav_fs_do_refresh(dav_lock_discovery *dp,                             const dav_locktoken_list *ltl,                             time_t new_time){    int dirty = 0;    for (; ltl != NULL; ltl = ltl->next) {        if (dav_compare_locktoken(dp->locktoken, ltl->locktoken) == 0)        {            dp->f.timeout = new_time;            dirty = 1;        }    }    return dirty;}static dav_error * dav_fs_refresh_locks(dav_lockdb *lockdb,                                        const dav_resource *resource,                                        const dav_locktoken_list *ltl,                                        time_t new_time,                                        dav_lock **locks){    dav_error *err;    apr_datum_t key;    dav_lock_discovery *dp;    dav_lock_discovery *dp_scan;    dav_lock_indirect *ip;    int dirty = 0;    dav_lock *newlock;    *locks = NULL;    key = dav_fs_build_key(lockdb->info->pool, resource);    if ((err = dav_fs_load_lock_record(lockdb, key, DAV_CREATE_LIST,                                       &dp, &ip)) != NULL) {        /* ### maybe add in a higher-level description */        return err;    }    /* ### we should be refreshing direct AND (resolved) indirect locks! */    /* refresh all of the direct locks on this resource */    for (dp_scan = dp; dp_scan != NULL; dp_scan = dp_scan->next) {        if (dav_fs_do_refresh(dp_scan, ltl, new_time)) {            /* the lock was refreshed. return the lock. */            newlock = dav_fs_alloc_lock(lockdb, key, dp_scan->locktoken);            newlock->is_locknull = !resource->exists;            newlock->scope = dp_scan->f.scope;            newlock->type = dp_scan->f.type;            newlock->depth = dp_scan->f.depth;            newlock->timeout = dp_scan->f.timeout;            newlock->owner = dp_scan->owner;            newlock->auth_user = dp_scan->auth_user;            newlock->next = *locks;            *locks = newlock;            dirty = 1;        }    }    /* if we refreshed any locks, then save them back. */    if (dirty        && (err = dav_fs_save_lock_record(lockdb, key, dp, ip)) != NULL) {        /* ### maybe add in a higher-level description */        return err;    }    /* for each indirect lock, find its direct lock and refresh it. */    for (; ip != NULL; ip = ip->next) {        dav_lock_discovery *ref_dp;        dav_lock_indirect *ref_ip;        if ((err = dav_fs_resolve(lockdb, ip, &dp_scan,                                  &ref_dp, &ref_ip)) != NULL) {            /* ### push a higher-level desc? */            return err;        }        if (dav_fs_do_refresh(dp_scan, ltl, new_time)) {            /* the lock was refreshed. return the lock. */            newlock = dav_fs_alloc_lock(lockdb, ip->key, dp_scan->locktoken);            newlock->is_locknull = !resource->exists;            newlock->scope = dp_scan->f.scope;            newlock->type = dp_scan->f.type;            newlock->depth = dp_scan->f.depth;            newlock->timeout = dp_scan->f.timeout;            newlock->owner = dp_scan->owner;            newlock->auth_user = dp_scan->auth_user;            newlock->next = *locks;            *locks = newlock;            /* save the (resolved) direct lock back */            if ((err = dav_fs_save_lock_record(lockdb, ip->key, ref_dp,                                               ref_ip)) != NULL) {                /* ### push a higher-level desc? */                return err;            }        }    }    return NULL;}const dav_hooks_locks dav_hooks_locks_fs ={    dav_fs_get_supportedlock,    dav_fs_parse_locktoken,    dav_fs_format_locktoken,    dav_fs_compare_locktoken,    dav_fs_open_lockdb,    dav_fs_close_lockdb,    dav_fs_remove_locknull_state,    dav_fs_create_lock,    dav_fs_get_locks,    dav_fs_find_lock,    dav_fs_has_locks,    dav_fs_append_locks,    dav_fs_remove_lock,    dav_fs_refresh_locks,    NULL, /* lookup_resource */    NULL /* ctx */};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷综合五月天| 欧美日韩一区二区三区免费看| 91精品视频网| 日本午夜精品一区二区三区电影| 88在线观看91蜜桃国自产| 日韩电影一区二区三区| wwwwww.欧美系列| 国产成人高清视频| 亚洲色欲色欲www| 在线电影院国产精品| 久久精品国产成人一区二区三区| 久久精品欧美一区二区三区不卡 | 亚洲国产精品传媒在线观看| 粉嫩一区二区三区性色av| 亚洲同性同志一二三专区| 欧美性欧美巨大黑白大战| 午夜av一区二区三区| 精品国产伦一区二区三区免费 | 中文字幕日韩av资源站| 欧美人妖巨大在线| 国内不卡的二区三区中文字幕 | 久久综合精品国产一区二区三区| 成人精品一区二区三区中文字幕| 一区二区三区在线视频免费观看| 91精品国产综合久久香蕉麻豆| 韩国精品主播一区二区在线观看 | 成人毛片老司机大片| 亚洲人成在线观看一区二区| 91.com视频| 成人sese在线| 亚洲第一福利一区| 亚洲色图丝袜美腿| 99天天综合性| 国产精品天美传媒| 国产精品乱人伦中文| 欧美一区二区三区在线视频| 久久无码av三级| 久久精品亚洲麻豆av一区二区| 久久人人爽爽爽人久久久| 久久综合给合久久狠狠狠97色69| 婷婷六月综合亚洲| 成人av电影在线网| 欧美色欧美亚洲另类二区| 亚洲视频在线观看三级| 樱桃视频在线观看一区| 成人国产精品免费网站| 毛片av一区二区三区| 成人午夜大片免费观看| 久久夜色精品国产噜噜av | 久久久99精品免费观看| 国产酒店精品激情| 亚洲日本免费电影| 91精品国产91综合久久蜜臀| 人人超碰91尤物精品国产| 日本一区二区高清| 欧美综合一区二区| 韩国视频一区二区| 亚洲制服丝袜av| 精品国产一区二区三区四区四 | 成人在线一区二区三区| 中文字幕在线观看一区二区| 欧美性大战久久久久久久蜜臀 | 欧美一区二区免费视频| 国产精品资源在线| 亚洲国产wwwccc36天堂| 国产精品―色哟哟| 欧美一区二区三区婷婷月色| 午夜精品久久久久久久99樱桃| 国产亚洲欧美激情| 日韩视频在线观看一区二区| 色综合视频一区二区三区高清| 久久精品99国产精品| 亚洲444eee在线观看| 亚洲免费观看高清完整版在线| 精品国产乱码久久久久久牛牛 | 69堂国产成人免费视频| 日韩av一二三| 亚洲一区二区黄色| 亚洲精品videosex极品| 中文一区二区完整视频在线观看| 日韩欧美国产wwwww| 欧美一区二区三区视频免费播放| 91老师国产黑色丝袜在线| 99re热视频精品| 日本电影欧美片| 7777女厕盗摄久久久| 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人教育av在线| 不卡一区二区三区四区| 国产一区二区毛片| 精品国产免费人成在线观看| 欧美xxxxxxxx| 国产精品灌醉下药二区| 亚洲成av人影院| 自拍av一区二区三区| 中文字幕在线观看一区| 亚洲6080在线| 国产精品18久久久久久久久| 99精品欧美一区二区三区综合在线| 成人av第一页| 欧美一区二区视频在线观看2022| 欧美成人精品3d动漫h| 国产精品成人在线观看| 日本在线不卡一区| 国产精品福利av| 中文字幕在线不卡一区| 亚洲少妇30p| 免费日本视频一区| 99re热视频这里只精品| 精品久久人人做人人爽| 一区二区三区色| 国内精品国产三级国产a久久| 色综合网站在线| 精品日韩在线观看| 黄色精品一二区| 成+人+亚洲+综合天堂| 欧美日韩视频在线观看一区二区三区| 国产精品久久一卡二卡| 懂色av一区二区在线播放| 成人激情av网| 精品视频一区二区三区免费| 一区二区三区四区中文字幕| 欧美乱妇一区二区三区不卡视频| 日韩有码一区二区三区| 久久久久久久久久电影| 97久久超碰国产精品电影| 一区二区三区成人在线视频| 欧美在线999| 国产在线一区二区| 最新中文字幕一区二区三区 | 亚洲一区自拍偷拍| 欧美大片顶级少妇| 99久久精品免费| 黑人巨大精品欧美一区| 亚洲精品一二三| 久久免费看少妇高潮| 色综合色综合色综合| 蜜桃av一区二区| 亚洲三级在线观看| 日韩免费视频线观看| www.在线欧美| 久久国产婷婷国产香蕉| 日韩天堂在线观看| caoporen国产精品视频| 亚洲啪啪综合av一区二区三区| 色婷婷精品大在线视频| 美女视频黄免费的久久| 国产精品久久一级| 欧美喷水一区二区| 成人av午夜电影| 久久精品国产99| 国内精品国产三级国产a久久| 久久av老司机精品网站导航| 蜜臀精品久久久久久蜜臀| 蜜臀av亚洲一区中文字幕| 欧美激情综合在线| 5858s免费视频成人| 色婷婷亚洲精品| 风间由美一区二区三区在线观看 | 北岛玲一区二区三区四区| 麻豆精品视频在线观看| 亚洲激情av在线| 亚洲欧美一区二区三区久本道91 | 中文字幕亚洲成人| 久久精品网站免费观看| 久久综合久久鬼色| 久久久久久99精品| 国产片一区二区| 国产精品福利一区二区| 亚洲欧美激情在线| 亚洲大片一区二区三区| 日本欧美肥老太交大片| 国内外精品视频| 国产盗摄精品一区二区三区在线| 国产精品一区二区久久不卡| 国产精品一区二区不卡| 99久久婷婷国产综合精品| 一本色道久久加勒比精品 | 欧美久久久一区| 欧美xxxxxxxxx| 亚洲欧美区自拍先锋| 亚洲成人免费电影| 成人午夜激情视频| 久久毛片高清国产| 国产亚洲精品久| 日韩综合在线视频| 91啪九色porn原创视频在线观看| 日韩一区二区三区观看| 欧美一级欧美三级| 亚洲精品亚洲人成人网| 国产99久久久国产精品潘金网站| 欧美片在线播放| 一区二区三区国产精品| 成人免费毛片嘿嘿连载视频| 欧美日韩国产片| 在线不卡一区二区| 亚洲国产精品欧美一二99| 韩国成人精品a∨在线观看| 欧美日韩午夜在线| 亚洲另类在线一区|