Loading CHANGES +14 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,20 @@ Changelog Daniel (3 December 2004) - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly at a chunk boundary it was not considered an error and thus went unnoticed. Added test case 207 to verify. Daniel (2 December 2004) - Fixed the CONNECT loop to default timeout to 3600 seconds. Added test case 206 that makes CONNECT with Digest. Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user- agent field. Daniel (30 November 2004) - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream Loading RELEASE-NOTES +4 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,10 @@ This release includes the following changes: This release includes the following bugfixes: o --disable-epsv when connecting to an IPv6 ftp server o chunked-encoded transfers could get closed pre-maturely without error o proxy CONNECT now default timeouts after 3600 seconds o --disable-epsv and --disable-eprt are ignored when connecting to an IPv6 ftp server o no more extra progress meter newline output after each Location: followed o HTTP PUT/POST with Digest, NTLM or Negotiate no longer uses HEAD o now gracefully bails out when exceeding FD_SETSIZE file descriptors Loading lib/transfer.c +12 −3 Original line number Diff line number Diff line Loading @@ -1368,9 +1368,18 @@ CURLcode Curl_readwrite(struct connectdata *conn, conn->size - k->bytecount); return CURLE_PARTIAL_FILE; } else if(conn->bits.chunk && conn->proto.http->chunk.datasize) { failf(data, "transfer closed with at least %d bytes remaining", conn->proto.http->chunk.datasize); else if(conn->bits.chunk && (conn->proto.http->chunk.state != CHUNK_STOP)) { /* * In chunked mode, return an error if the connection is closed prior to * the empty (terminiating) chunk is read. * * The condition above used to check for * conn->proto.http->chunk.datasize != 0 which is true after reading * *any* chunk, not just the empty chunk. * */ failf(data, "transfer closed with outstanding read data remaining"); return CURLE_PARTIAL_FILE; } if(Curl_pgrsUpdate(conn)) Loading tests/data/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test184 test185 test186 test187 test188 test189 test191 test192 \ test193 test194 test195 test196 test197 test198 test515 test516 \ test517 test518 test210 test211 test212 test220 test221 test222 \ test223 test224 test206 test223 test224 test206 test207 # The following tests have been removed from the dist since they no longer # work. We need to fix the test suite's FTPS server first, then bring them Loading tests/data/test207 0 → 100644 +57 −0 Original line number Diff line number Diff line # # Server-side <reply> <data> HTTP/1.1 200 funky chunky! swsclose Server: fakeit/0.9 fakeitbad/1.0 Transfer-Encoding: chunked Connection: mooo 41 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </data> <datacheck> HTTP/1.1 200 funky chunky! swsclose Server: fakeit/0.9 fakeitbad/1.0 Transfer-Encoding: chunked Connection: mooo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </datacheck> </reply> # # Client-side <client> <server> http </server> <name> HTTP GET with chunked Transfer-Encoding closed pre-maturely </name> <command> http://%HOSTIP:%HTTPPORT/207 </command> </test> # # Verify data after the test has been "shot" <verify> <strip> ^User-Agent:.* </strip> <protocol> GET /207 HTTP/1.1 Host: 127.0.0.1:%HTTPPORT Pragma: no-cache Accept: */* </protocol> # curl: (18) transfer closed with outstanding read data remaining # 18 == CURLE_PARTIAL_FILE <errorcode> 18 </errorcode> </verify> Loading
CHANGES +14 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,20 @@ Changelog Daniel (3 December 2004) - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly at a chunk boundary it was not considered an error and thus went unnoticed. Added test case 207 to verify. Daniel (2 December 2004) - Fixed the CONNECT loop to default timeout to 3600 seconds. Added test case 206 that makes CONNECT with Digest. Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user- agent field. Daniel (30 November 2004) - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream Loading
RELEASE-NOTES +4 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,10 @@ This release includes the following changes: This release includes the following bugfixes: o --disable-epsv when connecting to an IPv6 ftp server o chunked-encoded transfers could get closed pre-maturely without error o proxy CONNECT now default timeouts after 3600 seconds o --disable-epsv and --disable-eprt are ignored when connecting to an IPv6 ftp server o no more extra progress meter newline output after each Location: followed o HTTP PUT/POST with Digest, NTLM or Negotiate no longer uses HEAD o now gracefully bails out when exceeding FD_SETSIZE file descriptors Loading
lib/transfer.c +12 −3 Original line number Diff line number Diff line Loading @@ -1368,9 +1368,18 @@ CURLcode Curl_readwrite(struct connectdata *conn, conn->size - k->bytecount); return CURLE_PARTIAL_FILE; } else if(conn->bits.chunk && conn->proto.http->chunk.datasize) { failf(data, "transfer closed with at least %d bytes remaining", conn->proto.http->chunk.datasize); else if(conn->bits.chunk && (conn->proto.http->chunk.state != CHUNK_STOP)) { /* * In chunked mode, return an error if the connection is closed prior to * the empty (terminiating) chunk is read. * * The condition above used to check for * conn->proto.http->chunk.datasize != 0 which is true after reading * *any* chunk, not just the empty chunk. * */ failf(data, "transfer closed with outstanding read data remaining"); return CURLE_PARTIAL_FILE; } if(Curl_pgrsUpdate(conn)) Loading
tests/data/Makefile.am +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test184 test185 test186 test187 test188 test189 test191 test192 \ test193 test194 test195 test196 test197 test198 test515 test516 \ test517 test518 test210 test211 test212 test220 test221 test222 \ test223 test224 test206 test223 test224 test206 test207 # The following tests have been removed from the dist since they no longer # work. We need to fix the test suite's FTPS server first, then bring them Loading
tests/data/test207 0 → 100644 +57 −0 Original line number Diff line number Diff line # # Server-side <reply> <data> HTTP/1.1 200 funky chunky! swsclose Server: fakeit/0.9 fakeitbad/1.0 Transfer-Encoding: chunked Connection: mooo 41 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </data> <datacheck> HTTP/1.1 200 funky chunky! swsclose Server: fakeit/0.9 fakeitbad/1.0 Transfer-Encoding: chunked Connection: mooo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </datacheck> </reply> # # Client-side <client> <server> http </server> <name> HTTP GET with chunked Transfer-Encoding closed pre-maturely </name> <command> http://%HOSTIP:%HTTPPORT/207 </command> </test> # # Verify data after the test has been "shot" <verify> <strip> ^User-Agent:.* </strip> <protocol> GET /207 HTTP/1.1 Host: 127.0.0.1:%HTTPPORT Pragma: no-cache Accept: */* </protocol> # curl: (18) transfer closed with outstanding read data remaining # 18 == CURLE_PARTIAL_FILE <errorcode> 18 </errorcode> </verify>