Forum OpenACS Development: oacs-dav not working with NaviServer 4.99.8

Hi!

ns_register_proc of NS does not pass on arguments to the registered procs. This leads to an error in oacs_dav::handle_request that contains three required arguments (in oacs-dav 1.2.0 that was part of my OpenACS 5.9.0 checkout):

oacs_dav::handle_request { uri method args }

uri, method and args are overwritten anyway in the proc further below.

To reproduce try the tutorial folder page https://openacs.org/storage/index?folder_id=2855304 here on OpenACS. Below in the page it says:

This folder is available via WebDAV at https://openacs.org/dav/storage//pages/file-storage_3823/tutorial

After fixing the bug I can see the folders with "cadaver" (command-line WebDAV client), but I gett a "422 Unprocessable Entity" with WinSCP.

Cheers,
Frank

Collapse
Posted by Gustaf Neumann on
you are right, there is something broken - probably since many years. According to the AOLserver manual (see [1] example with noargs), also AOLserver does not pass arguments to a function registered without args. So, how could it ever work?

The relevant code is unchanged since 10 years.... It is as well not clear to me, where the 422 error code issued. It looks like a status code, but neither oacs-dav nor naviserver seem to generate it.

-g

[1] http://panoptic.com/wiki/aolserver/Ns_register_proc

Collapse
Posted by Frank Bergmann on
Hi Gustaf,

Is there any way to fix oacs-dav?

Sometimes these types of issues are resolved quite quickly, if the base functionality still works... However, I'm not an expert on the NaviServer side...

Cheers,
Frank

Collapse
Posted by Dave Bauer on
Frank,

I recommend porting the oacs-dav package to use tdav http://aolserver.cvs.sourceforge.net/viewvc/aolserver/tdav/ which has better client support. It has not been looked at in 12 years but maybe it will help?

Sorry I don't have any resources to look into a bug I know it has worked with some WebDAV clients a few years ago but I haven't used in quite a while.

Collapse
Posted by Gustaf Neumann on
The differences between ns_register_proc on AOLserver and NaviServer are well described on the man pages, there are several places in the OpenACS where both AOLserver and NaviServer are handled - so no one has to be a "NaviServer expert" (whatever this is).

However, when starting from a version that is already broken, then "getting WebDAV" to work is probably by far a larger project than it might look like at the first glance. If the WebDAV code was not touched since 10 years, it probably needs various more changes and a lot of testing to work well on today's OSes. Handling of WebDAV was traditionally quite different under windows as it was under Mac OS X or Linux. Such a project should be probably done by someone having Windows on his desktop.