Skip to content
CHANGES 81.3 KiB
Newer Older
Daniel Stenberg's avatar
Daniel Stenberg committed
                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

                               History of Changes
Daniel Stenberg's avatar
Daniel Stenberg committed

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (20 December 2001)
- Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause
  libcurl to hang on transfers over proxy, when the proxy was specified with
  an environment variable!

- Added code to make ftp operations treat the NO_BODY and HEADERS options
  better:

   NO_BODY set TRUE and HEADERS set TRUE:
    Return a set of headers with file info

   NO_BODY set FALSE
    Transfer data as usual, HEADERS is ignored

   NO_BODY set TRUE and HEADERS set FALSE
    Don't transfer any data, don't return any headers. Just perform the set
    of FTP commands.

Daniel (17 December 2001)
- Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
  made libcurl support it! This allows libcurl to do SSL connections with the
  private key stored in external hardware.

  To make this good, he had to add a bunch of new library options that'll be
  useful to others as well:

   CURLOPT_SSLCERTTYPE  set SSL cert type (PEM/DER)
   CURLOPT_SSLKEY       set SSL private key (file)
   CURLOPT_SSLKEYTYPE:  set SSL key type (PEM/DER/ENG)
   CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
                          (CURLOPT_SSLCERTPASSWD is an alias)
   CURLOPT_SSLENGINE:   set the name of the crypto engine
                        (returns CURLE_SSL_ENGINE_NOTFOUND on error)
   CURLOPT_SSLENGINE_DEFAULT: set the default engine

  There are two new failure codes:

   CURLE_SSL_ENGINE_NOTFOUND
   CURLE_SSL_ENGINE_SETFAILED

Daniel (14 December 2001)
- We have "branched" the source-tree at a few places. Checkout the CVS sources
  with the 'multi-dev' label to get the latest multi interface development
  tree. The idea is to only branch affected files and to restrict the branch
  to the v8 multi interface development only.

  *NOTE* that if we get bug reports and patches etc, we might need to apply
  them in both branches!

  The multi-dev branch is what we are gonna use as main branch in the future
  if it turns out successful. Thus, we must maintain both now in case we need
  them. The current main branch will be used if we want to release a 7.9.3 or
  perhaps a 7.10 release before version 8. Which is very likely.

- Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
  curl_formadd(), that lets an application add a set of headers for that
  particular part in a multipart/form-post. He also provided a section to the
  man page that describes the new option.

Daniel (11 December 2001)
- Ben Greear made me aware of the fact that the Curl_failf() usage internally
  was a bit sloppy with adding newlines or not to the error messages. Let's
  once and for all say that they do not belong there!

- When uploading files with -T to give a local file name, and you end the URL
  with a slash to have the local file name used remote too, we now no longer
  use the local directory as well. Only the file part of the -T file name
  will be appended to the right of the slash in the URL.

Daniel (7 December 2001)
- Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the
  link failed. Added a configure check and corrected source code.

Daniel Stenberg's avatar
Daniel Stenberg committed
Version 7.9.2

Daniel (5 December 2001)
- Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then
  on the same handle used CURLOPT_HTTPGET it would still attempt to upload.
  His suggested fix was perfect.

Daniel (4 December 2001)
- Incorporated more macos fixes and added four specific files in a new
  subdirectory below src.

Daniel (3 December 2001)
- Eric Lavigne reported two problems:

  First one in the curl_strnequal() function. I think this problem is rather
  macos 9 specific, as most platform provides a function to use instead of the
  one provided by libcurl.

  A second, more important, was in the way we take care of FTP responses. The
  code would read a large chunk of data and search for the end-of-response
  line within that chunk. When found, it would just skip the rest of the
  data. However, when the network connections are special, or perhaps the
  server is, we could actually get more than one response in that chunk of
  data so that when the next invoke to this function was done, the response
  had already been read and thrown away. Now, we cache the data not used in
  one call, as it could be useful in the subsequent call. Test case 126 was
  added and the test ftp server modified, to exercise this particular case.

