From 5119fb16d63e91972924e54d455c825f62b1440d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 10 Jul 2007 22:45:01 +0000 Subject: [PATCH] Shmulik Regev: 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 | 3 +++ RELEASE-NOTES | 5 +++-- lib/http_chunks.c | 3 +-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 0f0b391..acbd88a 100644 --- 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. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index feffdbf..43bf843 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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) diff --git a/lib/http_chunks.c b/lib/http_chunks.c index cc89068..8e44b6d 100644 --- a/lib/http_chunks.c +++ b/lib/http_chunks.c @@ -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: -- 2.7.4