Subject: Re: bug#10768: 23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used

From: Andreas Schwab <[email-masked]>
Date: Thu, 09 Feb 2012 16:43:27 +0100

Does this help?

diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index b43ed76..140824f 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -352,11 +352,14 @@ request.")
 ;; Parsing routines
 (defun url-http-clean-headers ()
   "Remove trailing \r from header lines.
-This allows us to use `mail-fetch-field', etc."
+This allows us to use `mail-fetch-field', etc.
+Return the number of characters removed."
   (declare (special url-http-end-of-headers))
-  (goto-char (point-min))
-  (while (re-search-forward "\r$" url-http-end-of-headers t)
-    (replace-match "")))
+  (let ((end (marker-position url-http-end-of-headers)))
+    (goto-char (point-min))
+    (while (re-search-forward "\r$" url-http-end-of-headers t)
+      (replace-match ""))
+    (- end url-http-end-of-headers)))
 
 (defun url-http-handle-authentication (proxy)
   (declare (special status success url-http-method url-http-data
@@ -1051,7 +1054,7 @@ the end of the document."
 	  (setq url-http-end-of-headers (set-marker (make-marker)
 						    (point))
 		end-of-headers t)
-	  (url-http-clean-headers)))
+	  (setq nd (- nd (url-http-clean-headers))))
 
       (if (not end-of-headers)
 	  ;; Haven't seen the end of the headers yet, need to wait

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."