diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-10-30 22:24:48 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-10-30 22:24:48 +0000 |
commit | d68f215f037febf1850ad6a169d4a69bd9d132a1 (patch) | |
tree | 1ab2412aa69dd813262a78562504e6d614786f71 /lib | |
parent | 0a5ac52b494453cd3687b0a424fd068ba8673033 (diff) |
- "Tom" posted a bug report that mentioned how libcurl did wrong when doing a
POST using a read callback, with Digest authentication and
"Transfer-Encoding: chunked" enforced. I would then cause the first request
to be wrongly sent and then basically hang until the server closed the
connection. I fixed the problem and added test case 565 to verify it.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/http.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/http.c b/lib/http.c index 5471f377f..832a6d507 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2905,7 +2905,17 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) if(result) return result; - if(data->set.postfieldsize) { + if(data->req.upload_chunky && conn->bits.authneg) { + /* Chunky upload is selected and we're negotiating auth still, send + end-of-data only */ + result = add_buffer(req_buffer, + "\x0d\x0a\x30\x0d\x0a\x0d\x0a", 7); + /* CR LF 0 CR LF CR LF */ + if(result) + return result; + } + + else if(data->set.postfieldsize) { /* set the upload size to the progress meter */ Curl_pgrsSetUploadSize(data, postsize?postsize:-1); |