Package: emacs;
Reported by: "Christopher J. White" <chris <at> grierwhite.com>
Date: Thu, 9 Feb 2012 04:55:02 UTC
Severity: normal
Found in version 23.3
Done: Andreas Schwab <schwab <at> linux-m68k.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Andreas Schwab <schwab <at> linux-m68k.org> Cc: tracker <at> debbugs.gnu.org Subject: bug#10768: closed (23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used) Date: Fri, 10 Feb 2012 11:49:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 10 Feb 2012 12:47:20 +0100 with message-id <m2fweioqpj.fsf <at> igel.home> and subject line Re: bug#10768: 23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used has caused the debbugs.gnu.org bug report #10768, regarding 23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 10768: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10768 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "Christopher J. White" <chris <at> grierwhite.com> To: bug-gnu-emacs <at> gnu.org Subject: 23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used Date: Wed, 8 Feb 2012 23:53:21 -0500I’m using url-http to retrieve an XML response. In noticed somewhat by chance that certain page sizes were cutting off the last few characters of the response, which in turn caused the XML to be poorly formed. I've noticed the issue occurs when the payload response has to be sent in two TCP packets and the last packet has 8 or fewer bytes. I observe this by looking at the HTTP stream in Wireshark. I spent time tracing the response by adding some debug using url-http-debug. The first chunk of data comes from the first TCP packet and includes the HTTP header and all the XML data minus the last 8 bytes. url-http-wait-for-headers-change-function is called to process this chunk of data. After processing this chunk, the connection is closed and the buffer of XML data returned minux the 8 bytes. Here's the http trace, along with my added debug messages (inlcuding dumping of the full data): ---------------------------------------- 22:06.781000 http -> Contacting host: api.toodledo.com:80 22:06.827000 http -> Marking connection as busy: api.toodledo.com:80 #<process api.toodledo.com<1>> 22:06.828000 http -> Request is: POST /2/tasks/get.php HTTP/1.1 MIME-Version: 1.0 Connection: keep-alive Extension: Security/Digest Security/SSL Host: api.toodledo.com Accept-charset: nil Accept: */* User-Agent: URL/Emacs (i386-mingw-nt6.1.7601; Windows-NT; 32bit) Content-Type: application/x-www-form-urlencoded Content-length: 212 f=xml&key=9f2a92de083e8d63c2bd14771661139f&unix=1&fields=status%2crepeat%2crepeatfrom%2ccontext%2cduedate%2cduetime%2cstartdate%2cstarttime%2cfolder%2cgoal%2cpriority%2cnote%2clength%2cparent&comp=%2d1&modafter=0 22:06.828000 retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer *http api.toodledo.com:80*<80>>) 22:06.889000 http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process api.toodledo.com<1>>' 22:06.889000 http -> data (point-max 1) (len 1380): "HTTP/1.1 200 OK Date: Thu, 09 Feb 2012 04:22:06 GMT Server: Apache/2.2.3 (Red Hat) Content-Length: 1189 Keep-Alive: timeout=2, max=100 Connection: Keep-Alive Content-Type: application/xml <?xml version=\"1.0\" encoding=\"UTF-8\"?><tasks num='3' total='3'><task><id>9105869</id><title>Test 1</title><modified>1328482938</modified><completed>1327924800</completed><folder>0</folder><context>0</context><goal>0</goal><priority>0</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>1328097600</duedate><startdate>0</startdate><duetime>1328137200</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></task><task><id>9108309</id><title>Test 2 -foobar</title><modified>1328761322</modified><completed>0</completed><folder>0</folder><context>0</context><goal>0</goal><priority>0</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>0</duedate><startdate>0</startdate><duetime>0</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></task><task><id>9149333</id><title>org-toodledo</title><modified>1328011949</modified><completed>0</completed><folder>0</folder><context>0</context><goal>0</goal><priority>2</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>0</duedate><startdate>0</startdate><duetime>0</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></task></" 22:06.889000 http -> url-http-wait-for-headers-change-function ( *http api.toodledo.com:80*<80>) 22:06.890000 http -> Saw end of headers... ( *http api.toodledo.com:80*<80>) @ 197 22:06.890000 http -> url-http-clean-headers, end-of-headers now at 189 22:06.890000 http -> url-http-parse-response called in ( *http api.toodledo.com:80*<80>) 22:06.890000 http -> Got a content-length 1189, being smart about document end. 22:06.890000 http -> Calling initial content-length for extra data at end of headers 22:06.890000 http -> url-http-content-length-after-change-function 189 1381 1192 22:06.891000 http -> End of document found! 22:06.891000 http -> Marking connection as free: api.toodledo.com:80 #<process api.toodledo.com<1>> 22:06.891000 http -> url-http-parse-headers called in ( *http api.toodledo.com:80*<80>) 22:06.891000 http -> url-http-parse-response called in ( *http api.toodledo.com:80*<80>) 22:06.891000 http -> Parsed HTTP headers: class=2 status=200 22:06.891000 http -> Finished parsing HTTP headers: t 22:06.891000 http -> Marking connection as free: api.toodledo.com:80 #<process api.toodledo.com<1>> 22:06.891000 http -> Activating callback in buffer ( *http api.toodledo.com:80*<80>) ---------------------------------------- Notice that the XML in the data finishes with "...</note></task></". It should finish with: "...</note></task></tasks>". A key debug message I added is "End of document found!", and this is placed in the function url-http-content-length-after-change-function right after the comment "Found the end of the document! Wheee!": (defun url-http-content-length-after-change-function (st nd length) <....> (if (> (- nd url-http-end-of-headers) url-http-content-length) (progn ;; Found the end of the document! Wheee! (url-http-debug "End of document found!") (url-display-percentage nil nil) (url-lazy-message "Reading... done.") (if (url-http-parse-headers) (url-http-activate-callback))))) If I slightly increase or decrease the amount of data returned by the XML (by adding or deleting characters from title), I can get it to work properly or not. For example, by adding 5 chars, I get: ---------------------------------------- 39:20.144000 http -> Finding free connection: api.toodledo.com:80 39:20.144000 http -> Contacting host: api.toodledo.com:80 39:20.187000 http -> Marking connection as busy: api.toodledo.com:80 #<process api.toodledo.com<1>> 39:20.188000 http -> Request is: POST /2/tasks/get.php HTTP/1.1 MIME-Version: 1.0 Connection: keep-alive Extension: Security/Digest Security/SSL Host: api.toodledo.com Accept-charset: nil Accept: */* User-Agent: URL/Emacs (i386-mingw-nt6.1.7601; Windows-NT; 32bit) Content-Type: application/x-www-form-urlencoded Content-length: 212 f=xml&key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&unix=1&fields=status%2crepeat%2crepeatfrom%2ccontext%2cduedate%2cduetime%2cstartdate%2cstarttime%2cfolder%2cgoal%2cpriority%2cnote%2clength%2cparent&comp=%2d1&modafter=0 39:20.188000 retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer *http api.toodledo.com:80*<86>>) 39:20.242000 http -> Calling after change function `url-http-wait-for-headers-change-function' for `#<process api.toodledo.com<1>>' 39:20.243000 http -> data (point-max 1) (len 1380): "HTTP/1.1 200 OK Date: Thu, 09 Feb 2012 04:39:20 GMT Server: Apache/2.2.3 (Red Hat) Content-Length: 1194 Keep-Alive: timeout=2, max=100 Connection: Keep-Alive Content-Type: application/xml <?xml version=\"1.0\" encoding=\"UTF-8\"?><tasks num='3' total='3'><task><id>9105869</id><title>Test 1</title><modified>1328482938</modified><completed>1327924800</completed><folder>0</folder><context>0</context><goal>0</goal><priority>0</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>1328097600</duedate><startdate>0</startdate><duetime>1328137200</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></task><task><id>9108309</id><title>Test 2 -foobar12345</title><modified>1328762353</modified><completed>0</completed><folder>0</folder><context>0</context><goal>0</goal><priority>0</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>0</duedate><startdate>0</startdate><duetime>0</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></task><task><id>9149333</id><title>org-toodledo</title><modified>1328011949</modified><completed>0</completed><folder>0</folder><context>0</context><goal>0</goal><priority>2</priority><repeat></repeat><repeatfrom>0</repeatfrom><duedate>0</duedate><startdate>0</startdate><duetime>0</duetime><starttime>0</starttime><length>0</length><status>2</status><note></note></ta" 39:20.243000 http -> url-http-wait-for-headers-change-function ( *http api.toodledo.com:80*<86>) 39:20.243000 http -> Saw end of headers... ( *http api.toodledo.com:80*<86>) @ 197 39:20.243000 http -> url-http-clean-headers, end-of-headers now at 189 39:20.243000 http -> url-http-parse-response called in ( *http api.toodledo.com:80*<86>) 39:20.243000 http -> Got a content-length 1194, being smart about document end. 39:20.243000 http -> Calling initial content-length for extra data at end of headers 39:20.243000 http -> url-http-content-length-after-change-function 189 1381 1192 39:20.244000 http -> Spinning waiting for headers... 39:20.244000 retrieval -> Spinning in url-retrieve-synchronously: nil (#<buffer *http api.toodledo.com:80*<86>>) 39:20.247000 http -> Calling after change function `url-http-content-length-after-change-function' for `#<process api.toodledo.com<1>>' 39:20.247000 http -> data (point-max 1373) (len 11): "sk></tasks>" 39:20.247000 http -> url-http-content-length-after-change-function 1373 1384 11 39:20.247000 http -> End of document found! 39:20.247000 http -> Marking connection as free: api.toodledo.com:80 #<process api.toodledo.com<1>> 39:20.247000 http -> url-http-parse-headers called in ( *http api.toodledo.com:80*<86>) 39:20.247000 http -> url-http-parse-response called in ( *http api.toodledo.com:80*<86>) 39:20.247000 http -> Parsed HTTP headers: class=2 status=200 39:20.248000 http -> Finished parsing HTTP headers: t 39:20.248000 http -> Marking connection as free: api.toodledo.com:80 #<process api.toodledo.com<1>> 39:20.248000 http -> Activating callback in buffer ( *http api.toodledo.com:80*<86>) ---------------------------------------- In this case, url-http waits for the remaining data from the second TCP packet, which comes in slightly later and is pieced together and forms a good XML document. If I reduce the size by an appropriate number of bytes so that the XML data fits entirely in the first packet it also works. I think the problem relates to url-http-clean-headers. I have 8-lines of headers, and this function removes the trailing \r from each of those lines. I think this is not accounted for when using the content-length to determine if all the data has been received. After dropping these 8 trailing \r charaters, the buffer positions all change. I'm not quite able to figure out how the content-length is used to detect the end of processing, so I thought I'd submit this bug and see if any other folks can point me in the right direction. ...cj In GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601) of 2011-03-10 on 3249CTO Windowing system distributor `Microsoft Corp.', version 6.1.7601 configured using `configure --with-gcc (4.5) --no-opt --cflags -Ic:/imagesupport/include' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: C.UTF-8 value of $XMODIFIERS: nil locale-coding-system: cp1252 default enable-multibyte-characters: t Major mode: Fundamental Minor modes in effect: show-paren-mode: t display-time-mode: t tooltip-mode: t mouse-wheel-mode: t global-font-lock-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: - - - - - - - - - - - - - - - - <return> <return> <switch-frame> <help-echo> <select-window> <backspace> <escape> C-x <select-window> <help-echo> C-/ C-/ C-/ C-/ SPC C-/ C-/ C-a <tab> <tab> C-x [ C-x ] C-x [ C-/ C-/ C-/ C-x [ C-SPC C-x ] C-w C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-a <tab> <S-tab> <tab> C-o s <help-echo> <switch-frame> C-SPC C-x ] <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down> C-w <up> <down> <switch-frame> <switch-frame> <down> <down> C-x 2 <prior> <prior> <down> <down> <down-mouse-1> <mouse-movement> <mouse-1> <C-left> C-s C-w C-w C-w C-w C-w C-w C-w <return> C-x o C-s C-s C-a <help-echo> C-a C-l C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n <down> <down> <down> <down> C-x o C-p C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-l C-n C-n C-l C-n C-n C-n C-n C-n C-l C-n C-n C-n C-n C-l C-x o C-n C-n C-n <select-window> <select-window> <select-window> <help-echo> <prior> <prior> <next> <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1> C-o s <select-window> <help-echo> <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1> C-x ] <prior> <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1> <down-mouse-1> <mouse-1> SPC <escape> C-x <select-window> <help-echo> <select-window> C-x o C-o s <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1> C-x ] C-r t a s k s C-r C-r C-r C-s C-a <next> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <escape> x r e p o <tab> r t SPC e m SPC SPC <return> Recent messages: Reading [application/xml ]... 1k of 1k (100%) Contacting host: api.toodledo.com:80 Reading [application/xml ]... 718 bytes of 717 bytes (100%) Sync complete, 794 changes: recv 3 mod 791 del Mark set Mark saved where search started Auto-saving...done Making completion list... Load-path shadows: ~cwhite/lib/lisp/org-toodledo/w3mexcerpt hides ~cwhite/lib/lisp/w3mexcerpt ~cwhite/lib/lisp/org-toodledo/http-post-simple hides ~cwhite/lib/lisp/http-post-simple ~/lib/lisp/org-mode/lisp/org hides c:/Users/cwhite/emacs-23.3/lisp/org/org ~/lib/lisp/org-mode/lisp/org-xoxo hides c:/Users/cwhite/emacs-23.3/lisp/org/org-xoxo ~/lib/lisp/org-mode/lisp/org-wl hides c:/Users/cwhite/emacs-23.3/lisp/org/org-wl ~/lib/lisp/org-mode/lisp/org-w3m hides c:/Users/cwhite/emacs-23.3/lisp/org/org-w3m ~/lib/lisp/org-mode/lisp/org-vm hides c:/Users/cwhite/emacs-23.3/lisp/org/org-vm ~/lib/lisp/org-mode/lisp/org-timer hides c:/Users/cwhite/emacs-23.3/lisp/org/org-timer ~/lib/lisp/org-mode/lisp/org-table hides c:/Users/cwhite/emacs-23.3/lisp/org/org-table ~/lib/lisp/org-mode/lisp/org-src hides c:/Users/cwhite/emacs-23.3/lisp/org/org-src ~/lib/lisp/org-mode/lisp/org-rmail hides c:/Users/cwhite/emacs-23.3/lisp/org/org-rmail ~/lib/lisp/org-mode/lisp/org-remember hides c:/Users/cwhite/emacs-23.3/lisp/org/org-remember ~/lib/lisp/org-mode/lisp/org-publish hides c:/Users/cwhite/emacs-23.3/lisp/org/org-publish ~/lib/lisp/org-mode/lisp/org-protocol hides c:/Users/cwhite/emacs-23.3/lisp/org/org-protocol ~/lib/lisp/org-mode/lisp/org-plot hides c:/Users/cwhite/emacs-23.3/lisp/org/org-plot ~/lib/lisp/org-mode/lisp/org-mouse hides c:/Users/cwhite/emacs-23.3/lisp/org/org-mouse ~/lib/lisp/org-mode/lisp/org-mobile hides c:/Users/cwhite/emacs-23.3/lisp/org/org-mobile ~/lib/lisp/org-mode/lisp/org-mhe hides c:/Users/cwhite/emacs-23.3/lisp/org/org-mhe ~/lib/lisp/org-mode/lisp/org-mew hides c:/Users/cwhite/emacs-23.3/lisp/org/org-mew ~/lib/lisp/org-mode/lisp/org-macs hides c:/Users/cwhite/emacs-23.3/lisp/org/org-macs ~/lib/lisp/org-mode/lisp/org-mac-message hides c:/Users/cwhite/emacs-23.3/lisp/org/org-mac-message ~/lib/lisp/org-mode/lisp/org-list hides c:/Users/cwhite/emacs-23.3/lisp/org/org-list ~/lib/lisp/org-mode/lisp/org-latex hides c:/Users/cwhite/emacs-23.3/lisp/org/org-latex ~/lib/lisp/org-mode/lisp/org-jsinfo hides c:/Users/cwhite/emacs-23.3/lisp/org/org-jsinfo ~/lib/lisp/org-mode/lisp/org-irc hides c:/Users/cwhite/emacs-23.3/lisp/org/org-irc ~/lib/lisp/org-mode/lisp/org-install hides c:/Users/cwhite/emacs-23.3/lisp/org/org-install ~/lib/lisp/org-mode/lisp/org-inlinetask hides c:/Users/cwhite/emacs-23.3/lisp/org/org-inlinetask ~/lib/lisp/org-mode/lisp/org-info hides c:/Users/cwhite/emacs-23.3/lisp/org/org-info ~/lib/lisp/org-mode/lisp/org-indent hides c:/Users/cwhite/emacs-23.3/lisp/org/org-indent ~/lib/lisp/org-mode/lisp/org-id hides c:/Users/cwhite/emacs-23.3/lisp/org/org-id ~/lib/lisp/org-mode/lisp/org-icalendar hides c:/Users/cwhite/emacs-23.3/lisp/org/org-icalendar ~/lib/lisp/org-mode/lisp/org-html hides c:/Users/cwhite/emacs-23.3/lisp/org/org-html ~/lib/lisp/org-mode/lisp/org-habit hides c:/Users/cwhite/emacs-23.3/lisp/org/org-habit ~/lib/lisp/org-mode/lisp/org-gnus hides c:/Users/cwhite/emacs-23.3/lisp/org/org-gnus ~/lib/lisp/org-mode/lisp/org-freemind hides c:/Users/cwhite/emacs-23.3/lisp/org/org-freemind ~/lib/lisp/org-mode/lisp/org-footnote hides c:/Users/cwhite/emacs-23.3/lisp/org/org-footnote ~/lib/lisp/org-mode/lisp/org-feed hides c:/Users/cwhite/emacs-23.3/lisp/org/org-feed ~/lib/lisp/org-mode/lisp/org-faces hides c:/Users/cwhite/emacs-23.3/lisp/org/org-faces ~/lib/lisp/org-mode/lisp/org-exp hides c:/Users/cwhite/emacs-23.3/lisp/org/org-exp ~/lib/lisp/org-mode/lisp/org-exp-blocks hides c:/Users/cwhite/emacs-23.3/lisp/org/org-exp-blocks ~/lib/lisp/org-mode/lisp/org-docbook hides c:/Users/cwhite/emacs-23.3/lisp/org/org-docbook ~/lib/lisp/org-mode/lisp/org-datetree hides c:/Users/cwhite/emacs-23.3/lisp/org/org-datetree ~/lib/lisp/org-mode/lisp/org-crypt hides c:/Users/cwhite/emacs-23.3/lisp/org/org-crypt ~/lib/lisp/org-mode/lisp/org-compat hides c:/Users/cwhite/emacs-23.3/lisp/org/org-compat ~/lib/lisp/org-mode/lisp/org-colview hides c:/Users/cwhite/emacs-23.3/lisp/org/org-colview ~/lib/lisp/org-mode/lisp/org-clock hides c:/Users/cwhite/emacs-23.3/lisp/org/org-clock ~/lib/lisp/org-mode/lisp/org-bibtex hides c:/Users/cwhite/emacs-23.3/lisp/org/org-bibtex ~/lib/lisp/org-mode/lisp/org-bbdb hides c:/Users/cwhite/emacs-23.3/lisp/org/org-bbdb ~/lib/lisp/org-mode/lisp/org-attach hides c:/Users/cwhite/emacs-23.3/lisp/org/org-attach ~/lib/lisp/org-mode/lisp/org-ascii hides c:/Users/cwhite/emacs-23.3/lisp/org/org-ascii ~/lib/lisp/org-mode/lisp/org-archive hides c:/Users/cwhite/emacs-23.3/lisp/org/org-archive ~/lib/lisp/org-mode/lisp/org-agenda hides c:/Users/cwhite/emacs-23.3/lisp/org/org-agenda Features: (shadow sort mail-extr message ecomplete rfc822 mml mml-sec password-cache mm-decode mm-bodies mm-encode mailabbrev nnheader gnus-util netrc gmm-utils mailheader canlock sha1 hex-util hashcash emacsbug sgml-mode cl-specs edebug find-func vc-git nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok browse-url cperl-mode url-cache org-colview diary-lib diary-loaddefs cal-iso org-table bookmark pp image-file mule-util grep sh-script executable tabify org-ascii help-mode view org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html format-spec org-exp ob-exp org-exp-blocks org-agenda org-info org-gnus org-docview org-bibtex bibtex org-bbdb multi-isearch newcomment org-toodledo http-post-simple url-http tls url-auth mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums url-gw url url-proxy url-privacy url-expand url-methods url-history url-cookie url-util url-parse url-vars mm-util mail-prsvr mailcap json xml w3mexcerpt remember org-remember org-datetree org ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys ob ob-eval org-pcomplete pcomplete org-list org-faces org-compat org-entities org-macs time-date noutline outline easy-mmode cal-menu calendar cal-loaddefs cygwin-mount ange-ftp uniquify filecache server byte-opt warnings advice help-fns advice-preload paren time etags python-mode info-look css-mode scr rsync twiki edmacro kmacro info doku pib php-mode speedbar sb-image ezimage dframe assoc highline pop3 mail-utils cl cl-19 cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs regexp-opt cus-edit easymenu cus-start cus-load wid-edit exec compile comint ring bytecomp byte-compile tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process multi-tty emacs)
[Message part 3 (message/rfc822, inline)]
From: Andreas Schwab <schwab <at> linux-m68k.org> To: "Christopher J. White" <chris <at> grierwhite.com> Cc: 10768-done <at> debbugs.gnu.org Subject: Re: bug#10768: 23.3; url-http misses data when last few bytes are in 2nd packet and content-length is used Date: Fri, 10 Feb 2012 12:47:20 +0100Thanks for testing, installed in trunk. Andreas. -- Andreas Schwab, schwab <at> linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.