Commit 702664e9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP

file got a Last-Modified: header written to the data stream, corrupting the
actual data. This was because some conditions from the previous FTP code was
not properly brought into the new FTP code. I fixed and I added test case 520
to verify. (This bug was introduced in 7.13.1)
parent 18d87edd
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -7,6 +7,16 @@
                                  Changelog


Daniel (8 March 2005)
- Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP
  file got a Last-Modified: header written to the data stream, corrupting the
  actual data. This was because some conditions from the previous FTP code was
  not properly brought into the new FTP code. I fixed and I added test case
  520 to verify. (This bug was introduced in 7.13.1)

- Dan Fandrich fixed the configure --with-zlib option to always consider the
  given path before any standard paths.

Daniel (6 March 2005)
- Randy McMurchy was the first to report that valgrind.pm was missing from the
  release archive and thus 'make test' fails.
+3 −2
Original line number Diff line number Diff line
@@ -14,16 +14,17 @@ This release includes the following changes:

This release includes the following bugfixes:

 o CURLOPT_FILETIME when downloading FTP corrupted data
 o FTP upload resume now works even if no file is present on the site
 o SSL seeding no longer attempts to read the whole random file

Other curl-related news since the previous public release:

 o 
 o pycurl 7.13.1 http://pycurl.sf.net

This release would not have looked like this without help, code, reports and
advice from friends like these:

 Dan Fandrich, Ignacio Vazquez-Abrams
 Dan Fandrich, Ignacio Vazquez-Abrams, Randy McMurchy, Dominick Meglio

        Thanks! (and sorry if I forgot to mention someone)
+6 −2
Original line number Diff line number Diff line
@@ -1741,7 +1741,11 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn,
      /* If we asked for a time of the file and we actually got one as well,
         we "emulate" a HTTP-style header in our output. */

      if(data->set.get_filetime && (data->info.filetime>=0) ) {
      if(conn->bits.no_body &&
         data->set.include_header &&
         ftp->file &&
         data->set.get_filetime &&
         (data->info.filetime>=0) ) {
        struct tm *tm;
        time_t clock = (time_t)data->info.filetime;
#ifdef HAVE_GMTIME_R
@@ -1763,7 +1767,7 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn,
        result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
        if(result)
          return result;
      }
      } /* end of a ridiculous amount of conditionals */
    }
    break;
  default:
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
 test223 test224 test206 test207 test208 test209 test213 test240	\
 test241 test242 test519 test214 test215 test216 test217 test218	\
 test199 test225 test226 test227 test230 test231 test232 test228	\
 test229 test233 test234 test235 test236
 test229 test233 test234 test235 test236 test520

# 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

tests/data/test520

0 → 100644
+45 −0
Original line number Diff line number Diff line
#
# Server-side
<reply>
<data>
contents of file
</data>
</reply>

# Client-side
<client>
<server>
ftp
</server>
# tool is what to use instead of 'curl'
<tool>
lib520
</tool>

 <name>
FTP RETR with FILETIME
 </name>
 <command>
ftp://%HOSTIP:%FTPPORT/520
</command>
<file name="log/ftpserver.cmd">
REPLY MDTM 213 20030405060708
</file>
</client>

#
# Verify data after the test has been "shot"
<verify>

<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
MDTM 520
EPSV
TYPE I
SIZE 520
RETR 520
QUIT
</protocol>
</verify>
Loading