The server doesn't know what to do with a PROPFIND request. <br><br>After it goes through the sequence of dispatchers, it bottoms out. Perhaps this is not the best way of handling the error.<br><br>You can write your WebDAV as either
<br>a) A servlet<br><br>or<br><br>b) A dispatcher<br><br>Writing a servlet just requires changing the line you already found in request-parsing. I will look into making this easier.<br><br>Writing a dispatcher requires you to understand some undocumented features. But I can help you with this.
<br><br>I recommend prototyping in a servlet then turning it into a dispatcher or using a special continuation manager.<br><br><div><span class="gmail_quote">On 5/26/06, <b class="gmail_sendername">Vincent Kraeutler</b> <
<a href="mailto:vincent@igc.phys.chem.ethz.ch">vincent@igc.phys.chem.ethz.ch</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>I am currently dabbling with WebDAV and use this as an excuse<br>to try to get into lisp in general and DrScheme in particular.<br><br>I've started the web-server from within DrScheme like so<br><br>(require (lib "
web-server.ss" "web-server"))<br>(require (lib "configuration.ss" "web-server"))<br><br>(serve<br> (load-configuration<br> (string->path "/Applications/PLT Scheme v301/collects/web-server/configuration-table"
<br> )))<br><br>and worked my way through a bunch of example servlets,<br>and I have to say I'm really happy with how my newbie-mistakes<br>are nicely reported in the interactions window, so I can fix<br>them and move on. Congrats to those involved!
<br><br>Moving away from basic servlets, I seem to have hit a bit of a<br>wall. I'm trying to teach the web-server to react in some way to<br>WebDAV requests such as PROPFIND etc.<br><br>Initially, when interactively supplying
<br>PROPFIND / HTTP/1.1<br>or<br>PROPFIND /servlets/test.ss HTTP/1.1<br>via telnet, it would immediately close the connection. This I quickly<br>found out to be due to<br><br> (define METHOD:REGEXP<br> (byte-regexp #"^(GET|HEAD|POST|PUT|DELETE|TRACE) (.+) HTTP/([0-9]+)\\.([0-9]+)$"))
<br><br>in web-server/request-parsing.ss . Changing that to<br><br> (define METHOD:REGEXP<br> (byte-regexp #"^(GET|HEAD|POST|PUT|DELETE|TRACE|PROPFIND) (.+) HTTP/([0-9]+)\\.([0-9]+)$"))<br><br>it now seems to be doing something for a few seconds, followed by
<br>losing the connection. I was naively hoping to get a nice long error<br>message taking me a step further, but neither DrScheme nor the log<br>file report anything. Is it just running in circles until it hits a<br>timeout? Trying to backtrack the code, I have come as far as read-request
<br>(i.e. not very far ;-) ), at which point I'm losing the connection ;-).<br><br>Any useful pointers or ideas to make the system more talkative would be very<br>much appreciated. Also, before I spend too much time on this -- any
<br>judgement by those in the know on whether trying to marry the PLT<br>web-server with WebDAV is utter stupidity would also be very welcome.<br><br>Kind regards,<br>v.<br>_________________________________________________
<br> For list-related administrative tasks:<br> <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br></blockquote></div><br><br clear="all"><br>-- <br>
Jay McCarthy <<a href="mailto:jay@cs.brown.edu">jay@cs.brown.edu</a>><br><a href="http://jay.makeoutcity.com/">http://jay.makeoutcity.com/</a>