
On Tue, 06 Feb 2007 01:46:02 +0100, Edi Weitz <edi@agharta.de> wrote:
I've now done a full run through the test URLs you sent and they provide for a lot of interesting problematic cases. I'll update Drakma and probably Chunga with bugfixes and/or workarounds in the next days.
OK, see the new releases of Drakma and Chunga. I can now run Drakma (tested on LWW 5.0.1) through Chris Dean's 1600+ test cases with only very few warnings and errors. These are: 1. Charsets like GB2312 that FLEXI-STREAMS doesn't know. 2. Headers sent by the server which are really corrupt. 3. Network-related errors like "Unknown host". 4. Five cases of "End of file while reading ...". I'm only concerned about #4, but unfortunately these aren't reproducible. I'll see what I can find out, but if someone has an idea, please step forward. FWIW, this is the function I used for testing: (defun simple-get (url) (handler-case (let ((puri:*strict-parse* nil) (flex:*provide-use-value-restart* t) (flex:*substitution-char* #\?)) (multiple-value-bind (stream code) (drakma:http-request url :cookie-jar (make-instance 'drakma:cookie-jar) :want-stream t) (unwind-protect (and stream (eql code 200) (with-output-to-string (out) (do ((ch (read-char stream nil :eof) (read-char stream nil :eof))) ((not (characterp ch))) (princ ch out)))) (when stream (ignore-errors (close stream :abort t)))))) (error (condition) (format t "~&Error (~A): ~A~%%" url condition) nil))) Edi.