} 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)
{
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 */
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;
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);
}
/* 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)
}
/* ### 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;
{ NULL }
};
-module MODULE_VAR_EXPORT dav_module =
+module DAV_DECLARE_DATA dav_module =
{
STANDARD20_MODULE_STUFF,
dav_create_dir_config, /* dir config creater */
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));
#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
/* --------------------------------------------------------------------
**
** 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.
** <error_id> 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... */
#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 <extra_needed> 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);
/* --------------------------------------------------------------------
} 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"
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);
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,
} 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);
/* --------------------------------------------------------------------
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;
#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));
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));
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) {
}
}
-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 */
/* 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);
}
/* 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);
}
/* 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);
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); */
** 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) {