From 30cc622ccab85870953e68cd72f7ebbf43f7a9da Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Wed, 11 Oct 2000 17:23:55 +0000 Subject: [PATCH] Here it is, mod_dav should build quite nicely on Win32 (two last mild warnings to contend with.) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86542 13f79535-47bb-0310-9956-ffa450edef68 --- modules/dav/fs/mod_dav_fs.c | 4 +- modules/dav/main/liveprop.c | 5 ++- modules/dav/main/mod_dav.c | 30 ++++++------- modules/dav/main/mod_dav.h | 81 ++++++++++++++++++++++++------------ modules/dav/main/providers.c | 4 +- modules/dav/main/util.c | 30 ++++++++----- modules/dav/main/util_lock.c | 5 ++- 7 files changed, 100 insertions(+), 59 deletions(-) diff --git a/modules/dav/fs/mod_dav_fs.c b/modules/dav/fs/mod_dav_fs.c index c5c0423a3c..43750d0d93 100644 --- a/modules/dav/fs/mod_dav_fs.c +++ b/modules/dav/fs/mod_dav_fs.c @@ -64,7 +64,7 @@ typedef struct { } dav_fs_server_conf; -extern module MODULE_VAR_EXPORT dav_fs_module; +extern module MODULE_DECLARE_DATA dav_fs_module; const char *dav_get_lockdb_path(const request_rec *r) { @@ -130,7 +130,7 @@ static void register_hooks(void) dav_fs_register(NULL /* ### pconf */); } -module MODULE_VAR_EXPORT dav_fs_module = +module MODULE_DECLARE_DATA dav_fs_module = { STANDARD20_MODULE_STUFF, NULL, /* dir config creater */ diff --git a/modules/dav/main/liveprop.c b/modules/dav/main/liveprop.c index 2b3d599bda..5e083b7061 100644 --- a/modules/dav/main/liveprop.c +++ b/modules/dav/main/liveprop.c @@ -74,7 +74,8 @@ static apr_status_t dav_cleanup_liveprops(void *ctx) return APR_SUCCESS; } -void dav_register_liveprop_namespace(apr_pool_t *p, const char *uri) +DAV_DECLARE(void) dav_register_liveprop_namespace(apr_pool_t *p, + const char *uri) { int value; @@ -96,7 +97,7 @@ void dav_register_liveprop_namespace(apr_pool_t *p, const char *uri) apr_hash_set(dav_liveprop_uris, uri, 0, (void *)++dav_liveprop_count); } -int dav_get_liveprop_ns_index(const char *uri) +DAV_DECLARE(int) dav_get_liveprop_ns_index(const char *uri) { return (int)apr_hash_get(dav_liveprop_uris, uri, 0); } diff --git a/modules/dav/main/mod_dav.c b/modules/dav/main/mod_dav.c index d923dacc7c..02cd81d93a 100644 --- a/modules/dav/main/mod_dav.c +++ b/modules/dav/main/mod_dav.c @@ -125,7 +125,7 @@ typedef struct { /* forward-declare for use in configuration lookup */ -extern module MODULE_VAR_EXPORT dav_module; +extern module DAV_DECLARE_DATA dav_module; static void dav_init_handler(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) @@ -1172,8 +1172,8 @@ static int dav_method_put(request_rec *r) } /* ### move this to dav_util? */ -void dav_add_response(dav_walker_ctx *ctx, const char *href, int status, - dav_get_props_result *propstats) +DAV_DECLARE(void) dav_add_response(dav_walker_ctx *ctx, const char *href, + int status, dav_get_props_result *propstats) { dav_response *resp; @@ -3259,7 +3259,7 @@ static const handler_rec dav_handlers[] = { NULL } }; -module MODULE_VAR_EXPORT dav_module = +module DAV_DECLARE_DATA dav_module = { STANDARD20_MODULE_STUFF, dav_create_dir_config, /* dir config creater */ @@ -3276,13 +3276,15 @@ AP_HOOK_STRUCT( AP_HOOK_LINK(find_liveprop) AP_HOOK_LINK(insert_all_liveprops) ) -AP_IMPLEMENT_HOOK_VOID(gather_propsets, (apr_array_header_t *uris), (uris)) -AP_IMPLEMENT_HOOK_RUN_FIRST(int, find_liveprop, - (request_rec *r, - const char *ns_uri, const char *name, - const dav_hooks_liveprop **hooks), - (r, ns_uri, name, hooks), 0); -AP_IMPLEMENT_HOOK_VOID(insert_all_liveprops, - (request_rec *r, const dav_resource *resource, - int insvalue, ap_text_header *phdr), - (r, resource, insvalue, phdr)); +AP_IMPLEMENT_EXTERNAL_HOOK_VOID(DAV, gather_propsets, + (apr_array_header_t *uris), + (uris)) +AP_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(DAV, int, find_liveprop, + (request_rec *r, const char *ns_uri, + const char *name, + const dav_hooks_liveprop **hooks), + (r, ns_uri, name, hooks), 0); +AP_IMPLEMENT_EXTERNAL_HOOK_VOID(DAV, insert_all_liveprops, + (request_rec *r, const dav_resource *resource, + int insvalue, ap_text_header *phdr), + (r, resource, insvalue, phdr)); diff --git a/modules/dav/main/mod_dav.h b/modules/dav/main/mod_dav.h index 4ff1bb9062..ea65bd5cc8 100644 --- a/modules/dav/main/mod_dav.h +++ b/modules/dav/main/mod_dav.h @@ -105,6 +105,26 @@ extern "C" { #define DAV_INFINITY INT_MAX /* for the Depth: header */ +/* Create a set of DAV_DECLARE(type), DAV_DECLARE_NONSTD(type) and + * DAV_DECLARE_DATA with appropriate export and import tags for the platform + */ +#if !defined(WIN32) +#define DAV_DECLARE(type) type +#define DAV_DECLARE_NONSTD(type) type +#define DAV_DECLARE_DATA +#elif defined(DAV_DECLARE_STATIC) +#define DAV_DECLARE(type) type __stdcall +#define DAV_DECLARE_NONSTD(type) type +#define DAV_DECLARE_DATA +#elif defined(DAV_DECLARE_EXPORT) +#define DAV_DECLARE(type) __declspec(dllexport) type __stdcall +#define DAV_DECLARE_NONSTD(type) __declspec(dllexport) type +#define DAV_DECLARE_DATA __declspec(dllexport) +#else +#define DAV_DECLARE(type) __declspec(dllimport) type __stdcall +#define DAV_DECLARE_NONSTD(type) __declspec(dllimport) type +#define DAV_DECLARE_DATA __declspec(dllimport) +#endif /* -------------------------------------------------------------------- ** @@ -146,7 +166,8 @@ typedef struct dav_error { ** Create a new error structure. save_errno will be filled with the current ** errno value. */ -dav_error *dav_new_error(apr_pool_t *p, int status, int error_id, const char *desc); +DAV_DECLARE(dav_error*) dav_new_error(apr_pool_t *p, int status, + int error_id, const char *desc); /* ** Push a new error description onto the stack of errors. @@ -161,8 +182,8 @@ dav_error *dav_new_error(apr_pool_t *p, int status, int error_id, const char *de ** can specify a new error_id since the topmost description has ** changed. */ -dav_error *dav_push_error(apr_pool_t *p, int status, int error_id, const char *desc, - dav_error *prev); +DAV_DECLARE(dav_error*) dav_push_error(apr_pool_t *p, int status, int error_id, + const char *desc, dav_error *prev); /* error ID values... */ @@ -339,23 +360,29 @@ typedef struct #define DAV_BUFFER_PAD 64 /* amount of pad when growing */ /* set the cur_len to the given size and ensure space is available */ -void dav_set_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t size); +DAV_DECLARE(void) dav_set_bufsize(apr_pool_t *p, dav_buffer *pbuf, + apr_size_t size); /* initialize a buffer and copy the specified (null-term'd) string into it */ -void dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, const char *str); +DAV_DECLARE(void) dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, + const char *str); /* check that the buffer can accomodate more bytes */ -void dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf, apr_size_t extra_needed); +DAV_DECLARE(void) dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf, + apr_size_t extra_needed); /* append a string to the end of the buffer, adjust length */ -void dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, const char *str); +DAV_DECLARE(void) dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, + const char *str); /* place a string on the end of the buffer, do NOT adjust length */ -void dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, const char *str); +DAV_DECLARE(void) dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, + const char *str); /* place some memory on the end of a buffer; do NOT adjust length */ -void dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, const void *mem, - apr_size_t amt, apr_size_t pad); +DAV_DECLARE(void) dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, + const void *mem, apr_size_t amt, + apr_size_t pad); /* -------------------------------------------------------------------- @@ -432,14 +459,14 @@ typedef struct { } dav_provider; -AP_DECLARE_HOOK(void, gather_propsets, (apr_array_header_t *uris)) -AP_DECLARE_HOOK(int, find_liveprop, (request_rec *r, - const char *ns_uri, const char *name, - const dav_hooks_liveprop **hooks)) -AP_DECLARE_HOOK(void, insert_all_liveprops, (request_rec *r, - const dav_resource *resource, - int insvalue, - ap_text_header *phdr)) +AP_DECLARE_EXTERNAL_HOOK(DAV, void, gather_propsets, + (apr_array_header_t *uris)) +AP_DECLARE_EXTERNAL_HOOK(DAV, int, find_liveprop, + (request_rec *r, const char *ns_uri, const char *name, + const dav_hooks_liveprop **hooks)) +AP_DECLARE_EXTERNAL_HOOK(DAV, void, insert_all_liveprops, + (request_rec *r, const dav_resource *resource, + int insvalue, ap_text_header *phdr)) /* ### make this internal to mod_dav.c ? */ #define DAV_KEY_RESOURCE "dav-resource" @@ -448,12 +475,13 @@ const dav_hooks_locks *dav_get_lock_hooks(request_rec *r); const dav_hooks_propdb *dav_get_propdb_hooks(request_rec *r); const dav_hooks_vsn *dav_get_vsn_hooks(request_rec *r); -void dav_register_provider(apr_pool_t *p, const char *name, - const dav_provider *hooks); +DAV_DECLARE(void) dav_register_provider(apr_pool_t *p, const char *name, + const dav_provider *hooks); const dav_provider * dav_lookup_provider(const char *name); -void dav_register_liveprop_namespace(apr_pool_t *pool, const char *uri); -int dav_get_liveprop_ns_index(const char *uri); +DAV_DECLARE(void) dav_register_liveprop_namespace(apr_pool_t *pool, + const char *uri); +DAV_DECLARE(int) dav_get_liveprop_ns_index(const char *uri); int dav_get_liveprop_ns_count(void); void dav_add_all_liveprop_xmlns(apr_pool_t *p, ap_text_header *phdr); @@ -865,8 +893,9 @@ dav_error * dav_notify_created(request_rec *r, int resource_state, int depth); -dav_error * dav_lock_query(dav_lockdb *lockdb, const dav_resource *resource, - dav_lock **locks); +DAV_DECLARE(dav_error*) dav_lock_query(dav_lockdb *lockdb, + const dav_resource *resource, + dav_lock **locks); dav_error * dav_validate_request(request_rec *r, dav_resource *resource, int depth, dav_locktoken *locktoken, @@ -1248,8 +1277,8 @@ typedef struct dav_walker_ctx } dav_walker_ctx; -void dav_add_response(dav_walker_ctx *ctx, const char *href, int status, - dav_get_props_result *propstats); +DAV_DECLARE(void) dav_add_response(dav_walker_ctx *ctx, const char *href, + int status, dav_get_props_result *propstats); /* -------------------------------------------------------------------- diff --git a/modules/dav/main/providers.c b/modules/dav/main/providers.c index 337fb71793..2fa704e51d 100644 --- a/modules/dav/main/providers.c +++ b/modules/dav/main/providers.c @@ -69,8 +69,8 @@ static apr_status_t dav_cleanup_providers(void *ctx) return APR_SUCCESS; } -void dav_register_provider(apr_pool_t *p, const char *name, - const dav_provider *provider) +DAV_DECLARE(void) dav_register_provider(apr_pool_t *p, const char *name, + const dav_provider *provider) { /* ### ignore the pool; it is NULL right now */ p = ap_global_hook_pool; diff --git a/modules/dav/main/util.c b/modules/dav/main/util.c index ee56c7684c..4ea01abfc9 100644 --- a/modules/dav/main/util.c +++ b/modules/dav/main/util.c @@ -67,7 +67,8 @@ #include "apr_strings.h" -dav_error *dav_new_error(apr_pool_t *p, int status, int error_id, const char *desc) +DAV_DECLARE(dav_error*) dav_new_error(apr_pool_t *p, int status, + int error_id, const char *desc) { int save_errno = errno; dav_error *err = apr_pcalloc(p, sizeof(*err)); @@ -82,8 +83,9 @@ dav_error *dav_new_error(apr_pool_t *p, int status, int error_id, const char *de return err; } -dav_error *dav_push_error(apr_pool_t *p, int status, int error_id, const char *desc, - dav_error *prev) +DAV_DECLARE(dav_error*) dav_push_error(apr_pool_t *p, int status, + int error_id, const char *desc, + dav_error *prev) { dav_error *err = apr_pcalloc(p, sizeof(*err)); @@ -95,7 +97,8 @@ dav_error *dav_push_error(apr_pool_t *p, int status, int error_id, const char *d return err; } -void dav_check_bufsize(apr_pool_t * p, dav_buffer *pbuf, size_t extra_needed) +DAV_DECLARE(void) dav_check_bufsize(apr_pool_t * p, dav_buffer *pbuf, + apr_size_t extra_needed) { /* grow the buffer if necessary */ if (pbuf->cur_len + extra_needed > pbuf->alloc_len) { @@ -108,7 +111,8 @@ void dav_check_bufsize(apr_pool_t * p, dav_buffer *pbuf, size_t extra_needed) } } -void dav_set_bufsize(apr_pool_t * p, dav_buffer *pbuf, size_t size) +DAV_DECLARE(void) dav_set_bufsize(apr_pool_t * p, dav_buffer *pbuf, + apr_size_t size) { /* NOTE: this does not retain prior contents */ @@ -129,14 +133,16 @@ void dav_set_bufsize(apr_pool_t * p, dav_buffer *pbuf, size_t size) /* initialize a buffer and copy the specified (null-term'd) string into it */ -void dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, const char *str) +DAV_DECLARE(void) dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, + const char *str) { dav_set_bufsize(p, pbuf, strlen(str)); memcpy(pbuf->buf, str, pbuf->cur_len + 1); } /* append a string to the end of the buffer, adjust length */ -void dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, const char *str) +DAV_DECLARE(void) dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, + const char *str) { size_t len = strlen(str); @@ -146,7 +152,8 @@ void dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, const char *str) } /* place a string on the end of the buffer, do NOT adjust length */ -void dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, const char *str) +DAV_DECLARE(void) dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, + const char *str) { size_t len = strlen(str); @@ -155,8 +162,9 @@ void dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, const char *str) } /* place some memory on the end of a buffer; do NOT adjust length */ -void dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, const void *mem, - size_t amt, size_t pad) +DAV_DECLARE(void) dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, + const void *mem, apr_size_t amt, + apr_size_t pad) { dav_check_bufsize(p, pbuf, amt + pad); memcpy(pbuf->buf + pbuf->cur_len, mem, amt); @@ -654,7 +662,7 @@ static dav_error * dav_validate_resource_state(apr_pool_t *p, int num_matched; int num_that_apply; int seen_locktoken; - size_t uri_len; + apr_size_t uri_len; const char *reason = NULL; /* DBG1("validate: <%s>", resource->uri); */ diff --git a/modules/dav/main/util_lock.c b/modules/dav/main/util_lock.c index 571e423b30..bdc1ab66c1 100644 --- a/modules/dav/main/util_lock.c +++ b/modules/dav/main/util_lock.c @@ -388,8 +388,9 @@ dav_error * dav_add_lock(request_rec *r, const dav_resource *resource, ** dav_lock_query: Opens the lock database. Returns a linked list of ** dav_lock structures for all direct locks on path. */ -dav_error * dav_lock_query(dav_lockdb *lockdb, const dav_resource *resource, - dav_lock **locks) +DAV_DECLARE(dav_error*) dav_lock_query(dav_lockdb *lockdb, + const dav_resource *resource, + dav_lock **locks) { /* If no lock database, return empty result */ if (lockdb == NULL) { -- 2.50.1