Oberon Community Platform Forum
November 22, 2019, 06:45:07 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: WebDAV Server  (Read 7075 times)
edgar
Moderator
Newbie
*****
Posts: 9


« on: March 25, 2008, 05:32:55 PM »

ObeDAV has many facets. One of them is a WebDAV Server which is in important parts different from a client.
The server aspect didn't see work from me for a while. Nevertheless we can discuss it here.
Even if my target for the next days is getting the client up and running on LinuxAos connecting to a SVN Server.

Cheers, Edgar
Logged
Alexey
Newbie
*
Posts: 27


« Reply #1 on: March 26, 2008, 10:40:08 AM »

Hi Edgar!

I tried to run your WebDAV server (with Patrick's changes) in WinAos. For testing I used trial version of WebDrive (win32) program which can mount a WebDAV host as a DAVFS drive. The program could not connect successfully. It blocked for some time and after showed message "Sokcet receive timeout waiting for response from server". I looked at WebDAVLog and it turned out that WebDrive blocked after "PROPFIND /" request. Below you can see client request and response from the server. Maybe "404 Not Found" in the response explains the connection failure...

///////////////////////////////////////////////////////////////

BEGIN HTTP-Request Header information (26.03.08 10:25:52 )
 HTTP request from 192.168.0.2 : 53316
Request: PROPFIND /
Host: 192.168.0.5
User-Agent: WebDrive 8.00.1942 DAV
Connection: Keep-Alive
Content-Length: 376
Translate: f
Depth: 0
Content-Type: text/xml
END HTTP-Request Header information


BEGIN HTTP-Reply Header information (26.03.08 10:25:52 )
Status Code:   207 Reason: Multi-Status
Server: Aos HTTP Server/0.3a
Date: Wed, 26 Mar 2008 10:25:22 GMT
Content-Length: -1
Transfer-Encoding: chunked
Connection: close
Content-Type: text/xml; charset="UTF-8"
END HTTP-Reply Header information


<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
   <D:multistatus xmlns:D="DAV:">
      <D:response>
         <D:href>/</D:href>
         <D:propstat>
            <D:prop>
               <D:creationdate/>
               <D:href/>
               <D:collection/>
               <D:isreadonly/>
               <D:lockdiscovery/>
               <srtns:srt_modifiedtime/>
               <srtns:srt_creationtime/>
               <srtns:srt_lastaccesstime/>
               <srtns:srt_proptimestamp/>
               <D:ishidden/>
            </D:prop>
            <D:status>HTTP/1.1 404 Not Found</D:status>
         </D:propstat>
         <D:propstat>
            <D:prop>
               <D:getlastmodified>Wed, 26 Mar 2008 09:33:02 GMT</D:getlastmodified>
               <D:displayname/>
               <D:getcontentlength>0</D:getcontentlength>
               <D:resourcetype>
                  <D:collection/>
               </D:resourcetype>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
         </D:propstat>
      </D:response>
   </D:multistatus>

///////////////////////////////////////////////////////////////

Also I tried to open server location as a web folder using Vista's "Add network location". It worked but I could not list directories.

Cheers,

Alexey
Logged
edgar
Moderator
Newbie
*****
Posts: 9


« Reply #2 on: March 26, 2008, 06:00:49 PM »

Hi Edgar!

BEGIN HTTP-Request Header information (26.03.08 10:25:52 )
 HTTP request from 192.168.0.2 : 53316
Request: PROPFIND /
Host: 192.168.0.5
User-Agent: WebDrive 8.00.1942 DAV
Connection: Keep-Alive
Content-Length: 376
Translate: f
Depth: 0
Content-Type: text/xml
END HTTP-Request Header information
There is a way to increase the logging level to also get the content of the request if necessary.

Quote

BEGIN HTTP-Reply Header information (26.03.08 10:25:52 )
Status Code:   207 Reason: Multi-Status
Server: Aos HTTP Server/0.3a
Date: Wed, 26 Mar 2008 10:25:22 GMT
Content-Length: -1
Transfer-Encoding: chunked
Connection: close
Content-Type: text/xml; charset="UTF-8"
END HTTP-Reply Header information


<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
   <D:multistatus xmlns:D="DAV:">
      <D:response>
         <D:href>/</D:href>
         <D:propstat>
            <D:status>HTTP/1.1 404 Not Found</D:status>
         </D:propstat>
So the request was received and it the server decided that nothing is in the directory.
Quote
         <D:propstat>
            <D:prop>
               <D:getlastmodified>Wed, 26 Mar 2008 09:33:02 GMT</D:getlastmodified>
               <D:displayname/>
               <D:getcontentlength>0</D:getcontentlength>
               <D:resourcetype>
                  <D:collection/>
               </D:resourcetype>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
         </D:propstat>
      </D:response>
   </D:multistatus>
Looks like response information for the directory itself.
Why the client locked I can't say. I need to have a look at the expected response for a directory listing in the current spec.
So I think it doesn't look that bad. The server understood the request and provided an answer. Something to build on  Grin

Cheers,

Edgar
Logged
edgar
Moderator
Newbie
*****
Posts: 9


« Reply #3 on: March 27, 2008, 07:39:05 AM »

Hi Alexej,
a thought on blocking:
- It looks like the client wants to keep the connection alive and my server closes it. But that's a http matter and no WebDAV problem. So the webserver people should be able to examine this.

Cheers, Edgar
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!