Daniel Stenberg's avatar
Daniel Stenberg committed
Version 7.9.2-pre8

Daniel (2 December 2001)
- Bug report #487825 correctly identified a problem when using a proxy and
  following a redirection from HTTP to HTTPS. libcurl then re-used the same
  proxy connection but without doing a proper HTTPS request.

- Fixed win32 compiling quirks.

Version 7.9.2-pre7

Daniel (30 November 2001)
- Documented --disable-epsv and CURLOPT_FTP_USE_EPSV.

Daniel (29 November 2001)
Daniel Stenberg's avatar
Daniel Stenberg committed
- Added --disable-epsv as an option. When used, curl won't attempt to use the
Daniel Stenberg's avatar
Daniel Stenberg committed
  EPSV command when doing passive FTP downloads. Wrote a test case for it.
Daniel Stenberg's avatar
Daniel Stenberg committed

- Eric provided a few more fixes for building on Macs. He also pointed out
  a flaw in the signal handler restoration code.
Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (28 November 2001)
Daniel Stenberg's avatar
Daniel Stenberg committed
- Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
Daniel Stenberg's avatar
Daniel Stenberg committed
  only when using VERBOSE ftp transfers. Do we use a too small buffer for
  gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the
  hostent struct must be blanked before use? With Dimitris help and these
  patches, the problems seem to be history.
Daniel Stenberg's avatar
Daniel Stenberg committed

- CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl
  from using the EPSV command before trying the normal PASV. Heikki Korpela
  pointed out that some firewalls and similar don't like the EPSV so we must
  be able to shut if off to work everywhere.

- I added a configure check for 'in_addr_t' and made the ftp code use that to
  receive the inet_addr() return code in. Works on Solaris and Linux at
  least. The Linux man page for inet_addr() doesn't even mention in_addr_t...

- Adjusted (almost) all FTP tests to the new command sequence.

- FTP command sequence changes:

  EPSV is now always attempted before PASV. It is the final touch to make IPv6
  passive FTP downloads to work, but EPSV is not restricted to IPv6 but works
  fine with IPv4 too on the servers that support it.

  SIZE is now always issued before RETR. It makes curl know the actual
  download size before the download takes place, as it makes it less important
  to find the size sent in RETR responses. Many sites don't include the size
  in there.

  Both these changes made it necessary to change the test suite's ftp server
  code, and all FTP test cases need to be checked and adjusted!

Daniel (27 November 2001)
- Hans Steegers pointed out that the telnet code read from stdout, not stdin
  as it is supposed to do!

Version 7.9.2-pre6

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (27 November 2001)
Daniel Stenberg's avatar
Daniel Stenberg committed
- Eric Lavigne's minor changes to build on MacOS before OS X were applied.

- greep at mindspring.com provided a main index.html page for our release
  archive docs directory. It just links to all the existing HTML files, but
  I think it may come useful to people.

Daniel Stenberg's avatar
Daniel Stenberg committed
- There's now some initial code to support the EPSV FTP command. That should
  be used to do passive transfers IPv6-style. The code is still #if 0'ed in
  lib/ftp.c as I have no IPv6 ftp server to test this with.

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (26 November 2001)
- Robert Schlabbach had problems to understand how to do resumed transfers,
  and I clarified the man page -C section somewhat.

Daniel Stenberg's avatar
Daniel Stenberg committed
Version 7.9.2-pre5

Daniel Stenberg's avatar
Daniel Stenberg committed
Daniel (22 November 2001)
- Andrés García helped me out to track down the roots of bug report #479537,
  which was concerning curl returning the wrong error code when failing to
  connect. This didn't happen on all systems, and more specificly I've so far
  only seen this happen on IPv4-only Linux hosts.

- I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS
  port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP
  response reader function. The latter write is however likely to occur in our
  own buffer unless very big FTP server replies (>25K) are read. I've never
  seen such a reply ever, so I think this is a relatively minor risk.

Daniel (21 November 2001)
- Moonesamy provided code to prevent junk from being output when libcurl
  returns an error code but no error description and that corrects how make is
Loading full blame...