Re: [PATCH] Fix mod_dav exports on Windows
Justin Erenkrantz wrote: --On Friday, February 25, 2005 10:35 PM +0100 "Branko ?ibej" <[EMAIL PROTECTED]> wrote: Ah! I'm afraid you seem to have failed. trying, anyway. This would probably work: env LANG=en_US.UTF-8 svn propedit --revprop -r??? svn:log https://svn.apache.org/repos/asf/httpd/httpd then paste in the name from Subversion's COMMITTERS file. That's exactly what I did with a UTF-8 editor (bbedit). I couldn't even commit unless I set the LANG variable. I'm fairly sure that the CHANGES entry (you mean, COMMITTERS) is wrong though. No, it's right. Point a browser at it, and you'll see :) Hmm. I just worked with Karl on trying to get it right as I wasn't even sure what the right character was. But, there's still something wonky going on. It's not all that important anyway. Just put a "C" there. -- Brane
Re: [PATCH] Fix mod_dav exports on Windows
--On Friday, February 25, 2005 10:35 PM +0100 "Branko ?ibej" <[EMAIL PROTECTED]> wrote: Ah! I'm afraid you seem to have failed. trying, anyway. This would probably work: env LANG=en_US.UTF-8 svn propedit --revprop -r??? svn:log https://svn.apache.org/repos/asf/httpd/httpd then paste in the name from Subversion's COMMITTERS file. That's exactly what I did with a UTF-8 editor (bbedit). I couldn't even commit unless I set the LANG variable. I'm fairly sure that the CHANGES entry is wrong though. Hmm. I just worked with Karl on trying to get it right as I wasn't even sure what the right character was. But, there's still something wonky going on. Anyhow, I've got a plane to catch... We'll get it right... -- justin
Re: [PATCH] Fix mod_dav exports on Windows
Justin Erenkrantz wrote: --On Wednesday, February 23, 2005 3:07 AM +0100 "Branko ?ibej" <[EMAIL PROTECTED]> wrote: A number of public functions in mod_dav.h aren't properly exported with DAV_DECLARE. This recently became a problem for Subversion, because mod_dav_svn now supports DAV locking, and mod_dav's locking functions were amongst the ones that were not exported. Nobody noticed this on Unix where DAV_DECLARE is a no-op, but Windows suffered mightily. The attached patch (against the 2.0.x branch) fixes the problem. I had to use DAV_DECLARE_NONSTD in a few places where the functions are used as callbacks, because I didn't want to fiddle with the __stdcall horror in callback parameter declarations. Subversion 1.2, which will introduce locking functionality, will not work as a DAV server on Windows without an httpd-2.0.x release that includes this patch. I hope such a thing is possible in the next few months, and I'm only sorry I was too late for the the 2.0.53 release. I've committed it to trunk and have proposed it for backport. -- justin Thanks! Sorry I didn't provide a patch for trunk; I'm swamped these days and simply hadn't got around to it. P.S. I had 'fun' trying to get your name in the commit log. I hope I got it right... =) Ah! I'm afraid you seem to have failed. trying, anyway. This would probably work: env LANG=en_US.UTF-8 svn propedit --revprop -r??? svn:log https://svn.apache.org/repos/asf/httpd/httpd then paste in the name from Subversion's COMMITTERS file. -- Brane
Re: [PATCH] Fix mod_dav exports on Windows
--On Wednesday, February 23, 2005 3:07 AM +0100 "Branko ?ibej" <[EMAIL PROTECTED]> wrote: A number of public functions in mod_dav.h aren't properly exported with DAV_DECLARE. This recently became a problem for Subversion, because mod_dav_svn now supports DAV locking, and mod_dav's locking functions were amongst the ones that were not exported. Nobody noticed this on Unix where DAV_DECLARE is a no-op, but Windows suffered mightily. The attached patch (against the 2.0.x branch) fixes the problem. I had to use DAV_DECLARE_NONSTD in a few places where the functions are used as callbacks, because I didn't want to fiddle with the __stdcall horror in callback parameter declarations. Subversion 1.2, which will introduce locking functionality, will not work as a DAV server on Windows without an httpd-2.0.x release that includes this patch. I hope such a thing is possible in the next few months, and I'm only sorry I was too late for the the 2.0.53 release. I've committed it to trunk and have proposed it for backport. -- justin P.S. I had 'fun' trying to get your name in the commit log. I hope I got it right... =)
Re: [PATCH] Fix mod_dav exports on Windows
--On Wednesday, February 23, 2005 8:46 AM -0600 Ben Collins-Sussman <[EMAIL PROTECTED]> wrote: The attached patch (against the 2.0.x branch) fixes the problem. Shouldn't this patch be applied to *both* the 2.0 and 2.2 httpd lines? Does that mean applying to httpd /trunk, then backporting to the 2.0 branch? Yes. We don't apply patches to 2.0 first. Everything must go through trunk first. -- justin
Re: [PATCH] Fix mod_dav exports on Windows
On Feb 22, 2005, at 8:07 PM, Branko Äibej wrote: The attached patch (against the 2.0.x branch) fixes the problem. Shouldn't this patch be applied to *both* the 2.0 and 2.2 httpd lines? Does that mean applying to httpd /trunk, then backporting to the 2.0 branch?
[PATCH] Fix mod_dav exports on Windows
A number of public functions in mod_dav.h aren't properly exported with DAV_DECLARE. This recently became a problem for Subversion, because mod_dav_svn now supports DAV locking, and mod_dav's locking functions were amongst the ones that were not exported. Nobody noticed this on Unix where DAV_DECLARE is a no-op, but Windows suffered mightily. The attached patch (against the 2.0.x branch) fixes the problem. I had to use DAV_DECLARE_NONSTD in a few places where the functions are used as callbacks, because I didn't want to fiddle with the __stdcall horror in callback parameter declarations. Subversion 1.2, which will introduce locking functionality, will not work as a DAV server on Windows without an httpd-2.0.x release that includes this patch. I hope such a thing is possible in the next few months, and I'm only sorry I was too late for the the 2.0.53 release. [[[ Correctly export all mod_dav public functions. * modules/dav/main/mod_dav.h: Wrap all public functions in DAV_DECLARE or DAV_DECLARE_NONSTD. * modules/dav/main/liveprop.c, modules/dav/main/props.c, modules/dav/main/util_lock.c, modules/dav/main/mod_dav.c, modules/dav/main/std_liveprop.c, modules/dav/main/util.c: Update function definitions. ]]] -- Brane Index: modules/dav/main/mod_dav.h === --- modules/dav/main/mod_dav.h (revision 154895) +++ modules/dav/main/mod_dav.h (working copy) @@ -464,8 +464,8 @@ } dav_lookup_result; -dav_lookup_result dav_lookup_uri(const char *uri, request_rec *r, - int must_be_absolute); +DAV_DECLARE(dav_lookup_result) dav_lookup_uri(const char *uri, request_rec *r, + int must_be_absolute); /* defines type of property info a provider is to return */ typedef enum { @@ -492,10 +492,12 @@ #define DAV_STYLE_RFC8222 #define DAV_TIMEBUF_SIZE30 -int dav_get_depth(request_rec *r, int def_depth); +DAV_DECLARE(int) dav_get_depth(request_rec *r, int def_depth); -int dav_validate_root(const apr_xml_doc *doc, const char *tagname); -apr_xml_elem *dav_find_child(const apr_xml_elem *elem, const char *tagname); +DAV_DECLARE(int) dav_validate_root(const apr_xml_doc *doc, + const char *tagname); +DAV_DECLARE(apr_xml_elem *) dav_find_child(const apr_xml_elem *elem, + const char *tagname); /* gather up all the CDATA into a single string */ DAV_DECLARE(const char *) dav_xml_get_cdata(const apr_xml_elem *elem, apr_pool_t *pool, @@ -631,15 +633,15 @@ (request_rec *r, const dav_resource *resource, dav_prop_insert what, apr_text_header *phdr)) -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); -const dav_hooks_binding *dav_get_binding_hooks(request_rec *r); -const dav_hooks_search *dav_get_search_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_locks *) dav_get_lock_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_propdb *) dav_get_propdb_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_vsn *) dav_get_vsn_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_binding *) dav_get_binding_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_search *) dav_get_search_hooks(request_rec *r); 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); +DAV_DECLARE(const dav_provider *) dav_lookup_provider(const char *name); /* ### deprecated */ @@ -712,7 +714,8 @@ struct dav_locktoken_list *next; } dav_locktoken_list; -dav_error * dav_get_locktoken_list(request_rec *r, dav_locktoken_list **ltl); +DAV_DECLARE(dav_error *) dav_get_locktoken_list(request_rec *r, +dav_locktoken_list **ltl); /* @@ -885,22 +888,27 @@ DAV_DECLARE(int) dav_get_liveprop_ns_index(const char *uri); /* ### docco */ -int dav_get_liveprop_ns_count(void); +DAV_DECLARE(int) dav_get_liveprop_ns_count(void); /* ### docco */ -void dav_add_all_liveprop_xmlns(apr_pool_t *p, apr_text_header *phdr); +DAV_DECLARE(void) dav_add_all_liveprop_xmlns(apr_pool_t *p, + apr_text_header *phdr); /* ** The following three functions are part of mod_dav's internal handling ** for the core WebDAV properties. They are not part of mod_dav's API. */ -int dav_core_find_liveprop(const dav_resource *resource, - const char *ns_uri, const char *name, - const dav_hooks_liveprop **hooks); -void dav_core_insert_all_liveprops(request_rec *r, - const dav