From 6f750f3b575bce420666b8115c1db7897dae5f7a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 2 Aug 2007 14:09:08 +0000 Subject: [PATCH] Dmitriy Sergeyev reported a regression: resumed file:// transfers broke after 7.16.2. This is much due to the different treatment file:// gets internally, but now I added test 231 to make it less likely to happen again without us noticing! --- CHANGES | 6 ++++++ RELEASE-NOTES | 3 ++- lib/url.c | 26 ++++++++++++++++---------- tests/data/Makefile.am | 3 ++- tests/data/test231 | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 tests/data/test231 diff --git a/CHANGES b/CHANGES index ef30dc1e69..106f01df88 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,12 @@ Changelog +Daniel S (2 August 2007) +- Dmitriy Sergeyev reported a regression: resumed file:// transfers broke + after 7.16.2. This is much due to the different treatment file:// gets + internally, but now I added test 231 to make it less likely to happen again + without us noticing! + Daniel S (1 August 2007) - Patrick Monnerat and I modified libcurl so that now it *copies* all strings passed to it with curl_easy_setopt()! Previously it has always just refered diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 0377adb936..bc3fe03cdf 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -32,6 +32,7 @@ This release includes the following bugfixes: o FTPS data connection close o AIX 4 and 5 get to use non-blocking sockets o small POST with NTLM + o resumed file:// transfers This release includes the following known bugs: @@ -53,6 +54,6 @@ advice from friends like these: Dan Fandrich, Song Ma, Daniel Black, Giancarlo Formicuccia, Shmulik Regev, Daniel Cater, Colin Hogben, Jofell Gallardo, Daniel Johnson, Ralf S. Engelschall, James Housley, Chris Flerackers, Patrick Monnerat, - Jayesh A Shah, Greg Zavertnik, Peter O'Gorman, Greg Morse + Jayesh A Shah, Greg Zavertnik, Peter O'Gorman, Greg Morse, Dmitriy Sergeyev Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/url.c b/lib/url.c index 0de87a8240..21b869efaa 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3604,18 +3604,24 @@ static CURLcode CreateConnection(struct SessionHandle *data, ***********************************************************************/ #ifndef CURL_DISABLE_FILE if (strequal(conn->protostr, "FILE")) { - /* anyway, this is supposed to be the connect function so we better - at least check that the file is present here! */ - result = Curl_file_connect(conn); + /* this is supposed to be the connect function so we better at least check + that the file is present here! */ + result = Curl_file_connect(conn); - /* Setup a "faked" transfer that'll do nothing */ - if(CURLE_OK == result) { - conn->data = data; - conn->bits.tcpconnect = TRUE; /* we are "connected */ - ConnectionStore(data, conn); + /* Setup a "faked" transfer that'll do nothing */ + if(CURLE_OK == result) { + conn->data = data; + conn->bits.tcpconnect = TRUE; /* we are "connected */ - result = Curl_setup_transfer(conn, -1, -1, FALSE, NULL, /* no download */ - -1, NULL); /* no upload */ + ConnectionStore(data, conn); + + result = setup_range(data); + if(result) + return result; + + result = Curl_setup_transfer(conn, -1, -1, FALSE, + NULL, /* no download */ + -1, NULL); /* no upload */ } return result; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 8cc794d4ae..97c117152d 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -42,4 +42,5 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test405 test604 test605 test606 test607 test608 test609 test294 test295 \ test296 test297 test298 test610 test611 test612 test406 test407 test408 \ test409 test613 test614 test700 test701 test702 test704 test705 test703 \ - test706 test707 test350 test351 test352 test353 test289 test540 test354 + test706 test707 test350 test351 test352 test353 test289 test540 test354 \ + test231 diff --git a/tests/data/test231 b/tests/data/test231 new file mode 100644 index 0000000000..912ea41256 --- /dev/null +++ b/tests/data/test231 @@ -0,0 +1,32 @@ + +# Server-side + +# 16 bytes to check + +B01234567 +C01234567 + + + +# Client-side + + +file + + +file:// with resume + + +file://localhost/%PWD/log/test231.txt -C 10- + + +A01234567 +B01234567 +C01234567 + + + +# Verify data after the test has been "shot" + + +