aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2009-10-30 22:24:48 +0000
committerDaniel Stenberg <daniel@haxx.se>2009-10-30 22:24:48 +0000
commitd68f215f037febf1850ad6a169d4a69bd9d132a1 (patch)
tree1ab2412aa69dd813262a78562504e6d614786f71 /lib
parent0a5ac52b494453cd3687b0a424fd068ba8673033 (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.c12
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);