webDAV "put" bug

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

webDAV "put" bug

bzh b
Hi,

 I already have annoyed a few people (mainly icewind, though) in the irc
channel about a bug I have:
If I connect to my owncloud server through webdav, and try to create or
upload
some file, I get an error :
 "the file or folder [myip] doesn't exists"
(with [myip] being the ip of the server)
With cadaver, trying to upload a file:
dav:/owncloud/webdav/owncloud.php/> put temp.ml
Uploading temp.ml to `/owncloud/webdav/owncloud.php/temp.ml':
Progress: [=============================>] 100,0% of 21 bytes failed:
501 Not Implemented

This is my config (but apparently it happens also with apache or php4):
Debian armel / lighttpd / php5 / mysql

I tested my webdav install (lighttpd-mod-webdav package) using litmus
testsuite. Here is the result:
 For http://[myip]/owncloud/webdav/owncloud.php:
> -> running `basic':
>  0. init.................. pass
>  1. begin................. pass
>  2. options............... pass
>  3. put_get............... FAIL (PUT of
`/owncloud/webdav/owncloud.php/litmus/res' failed: 501 Not Implemented)
>  4. put_get_utf8_segment.. FAIL (PUT of
`/owncloud/webdav/owncloud.php/litmus/res-%e2%82%ac' failed: 501 Not
Implemented)

>  5. put_no_parent......... pass
>  6. mkcol_over_plain...... SKIPPED
>  7. delete................ SKIPPED
>  8. delete_null........... pass
>  9. delete_fragment....... pass
> 10. mkcol................. pass
> 11. mkcol_again........... pass
> 12. delete_coll........... pass
> 13. mkcol_no_parent....... pass
> 14. mkcol_with_body....... pass
> 15. finish................ pass
> -> 2 tests were skipped.
> <- summary for `basic': of 14 tests run: 12 passed, 2 failed. 85.7%

I guess the "put_get: FAIL" is the reason why I can't create a file through
webdav.

 But for http://[myip]/testwebdav (this a virtual host with webdav enabled
on
the same server):

> -> running `basic':
>  0. init.................. pass
>  1. begin................. pass
>  2. options............... pass
>  3. put_get............... pass
>  4. put_get_utf8_segment.. pass
>  5. put_no_parent......... pass
>  6. mkcol_over_plain...... pass
>  7. delete................ pass
>  8. delete_null........... pass
>  9. delete_fragment....... WARNING: DELETE removed collection resource
with
Request-URI including fragment; unsafe

