Return-Path: Delivered-To: apmail-apache-cvs-archive@apache.org Received: (qmail 66454 invoked by uid 500); 6 Oct 2000 12:49:23 -0000 Mailing-List: contact apache-cvs-help@apache.org; run by ezmlm Precedence: bulk Reply-To: new-httpd@apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list apache-cvs@apache.org Received: (qmail 66439 invoked by uid 500); 6 Oct 2000 12:49:22 -0000 Delivered-To: apmail-apache-2.0-cvs@apache.org Date: 6 Oct 2000 12:49:21 -0000 Message-ID: <20001006124921.66434.qmail@locus.apache.org> From: gstein@locus.apache.org To: apache-2.0-cvs@apache.org Subject: cvs commit: apache-2.0/src/modules/dav/main config.m4 mod_dav.c dav_opaquelock.h opaquelock.c gstein 00/10/06 05:49:21 Modified: src/modules/dav/fs lock.c src/modules/dav/main config.m4 mod_dav.c Removed: src/modules/dav/main dav_opaquelock.h opaquelock.c Log: *) convert fs/lock.c to use APR UUIDs for the opaque locktokens. *) blow away opaquelock.c and dav_opaquelock.h since direct use of APR UUIDs is quite easy. *) toss the uuid_state from the per-server config in mod_dav.c Revision Changes Path 1.9 +33 -36 apache-2.0/src/modules/dav/fs/lock.c Index: lock.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/dav/fs/lock.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- lock.c 2000/08/08 20:03:50 1.8 +++ lock.c 2000/10/06 12:49:20 1.9 @@ -60,9 +60,9 @@ #include "http_log.h" #include "apr_file_io.h" #include "apr_strings.h" +#include "apr_uuid.h" #include "mod_dav.h" -#include "dav_opaquelock.h" #include "repos.h" @@ -88,20 +88,20 @@ ** VALUE ** ** The value consists of a list of elements. -** DIRECT LOCK: [char (DAV_LOCK_DIRECT), -** char (dav_lock_scope), -** char (dav_lock_type), -** int depth, -** time_t expires, -** uuid_t locktoken, -** char[] owner, -** char[] auth_user] -** -** INDIRECT LOCK: [char (DAV_LOCK_INDIRECT), -** uuid_t locktoken, -** time_t expires, -** int key_size, -** char[] key] +** DIRECT LOCK: [char (DAV_LOCK_DIRECT), +** char (dav_lock_scope), +** char (dav_lock_type), +** int depth, +** time_t expires, +** apr_uuid_t locktoken, +** char[] owner, +** char[] auth_user] +** +** INDIRECT LOCK: [char (DAV_LOCK_INDIRECT), +** apr_uuid_t locktoken, +** time_t expires, +** int key_size, +** char[] key] ** The key is to the collection lock that resulted in this indirect lock */ @@ -128,8 +128,10 @@ ** Use the opaquelock scheme for locktokens */ struct dav_locktoken { - uuid_t uuid; + apr_uuid_t uuid; }; +#define dav_compare_locktoken(plt1, plt2) \ + memcmp(&(plt1)->uuid, &(plt2)->uuid, sizeof((plt1)->uuid)) /* ################################################################# @@ -181,13 +183,13 @@ ** prefix + Fixed length + lock token + 2 strings + 2 nulls (one for each string) */ #define dav_size_direct(a) (1 + sizeof(dav_lock_discovery_fixed) \ - + sizeof(uuid_t) \ + + sizeof(apr_uuid_t) \ + ((a)->owner ? strlen((a)->owner) : 0) \ + ((a)->auth_user ? strlen((a)->auth_user) : 0) \ + 2) /* Stored indirect lock info - lock token and dav_datum */ -#define dav_size_indirect(a) (1 + sizeof(uuid_t) \ +#define dav_size_indirect(a) (1 + sizeof(apr_uuid_t) \ + sizeof(time_t) \ + sizeof(int) + (a)->key.dsize) @@ -254,8 +256,7 @@ if (locktoken == NULL) { comb->pub.locktoken = &comb->token; - dav_create_opaquelocktoken(dav_get_uuid_state(lockdb->info->r), - &comb->token.uuid); + apr_get_uuid(&comb->token.uuid); } else { comb->pub.locktoken = locktoken; @@ -285,7 +286,7 @@ char_token += 16; locktoken = apr_pcalloc(p, sizeof(*locktoken)); - if (dav_parse_opaquelocktoken(char_token, &locktoken->uuid)) { + if (apr_parse_uuid(&locktoken->uuid, char_token)) { return dav_new_error(p, HTTP_BAD_REQUEST, DAV_ERR_LOCK_PARSE_TOKEN, "The opaquelocktoken has an incorrect format " "and could not be parsed."); @@ -304,8 +305,10 @@ apr_pool_t *p, const dav_locktoken *locktoken) { - const char *uuid_token = dav_format_opaquelocktoken(p, &locktoken->uuid); - return apr_pstrcat(p, "opaquelocktoken:", uuid_token, NULL); + char buf[APR_UUID_FORMATTED_LENGTH + 1]; + + apr_format_uuid(buf, &locktoken->uuid); + return apr_pstrcat(p, "opaquelocktoken:", buf, NULL); } /* @@ -317,7 +320,7 @@ const dav_locktoken *lt1, const dav_locktoken *lt2) { - return dav_compare_opaquelocktoken(lt1->uuid, lt2->uuid); + return dav_compare_locktoken(lt1, lt2); } /* @@ -746,8 +749,7 @@ } for (; dir != NULL; dir = dir->next) { - if (!dav_compare_opaquelocktoken(indirect->locktoken->uuid, - dir->locktoken->uuid)) { + if (!dav_compare_locktoken(indirect->locktoken, dir->locktoken)) { *direct = dir; return NULL; } @@ -1174,8 +1176,7 @@ } for (; dp != NULL; dp = dp->next) { - if (!dav_compare_opaquelocktoken(locktoken->uuid, - dp->locktoken->uuid)) { + 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; @@ -1189,8 +1190,7 @@ } for (; ip != NULL; ip = ip->next) { - if (!dav_compare_opaquelocktoken(locktoken->uuid, - ip->locktoken->uuid)) { + if (!dav_compare_locktoken(locktoken, ip->locktoken)) { *lock = dav_fs_alloc_lock(lockdb, ip->key, locktoken); (*lock)->is_locknull = !resource->exists; @@ -1356,8 +1356,7 @@ } for (dp = dh; dp != NULL; dp = dp->next) { - if (dav_compare_opaquelocktoken(locktoken->uuid, - dp->locktoken->uuid) == 0) { + if (dav_compare_locktoken(locktoken, dp->locktoken) == 0) { if (dprev) dprev->next = dp->next; else @@ -1367,8 +1366,7 @@ } for (ip = ih; ip != NULL; ip = ip->next) { - if (dav_compare_opaquelocktoken(locktoken->uuid, - ip->locktoken->uuid) == 0) { + if (dav_compare_locktoken(locktoken, ip->locktoken) == 0) { if (iprev) iprev->next = ip->next; else @@ -1413,8 +1411,7 @@ int dirty = 0; for (; ltl != NULL; ltl = ltl->next) { - if (dav_compare_opaquelocktoken(dp->locktoken->uuid, - ltl->locktoken->uuid) == 0) + if (dav_compare_locktoken(dp->locktoken, ltl->locktoken) == 0) { dp->f.timeout = new_time; dirty = 1; 1.11 +1 -1 apache-2.0/src/modules/dav/main/config.m4 Index: config.m4 =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/dav/main/config.m4,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- config.m4 2000/09/09 23:23:41 1.10 +++ config.m4 2000/10/06 12:49:20 1.11 @@ -2,7 +2,7 @@ APACHE_MODPATH_INIT(dav/main) -dav_objects="mod_dav.lo props.lo util.lo util_lock.lo opaquelock.lo liveprop.lo providers.lo" +dav_objects="mod_dav.lo props.lo util.lo util_lock.lo liveprop.lo providers.lo" APACHE_MODULE(dav, WebDAV protocol handling, $dav_objects, , no) 1.21 +5 -19 apache-2.0/src/modules/dav/main/mod_dav.c Index: mod_dav.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/dav/main/mod_dav.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- mod_dav.c 2000/09/09 23:23:41 1.20 +++ mod_dav.c 2000/10/06 12:49:21 1.21 @@ -92,9 +92,7 @@ #include "mod_dav.h" -#include "dav_opaquelock.h" - /* ### what is the best way to set this? */ #define DAV_DEFAULT_PROVIDER "filesystem" @@ -118,7 +116,7 @@ /* per-server configuration */ typedef struct { - uuid_state st; /* UUID state for opaquelocktoken */ + int unused; } dav_server_conf; @@ -143,24 +141,21 @@ newconf = (dav_server_conf *) apr_pcalloc(p, sizeof(*newconf)); - dav_create_uuid_state(&newconf->st); + /* ### this isn't used at the moment... */ return newconf; } static void *dav_merge_server_config(apr_pool_t *p, void *base, void *overrides) { +#if 0 dav_server_conf *child = overrides; +#endif dav_server_conf *newconf; newconf = (dav_server_conf *) apr_pcalloc(p, sizeof(*newconf)); - /* ### hmm. we should share the uuid state rather than copy it. if we - ### do another merge, then we'll just get the old one, rather than - ### an updated state. - ### of course... the UUID generation should move into APR - */ - memcpy(&newconf->st, &child->st, sizeof(newconf->st)); + /* ### nothing to merge right now... */ return newconf; } @@ -211,15 +206,6 @@ APR_OVERLAP_TABLES_SET); return newconf; -} - -uuid_state *dav_get_uuid_state(const request_rec *r) -{ - dav_server_conf *conf; - - conf = ap_get_module_config(r->server->module_config, &dav_module); - - return &conf->st; } apr_table_t *dav_get_dir_params(const request_rec *r)