It's the third day now I am trying to "fix" 164155, and 164019. It is not really fixing because the gnome-vfs http module acts totally standart conform. It's working around other peoples broken code. But first things first. While I was rewriting the http module for GNOME 2.8 I reached the conclusion that the webdav and/or http RFC could be better and more accurate on many places. Some of the real big problems are due to the fact the webdav is superset of HTTP/1.1 and tries to be downwards compatible to that. On some places it lacks even so basic things that calling it a network file system is more than megalomaniac.
But that's not the biggest problem if you wanna implement a http/webdav client. The real problems are totally borken servers and scripts:
- Some server just understand a small subset of HTTP e.g. the Google WS terminates connection on OPTIONS (that's already defined in HTTP/1.0)
- Icecast/Shoutcast servers start streaming on any request or respond with "ICY" instead if "HTTP"
- And now last but not least - my new personal enemies - kiddy script engines (yes e.g. php). You send a OPTIONS request - you get the page. You sent a PROPFIND request - you get the normal page. Hey dear script engine coders if you don't know how to deal with a request method just send a "Method not supported".
So I am going to commit a bunch a code tomorrow that tries to work aorund all that http/webdav weaknesses,all that broken servers and kiddie scripting engines. I really wonder why we have something like standarts at all if nobody cares and how this "internet thing" actually works with all that broken code out there :) Puh!. Yes I am feeling better now!