>     ...................... pass (with 1 warning)
> 10. mkcol................. pass
> 11. mkcol_again........... pass
> 12. delete_coll........... pass
> 13. mkcol_no_parent....... pass
> 14. mkcol_with_body....... pass
> 15. finish................ pass
> <- summary for `basic': of 16 tests run: 16 passed, 0 failed. 100.0%
> -> 1 warning was issued.
> -> running `copymove':
>  0. init.................. pass
>  1. begin................. pass
>  2. copy_init............. pass
>  3. copy_simple........... FAIL (simple resource COPY:
> 409 Conflict)
>  4. copy_overwrite........ WARNING: COPY-on-existing fails with 412
>     ...................... FAIL (COPY-on-existing with 'Overwrite: T'
should
succeed (RFC2518:S8.8.4): 409 Conflict)
>  5. copy_nodestcoll....... pass
>  6. copy_cleanup.......... pass
>  7. copy_coll............. FAIL (collection COPY `/webdav/litmus/ccsrc/'
to
`/webdav/litmus/ccdest/': 403 Forbidden)
>  8. copy_shallow.......... FAIL (MKCOL on `/webdav/litmus/ccsrc/': 405
Method Not Allowed)
>  9. move.................. FAIL (MOVE `/webdav/litmus/move' to
`/webdav/litmus/movedest': 409 Conflict)
> 10. move_coll............. FAIL (collection COPY `/webdav/litmus/mvsrc/'
to
`/webdav/litmus/mvdest2/', depth infinity: 403 Forbidden)
> 11. move_cleanup.......... pass
> 12. finish................ pass
> <- summary for `copymove': of 13 tests run: 7 passed, 6 failed. 53.8%

So it shows that all the basics WebDAV fonctions are working on my server,
if
I'm using it independently from Owncloud. Hence the bugs comes from how
Owncloud interacts with WebDAV... (= HTTP_WebDAV_Server ?)


************
Also I tryed to understand a bit how webDAV on Owncloud is working.
Apparently
Owncloud uses this php interface for webDAV :
http://pear.php.net/package/HTTP_WebDAV_Server/
It is in RC since 2005 and didn't move since 2006.
Also the website says this code is not maintained anymore, and that this
project does depends on PHP 4.4 ...

Maybe an alternative may be this:
http://www.ezcomponents.org/docs/api/trunk/introduction_Webdav.html
It is New BSD -licenced and apparently actively developped. I didn't looked
that much into it .
(Also it becomes an Apache Foundation project 2 days ago :
http://share.ez.no/blogs/ez/goodbye-ez-components-welcome-zeta-components)


bzhb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/owncloud/attachments/20100421/7f0ddfc3/attachment.html 

Reply | Threaded
Open this post in threaded view
|

webDAV "put" bug

bzh b
Hi,

I have some updates:
- About HTTP WebDAV Server : apparently it is not as dead as the official
website is claiming, but PEAR package is not up-to-date. An easy way to
update to the latest version from SVN is to run the small script in
attachement in owncloud/inc/ repository. It is an incomplete and ugly
solution though since my script doesn't update the file
inc/HTTP/WebDAV/Server/Filesystem.php. So I also join this  a  modified
Filesystem.php  that is working for me (but I'm really not sure of my
modifications).

(Also my modifications will be available in
git at gitorious.org:~bzhbok/owncloud/bzhboks-owncloud.git
hopefully soon - if I don't mess up with git)

 With this new version I was able to run litmus test suite quite
succesfully:
make -k URL=http://[myip]/owncloud/webdav/owncloud.php CREDS="[login]
[passwd]" check
-> running `basic':
 0. init.................. pass
 1. begin................. pass
 2. options............... pass
 3. put_get............... pass
 4. put_get_utf8_segment.. pass
 5. put_no_parent......... pass
 6. mkcol_over_plain...... pass
 7. delete................ pass
 8. delete_null........... pass
 9. delete_fragment....... pass
10. mkcol................. pass
11. mkcol_again........... pass
12. delete_coll........... pass
13. mkcol_no_parent....... pass
14. mkcol_with_body....... pass
15. finish................ pass
<- summary for `basic': of 16 tests run: 16 passed, 0 failed. 100.0%
-> running `copymove':
 0. init.................. pass
 1. begin................. pass
 2. copy_init............. pass
 3. copy_simple........... pass
 4. copy_overwrite........ FAIL (COPY overwrites collection: 409 Conflict)
 5. copy_nodestcoll....... pass
 6. copy_cleanup.......... pass
 7. copy_coll............. pass
 8. copy_shallow.......... pass
 9. move.................. pass
10. move_coll............. pass
11. move_cleanup.......... pass
12. finish................ pass
<- summary for `copymove': of 13 tests run: 12 passed, 1 failed. 92.3%



This is good news but apparently it doesn't solve the bug with dolphin or
konqueror BUT it is working allright with cadaver...

Also There is a bug when trying to remove a "folder" (collection) with a
space character in dolphin or konqueror : for example if I ask to remove
"New Folder", it will try to remove "New" and "Folder"...

Last question: shall we make bug reports on bugs.kde.org ?


bzhbok
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/owncloud/attachments/20100421/eb1c4cfd/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: HTTPWebDAVServerFromSvn.sh
Type: application/x-sh
Size: 778 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/owncloud/attachments/20100421/eb1c4cfd/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Filesystem.php
Type: application/x-php
Size: 28730 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/owncloud/attachments/20100421/eb1c4cfd/attachment-0001.php