Re: anyone working on WebDAV support for libwww?

>>>>> "Josh Watts" <jwatts@pretorynet.com>:

>> What do you do with the HTMethod enum in HTMethod.h?  Are you just
>> adding bits to the enum for the new methods in WebDAV?

>> I worry that we'll run out of bits with this scheme.  The basic
>> HTTP requires 10 bits.  The basic WebDAV protocol will add 7 more.

>> The extension DeltaV will add 11 more methods on top of that in
>> turn.

>> That's 28 bits so far, out of 32 possible.
>> 	<http://www.webdav.org/deltav/WWW10/deltav-intro.htm>

>> ...and what if we want DACL support, and what if... etc. etc.

>> Maybe we would want to replace the integer in question with some
>> bigger bitset mechanism?

> Good point. I'm not worried about adding methods to the HTMethod
> enumeration. The enumeration values are local as are the functions
> that operate on the enumeration. If we must, we can always redefine
> the values and modify the functions that return method names and
> method values. I think this is a much better solution than a bigger
> bitset mechanism.

I think we need some set-like properties, because I think things like
OPTIONS is using bitmask combinations of different enum values.  I may
be wrong though (hope I am :-) ).

>>> Anyways, I've successfully added most WebDAV methods save for a
>>> couple and now I'm running into a minor problem. Some of the
>>> WebDAV methods, i.e. PROPPATCH, require that a message body be
>>> sent with the HTTP request. It might look something like this:

>> [snip!]

[snip!  (messageBody added to _HTRequest]

> ... I've tested my app against Apache's WebDAV server and everything
> is working fine. As much as I wanted to use a POST-like operation to
> send the message body, it simply doesn't conform to the WebDAV RFC.

Or at least: libwww's handling of POST operations, simply doesn't fit
with WebDAV.

> That being said, there are some nitty gritty details that I want to
> discuss for the purpose of soon getting my modifications added to
> the base (probably be ready around the end of August). First, all of
> my modifications are only present if WEBDAV is defined during
> compilation.  If WebDAV isn't defined, the WebDAV functions I've
> added to HTAccess.c will return NO. I had to do this because the
> functions have to be present in order to be exported by the DLL and
> I'm not sure how to #ifdef a .def file.

Neither do I.  But having the functions there always doesn't sound bad
to me.

> This might be a Windows only problem since it's been a while since I
> built shared libraries in Unix.

It isn't a problem with ELF shared libraries (eg. Solaris, linux),
since they export all non-static symbols, but your would of course
have to recompile everything that links with libwww, if you recompile
libwww with a different #define.

> I currently have the MKCOL, COPY, MOVE, PROPPATCH, and PROPFIND
> methods implemented. I hope to have LOCK and UNLOCK implemented in
> the next two weeks.

Kewl.  Could I share your patches?

Received on Tuesday, 10 July 2001 03:11:44 UTC