Shmulik Regev:
authorDaniel Stenberg <daniel@haxx.se>
Tue, 10 Jul 2007 22:45:01 +0000 (22:45 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 10 Jul 2007 22:45:01 +0000 (22:45 +0000)
The tiny patch below fixes a bug (that I introduced :) which happens
when negotiating authentication with a proxy (probably with web
servers as well) that uses chunked transfer encoding for the 407 error
pages. In this case the ''ignorebody'' flag was ignored (no pun
intended).

CHANGES
RELEASE-NOTES
lib/http_chunks.c

diff --git a/CHANGES b/CHANGES
index 0f0b391..acbd88a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,9 @@
                                   Changelog
 
 Daniel S (11 July 2007)
+- Shmulik Regev fixed a bug with transfer-encoding skipping during the 407
+  error pages for proxy authentication.
+
 - Giancarlo Formicuccia reported and fixed a problem with a closed connection
   to a proxy during CONNECT auth negotiation.
 
index feffdbf..43bf843 100644 (file)
@@ -15,8 +15,9 @@ This release includes the following changes:
 
 This release includes the following bugfixes:
 
- o Test cases 31, 46, 61, 506, 517 now work in time zones that use leap seconds
+ o test cases 31, 46, 61, 506, 517 now work in time zones that use leap seconds
  o problem with closed proxy connection during HTTP CONNECT auth negotiation
+ o transfer-encoding skipping didn't ignore the 407 response bodies properly
 
 This release includes the following known bugs:
 
@@ -33,6 +34,6 @@ New curl mirrors:
 This release would not have looked like this without help, code, reports and
 advice from friends like these:
 
-  Dan Fandrich, Song Ma, Daniel Black, Giancarlo Formicuccia
+ Dan Fandrich, Song Ma, Daniel Black, Giancarlo Formicuccia, Shmulik Regev
  
         Thanks! (and sorry if I forgot to mention someone)
index cc89068..8e44b6d 100644 (file)
@@ -118,10 +118,9 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
 
   /* the original data is written to the client, but we go on with the
      chunk read process, to properly calculate the content length*/
-  if ( data->set.http_te_skip )
+  if (data->set.http_te_skip && !k->ignorebody)
     Curl_client_write(conn, CLIENTWRITE_BODY, datap,datalen);
 
-
   while(length) {
     switch(ch->state) {
     case CHUNK_HEX: