diff --git a/CHANGES b/CHANGES index f13965919..744c3793e 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,23 @@ History of Changes +Daniel (4 January 2001) +- As Kevin P Roth suggested, I've added text to the man page for every command + line option and what happens when you specify that option more than + once. That hasn't been exactly crystal clear before. + +- Made the configure script possible to run from outside the source-tree. For + odd reasons I can't build curl properly outside though. It has to do with + curl's dependencies on libcurl... + +Daniel (3 January 2001) +- Renamed README.libcurl to LIBCURL + +- Changed headers in all sources files to the new dual license concept of + curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated + accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the + release archive. + Daniel (30 December 2000) - Made all FTP commands get sent with the trailing CRLF in one single write() as splitting them up seems to confuse at least some firewalls (FW-1 being @@ -1386,1624 +1403,3 @@ Daniel (10 January 2000): flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks and therefore you can't make the configure script find the openssl libs! -Daniel (28 December 1999): - - Tim Verhoeven correctly identified that curl - doesn't support URL formatted file names when getting ftp. Now, there's a - problem with getting very weird file names off FTP servers. RFC 959 defines - that the file name syntax to use should be the same as in the native OS of - the server. Since we don't know the peer server system we currently just - translate the URL syntax into plain letters. It is still better and with - the solaris 2.6-supplied ftp server it works with spaces in the file names. - -Daniel (27 December 1999): - - When curl parsed cookies straight off a remote site, it corrupted the input - data, which, if the downloaded headers were stored made very odd characters - in the saved data. Correctly identified and reported by Paul Harrington. - -Daniel (13 December 1999): - - General cleanups in the library interface. There had been some bad kludges - added during times of stress and I did my best to clean them off. It was - both regarding the lib API as well as include file confusions. - -Daniel (3 December 1999): - - A small --stderr bug was reported by Eetu Ojanen... - - - who also brought the suggestion of extending the -X flag to ftp list as - well. So, now it is and the long option is now --request instead. It is - only for ftp list for now (and the former http stuff too of course). - -Lars J. Aas (24 November 1999): - - Patched curl to compile and build under BeOS. Doesn't work yet though! - - - Corrected the Makefile.am files to allow putting object files in - different directories than the sources. - -Version 6.3.1 - -Daniel (23 November 1999): - - I've had this major disk crash. My good old trust-worthy source disk died - along with the machine that hosted it. Thank goodness most of all the - things I've done are either backed up elsewhere or stored in this CVS - server! - - - Michael S. Steuer pointed out a bug in the -F handling - that made curl hang if you posted an empty variable such as '-F name='. It - was one of those old bugs that never have worked properly... - - - Jason Baietto pointed out a general flaw in the HTTP - download. Curl didn't complain if it was prematurely aborted before the - entire download was completed. It does now. - -Daniel (19 November 1999): - - Chris Maltby very accurately criticized the lack of - return code checks on the fwrite() calls. I did a thorough check for all - occurrences and corrected this. - -Daniel (17 November 1999): - - Paul Harrington pointed out that the -m/--max-time option - doesn't work for the slow system calls like gethostbyname()... I don't have - any good fix yet, just a slightly less bad one that makes curl exit hard - when the timeout is reached. - - - Bjorn Reese helped me point out a possible problem that might be the reason - why Thomas Hurst experience problems in his Amiga version. - - Daniel (12 November 1999): - - I found a crash in the new cookie file parser. It crashed when you gave - a plain http header file as input... - -Version 6.3 - - Daniel (10 November 1999): - - I kind of found out that the HTTP time-conditional GETs (-z) aren't always - respected by the web server and the document is therefore sent in whole - again, even though it doesn't match the requested condition. After reading - section 13.3.4 of RFC 2616, I think I'm doing the right thing now when I do - my own check as well. If curl thinks the condition isn't met, the transfer - is aborted prematurely (after all the headers have been received). - - - After comments from Robert Linden I also rewrote some parts of the man page - to better describe how the -F works. - - - Michael Anti put up a new curl download mirror in - China: http://www.pshowing.com/curl/ - - - I added the list of download mirrors to the README file - - - I did add more explanations to the man page - - Daniel (8 November 1999): - - I made the -b/--cookie option capable of reading netscape formatted cookie - files as well as normal http-header files. It should be able to - transparently figure out what kind of file it got as input. - - Daniel (29 October 1999): - - Another one of Sebastiaan van Erk's ideas (that has been requested before - but I seem to have forgotten who it was), is to add support for ranges in - FTP downloads. As usual, one request is just a request, when they're two - it is a demand. I've added simple support for X-Y style fetches. X has to - be the lower number, though you may omit one of the numbers. Use the -r/ - --range switch (previously HTTP-only). - - - Sebastiaan van Erk suggested that curl should be - able to show the file size of a specified file. I think this is a splendid - idea and the -I flag is now working for FTP. It displays the file size in - this manner: - Content-Length: XXXX - As it resembles normal headers, and leaves us the opportunity to add more - info in that display if we can come up with more in the future! It also - makes sense since if you access ftp through a HTTP proxy, you'd get the - file size the same way. - - I changed the order of the QUOTE command executions. They're now executed - just after the login and before any other command. I made this to enable - quote commands to run before the -I stuff is done too. - - - I found out that -D/--dump-header and -V/--version weren't documented in - the man page. - - - Many HTTP/1.1 servers do not support ranges. Don't ask me why. I did add - some text about this in the man page for the range option. The thread in - the mailing list that started this was initiated by Michael Anti. - - - I get reports about nroff crashes on solaris 2.6+ when displaying the curl - man page. Switch to gnroff instead, it is reported to work(!). Adam Barclay - reported and brought the suggestion. - - - In a dialogue with Johannes G. Kristinsson we came - up with the idea to let -H/--header specified headers replace the - internally generated headers, if you happened to select to add a header - that curl normally uses by itself. The advantage with this is not entirely - obvious, but in Johannes' case it means that he can use another Host: than - the one curl would set. - - Daniel (27 October 1999): - - Jongki Suwandi brought a nice patch for (yet another) crash when following - a location:. This time you had to follow a https:// server's redirect to - get the core. - -Version 6.2 - - Daniel (21 October 1999): - - I think I managed to remove the suspicious (nil) that has been seen just - before the "Host:" in HTTP requests when -v was used. - - I found out that if you followed a location: when using a proxy, without - having specified http:// in the URL, the protocol part was added once again - when moving to the next URL! (The protocol part has to be added to the - URL when going through a proxy since it has no protocol-guessing system - such as curl has.) - - Benjamin Ritcey reported a core dump under solaris 2.6 - with OpenSSL 0.9.4. It turned out this was due to a bad free() in main.c - that occurred after the download was done and completed. - - Benjamin found ftp downloads to show the first line of the download meter - to get written twice, and I removed that problem. It was introduced with - the multiple URL support. - - Dan Zitter correctly pointed out that curl 6.1 and earlier versions didn't - honor RFC 2616 chapter 4 section 2, "Message Headers": "...Field names are - case-insensitive..." HTTP header parsing assumed a certain casing. Dan - also provided me with a patch that corrected this, which I took the liberty - of editing slightly. - - Dan Zitter also provided a nice patch for config.guess to better recognize - the Mac OS X - - Dan also corrected a minor problem in the lib/Makefile that caused linking - to fail on OS X. - - Daniel (19 October 1999): - - Len Marinaccio came up with some problems with curl. Since Windows has a - crippled shell, it can't redirect stderr and that causes trouble. I added - --stderr today which allows the user to redirect the stderr stream to a - file or stdout. - - Daniel (18 October 1999): - - The configure script now understands the '--without-ssl' flag, which now - totally disable SSL/https support. Previously it wasn't possible to force - the configure script to leave SSL alone. The previous functionality has - been retained. Troy Engel helped test this new one. - -Version 6.1 - - Daniel (17 October 1999): - - I ifdef'ed or commented all the zlib stuff in the sources and configure - script. It turned out we needed to mock more with zlib than I initially - thought, to make it capable of downloading compressed HTTP documents and - uncompress them on the fly. I didn't mean the zlib parts of curl to become - more than minor so this means I halt the zlib expedition for now and wait - until someone either writes the code or zlib gets updated and better - adjusted for this kind of usage. I won't get into details here, but a - short a summary is suitable: - - zlib can't automatically detect whether to use zlib or gzip - decompression methods. - - zlib is very neat for reading gzipped files from a file descriptor, - although not as nice for reading buffer-based data such as we would - want it. - - there are still some problems with the win32 version when reading from - a file descriptor if that is a socket - - Daniel (14 October 1999): - - Moved the (external) include files for libcurl into a subdirectory named - curl and adjusted all #include lines to use to maintain a - better name space and control of the headers. This has been requested. - - Daniel (12 October 1999): - - I modified the 'maketgz' script to perform a 'make' too before a release - archive is put together in an attempt to make the time stamps better and - hopefully avoid the double configure-running that use to occur. - - Daniel (11 October 1999): - - Applied Jörn's patches that fixes zlib for mingw32 compiles as well as - some other missing zlib #ifdef and more text on the multiple URL docs in - the man page. - -Version 6.1beta - - Daniel (6 October 1999): - - Douglas E. Wegscheid sent me a patch that made the exact same thing as I - just made: the -d switch is now capable of reading post data from a named - file or stdin. Use it similarly to the -F. To read the post data from a - given file: - - curl -d @path/to/filename www.postsite.com - - or let curl read it out from stdin: - - curl -d @- www.postit.com - - Jörn Hartroth (3 October 1999): - - Brought some more patches for multiple URL functionality. The MIME - separation ideas are almost scrapped now, and a custom separator is being - used instead. This is still compile-time "flagged". - - Daniel - - Updated curl.1 with multiple URL info. - - Daniel (30 September 1999): - - Felix von Leitner brought openssl-check fixes for configure.in to work - out-of-the-box when the openssl files are installed in the system default - dirs. - - Daniel (28 September 1999) - - Added libz functionality. This should enable decompressing gzip, compress - or deflate encoding HTTP documents. It also makes curl send an accept that - it accepts that kind of encoding. Compressed contents usually shortens - download time. I *need* someone to tell me a site that uses compressed HTTP - documents so that I can test this out properly. - - - As a result of the adding of zlib awareness, I changed the version string - a little. I plan to add openldap version reporting in there too. - - Daniel (17 September 1999) - - Made the -F option allow stdin when specifying files. By using '-' instead - of file name, the data will be read from stdin. - -Version 6.0 - - Daniel (13 September 1999) - - Added -X/--http-request to enable any HTTP command to be sent. - Do not that your server has to support the exact string you enter. This - should possibly a string like DELETE or TRACE. - - - Applied Douglas' mingw32-fixes for the makefiles. - - Daniel (10 September 1999) - - Douglas E. Wegscheid pointed out a problem. Curl didn't check the FTP - servers return code properly after the --quote commands were issued. It - took anything non 200 as an error, when all 2XX codes should be accepted as - OK. - - - Sending cookies to the same site in multiple lines like curl used to do - turned out to be bad and breaking the cookie specs. Curl now sends all - cookies on a single Cookie: line. Curl is not yet RFC 2109 compliant, but I - doubt that many servers do use that syntax (yet). - - Daniel (8 September 1999) - - Jörn helped me make sure it still compiles nicely with mingw32 under win32. - - Daniel (7 September 1999) - - FTP upload through proxy is now turned into a HTTP PUT. Requested by - Stefan Kanthak. - - - Added the ldap files to the .m32 makefile. - - Daniel (3 September 1999) - - Made cookie matching work while using HTTP proxy. - - Bjorn Reese (31 August 1999) - - Passed his ldap:// patch. Note that this requires the openldap shared - library to be installed and that LD_LIBRARY_PATH points to the - directory where the lib will be found when curl is run with a - ldap:// URL. - - Jörn Hartroth (31 August 1999) - - Made the Mingw32 makefiles into single files. - - Made file:// work for Win32. The same code is now used for unix as well for - performance reasons. - - Douglas E. Wegscheid (30 August 1999) - - Patched the Mingw32 makefiles for SSL builds. - - Matthew Clarke (30 August 1999) - - Made a cool patch for configure.in to allow --with-ssl to specify the - root dir of the openssl installation, as in - - ./configure --with-ssl=/usr/ssl_here - - - Corrected the 'reconf' script to work better with some shells. - - Jörn Hartroth (26 August 1999) - - Fixed the Mingw32 makefiles in lib/ and corrected the file.c for win32 - compiles. - -Version 5.11 - - Daniel (25 August 1999) - - John Weismiller pointed out a bug in the header-line - realloc() system in download.c. - - - I added lib/file.[ch] to offer a first, simple, file:// support. It - probably won't do much good on win32 system at this point, but I see it - as a start. - - - Made the release archives get a Makefile in the root dir, which can be - used to start the compiling/building process easier. I haven't really - changed any INSTALL text yet, I wanted to get some feed-back on this - first. - - Daniel (17 August 1999) - - Another Location: bug. Curl didn't do proper relative locations if the - original URL had cgi-parameters that contained a slash. Nusu's page - again. - - - Corrected the NO_PROXY usage. It is a list of substrings that if one of - them matches the tail of the host name it should connect to, curl should - not use a proxy to connect there. Pointed out to me by Douglas - E. Wegscheid. I also changed the README text a little regarding this. - - Daniel (16 August 1999) - - Fixed a memory bug with http-servers that sent Location: to a Location: - page. Nusu's page showed this too. - - - Made cookies work a lot better. Setting the same cookie name several times - used to add more cookies instead of replacing the former one which it - should've. Nusu brought me an URL that made this - painfully visible... - - Troy (15 August 1999) - - Brought new .spec files as well as a patch for configure.in that lets the - configure script find the openssl files better, even when the include - files are in /usr/include/openssl - -Version 5.10 - - Daniel (13 August 1999) - - SSL_CTX_set_default_passwd_cb() has been modified in the 0.9.4 version of - OpenSSL. Now why couldn't they simply add a *new* function instead of - modifying the parameters of an already existing function? This way, we get - a compiler warning if compiling with 0.9.4 but not with earlier. So, I had - to come up with a #if construction that deals with this... - - - Made curl output the SSL version number get displayed properly with 0.9.4. - - Troy (12 August 1999) - - Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also - a bit rearranged. - - Daniel (12 August 1999) - - I had to copy a good include file into the curl source - tree to enable the silly win32 systems to compile. The distribution rights - allows us to do that as long as the file remains unmodified. - - - I corrected a few minor things that made the compiler complain when - -Wall -pedantic was used. - - - I'm moving the official curl web page to http://curl.haxx.nu. I think it - will make it easier to remember as it is a lot shorter and less cryptic. - The old one still works and shows the same info. - - Daniel (11 August 1999) - - Albert Chin-A-Young mailed me another correction for NROFF in the - configure.in that is supposed to be better for IRIX users. - - Daniel (10 August 1999) - - Albert Chin-A-Young helped me with some stupid Makefile things, as well as - some fiddling with the getdate.c stuff that he had problems with under - HP-UX v10. getdate.y will now be compiled into getdate.c if the appropriate - yacc or bison is found by the configure script. Since this is slightly new, - we need to test the output getdate.c with win32 systems to make sure it - still compiles there. - - Daniel (5 August 1999) - - I've just setup a new mailing list with the intention to keep discussions - around libcurl development in it. I mainly expect it to be for thoughts and - brainstorming around a "next generation" library, rather than nitpicking - about the current implementation or details in the current libcurl. - - To join our happy bunch of future-looking geeks, enter 'subscribe -
' in the body of a mail and send it to - libcurl-request@listserv.fts.frontec.se. Curl bug reports, the usual curl - talk and everything else should still be kept in this mailing list. I've - started to archive this mailing list and have put the libcurl web page at - www.fts.frontec.se/~dast/libcurl/. - - - Stefan Kanthak contacted me regarding a few problems in the configure - script which he discovered when trying to make curl compile and build under - Siemens SINIX-Z V5.42B2004! - - - Marcus Klein very accurately informed me that src/version.h was not present - in the CVS repository. Oh, how silly... - - - Linus Nielsen rewrote the telnet:// part and now curl offers limited telnet - support. If you run curl like 'curl telnet://host' you'll get all output on - the screen and curl will read input from stdin. You'll be able to login and - run commands etc, but since the output is buffered, expect to get a little - weird output. - - This is still in its infancy and it might get changed. We need your - feed-back and input in how this is best done. - - WIN32 NOTE: I bet we'll get problems when trying to compile the current - lib/telnet.c on win32, but I think we can sort them out in time. - - - David Sanderson reported that FORCE_ALLOCA_H or HAVE_ALLOCA_H must be - defined for getdate.c to compile properly on HP-UX 11.0. I updated the - configure script to check for alloca.h which should make it. - - Daniel (4 August 1999) - - I finally got to understand Marcus Klein's ftp download resume problem, - which turns out to be due to different outputs from different ftp - servers. It makes ftp download resuming a little trickier, but I've made - some modifications I really believe will work for most ftp servers and I do - hope you report if you have problems with this! - - - Added text about file transfer resuming to README.curl. - - Daniel (2 August 1999) - - Applied a progress-bar patch from Lars J. Aas. It offers - a new styled progress bar enabled with -#/--progress-bar. - - T. Yamada (30 July 1999) - - It breaks with segfault when 1) curl is using .netrc to obtain - username/password (option '-n'), and 2) is automatically redirected to - another location (option '-L'). - - There is a small bug in lib/url.c (block starting from line 641), which - tries to take out username/password from user- supplied command-line - argument ('-u' option). This block is never executed on first attempt since - CONF_USERPWD bit isn't set at first, but curl later turns it on when it - checks for CONF_NETRC bit. So when curl tries to redo everything due to - redirection, it segfaults trying to access *data->userpwd. - -Version 5.9.1 - - Daniel (30 July 1999) - - Steve Walch pointed out that there is a memory leak in the formdata - functions. I added a FormFree() function that is now used and supposed to - correct this flaw. - - - Mark Wotton reported: - 'curl -L https://www.cwa.com.au/' core dumps. I managed to cure this by - correcting the cleanup procedure. The bug seems to be gone with my OpenSSL - 0.9.2b, although still occurs when I run the ~100 years old SSLeay 0.8.0. I - don't know whether it is curl or SSLeay that is to blame for that. - - - Marcus Klein: - Reported an FTP upload resume bug that I really can't repeat nor understand. - I leave it here so that it won't be forgotten. - - Daniel (29 July 1999) - - Costya Shulyupin suggested support for longer URLs when following Location: - and I could only agree and fix it! - - - Leigh Purdie found a problem in the upload/POST department. It turned out - that http.c accidentaly cleared the pointer instead of the byte counter - when supposed to. - - - Costya Shulyupin pointed out a problem with port numbers and Location:. If - you had a server at a non-standard port that redirected to an URL using a - standard port number, curl still used that first port number. - - - Ralph Beckmann pointed out a problem when using both CONF_FOLLOWLOCATION - and CONF_FAILONERROR simultaneously. Since the CONF_FAILONERROR exits on - the 302-code that the follow location header outputs it will never show any - html on location: pages. I have now made it look for >=400 codes if - CONF_FOLLOWLOCATION is set. - - - 'struct slist' is now renamed to 'struct curl_slist' (as suggested by Ralph - Beckmann). - - - Joshua Swink and Rick Welykochy were the first to point out to me that the - latest OpenSSL package now have moved the standard include path. It is now - in /usr/local/ssl/include/openssl and I have now modified the --enable-ssl - option for the configure script to use that as the primary path, and I - leave the former path too to work with older packages of OpenSSL too. - - Daniel (9 June 1999) - - I finally understood the IRIX problem and now it seem to compile on it! - I am gonna remove those #define strcasecmp() things once and for all now. - - Daniel (4 June 1999) - - I adjusted the FTP reply 227 parser to make the PASV command work better - with more ftp servers. Appearantly the Roxen Challanger server replied - something curl 5.9 could deal with! :-( Reported by Ashley Reid-Montanaro - and Mark Butler brought a solution for it. - - Daniel (26 May 1999) - - Rearranged. README is new, the old one is now README.curl and I added a - README.libcurl with text I got from Ralph Beckmann. - - - I also updated the INSTALL text. - - Daniel (25 May 1999) - - David Jonathan Lowsky correctly pointed out that curl didn't properly deal - with form posting where the variable shouldn't have any content, as in curl - -F "form=" www.site.com. It was now fixed. - -Version 5.9 - - Daniel (22 May 1999) - - I've got a bug report from Aaron Scarisbrick in which he states he has some - problems with -L under FreeBSD 3.0. I have previously got another bug - report from Stefan Grether which points at an error with similar sympthoms - when using win32. I made the allocation of the new url string a bit faster - and different, don't know if it actually improves anything though... - - Daniel (20 May 1999) - - Made the cookie parser deal with CRLF newlines too. - - Daniel (19 May 1999) - - Download() didn't properly deal with failing return codes from the sread() - function. Adam Coyne found the problem in the win32 version, and Troy Engel - helped me out isolating it. - - Daniel (16 May 1999) - - Richard Adams pointed out a bug I introduced in 5.8. --dump-header doesn't - work anymore! :-/ I fixed it now. - - - After a suggestion by Joshua Swink I added -S / --show-error to force curl - to display the error message in case of an error, even if -s/--silent was - used. - - Daniel (10 May 1999) - - I moved the stuff concerning HTTP, DICT and TELNET it their own source - files now. It is a beginning on my clean-up of the sources to make them - layer all those protocols better to enable more to be added easier in the - future! - - - Leon Breedt sent me some files I've not put into the main curl - archive. They're for creating the Debian package thingie. He also sent me a - debian package that I've made available for download at the web page - - Daniel (9 May 1999) - - Made it compile on cygwin too. - - Troy Engel (7 May 1999) - - Brought a series of patches to allow curl to compile smoothly on MSVC++ 6 - again! - - Daniel (6 May 1999) - - I changed the #ifdef HAVE_STRFTIME placement for the -z code so that it - will be easier to discover systems that don't have that function and thus - can't use -z successfully. Made the strftime() get used if WIN32 is defined - too. - -Version 5.8 - - Daniel (5 May 1999) - - I've had it with this autoconf/automake mess. It seems to work allright - for most people who don't have automake installed, but for those who have - there are problems all over. - - I've got like five different bug reports on this only the last - week... Claudio Neves and Federico Bianchi and root are some of them reporting this. - - Currently, I have no really good fix since I want to use automake myself to - generate the Makefile.in files. I've found out that the @SHELL@-problems - can often be fixed by manually invoking 'automake' in the archive root - before you run ./configure... I've hacked my maketgz script now to fiddle - a bit with this and my tests seem to work better than before at least! - - Daniel (4 May 1999) - - mkhelp.pl has been doing badly lately. I corrected a case problem in - the regexes. - - - I've now remade the -o option to not touch the file unless it needs to. - I had to do this to make -z option really fine, since now you can make a - curl fetch and use a local copy's time when downloading to that file, as - in: - - curl -z dump -o dump remote.site.com/file.html - - This will only get the file if the remote one is newer than the local. - I'm aware that this alters previous behaviour a little. Some scripts out - there may depend on that the file is always touched... - - - Corrected a bug in the SSLv2/v3 selection. - - - Felix von Leitner requested that curl should be able to send - "If-Modified-Since" headers, which indeed is a fair idea. I implemented it - right away! Try -z where expression is a full GNU date - expression or a file name to get the date from! - - Stephan Lagerholm (30 Apr 1999) - - Pointed out a problem with the src/Makefile for FreeBSD. The RM variable - isn't set and causes the make to fail. - - Daniel (26 April 1999) - - Am I silly or what? Irving Wolfe pointed out to me that the curl version - number was not set properly. Hasn't been since 5.6. This was due to a bug - in my maketgz script! - - David Eriksson (25 Apr 1999) - - Found a bug in cookies.c that made it crash at times. - -Version 5.7.1 - - Doug Kaufman (23 Apr 1999) - - Brought two sunos 4 fixes. One of them being the hostip.c fix mentioned - below and the other one a correction in include/stdcheaders.h - - - Added a paragraph about compiling with the US-version of openssl to the - INSTALL file. - - Daniel - - New mailing list address. Info updated on the web page as well as in the - README file - - Greg Onufer (20 Apr 1999) - - hostip.c didn't compile properly on SunOS 5.5.1. - It needs an #include - -Version 5.7 - - Daniel (Apr 20 1999) - - Decided to upload a non-beta version right now! - - - Made curl support any-length HTTP headers. The destination buffer is now - simply enlarged every time it turns out to be too small! - - - Added the FAQ file to the archive. Still a bit smallish, but it is a - start. - - Eric Thelin (15 Apr 1999) - - Made -D accept '-' instead of filename to write to stdout. - -Version 5.6.3beta - - Daniel (Apr 12 1999) - - - Changed two #ifdef WIN32 to better #ifdef when connect()ing - in url.c and ftp.c. Makes cygwin32 deal with them better too. We should - try to get some decent win32-replacement there. Anyone? - - - The old -3/--crlf option is now ONLY --crlf! - - - I changed the "SSL fix" to a more lame one, but that doesn't remove as - much functionality. Now I've enabled the lib to select what SSL version it - should try first. Appearantly some older SSL-servers don't like when you - talk v3 with them so you need to be able to force curl to talk v2 from the - start. The fix dated April 6 and posted on the mailing list forced curl to - use v2 at all times using a modern OpenSSL version, but we don't really - want such a crippled solution. - - - Marc Boucher sent me a patch that corrected a math error for the - "Curr.Speed" progress meter. - - - Eric Thelin sent me a patch that enables '-K -' to read a config file from - stdin. - - - I found out we didn't close the file properly before so I added it! - - Daniel (Apr 9 1999) - - Yu Xin pointed out a problem with ftp download resume. It didn't work at - all! ;-O - - Daniel (Apr 6 1999) - - Corrected the version string part generated for the SSL version. - - - I found a way to make some other SSL page work with openssl 0.9.1+ that - previously didn't (ssleay 0.8.0 works with it though!). Trying to get - some real info from the OpenSSL guys to see how I should do to behave the - best way. SSLeay 0.8.0 shouldn't be that much in use anyway these days! - -Version 5.6.2beta - - Daniel (Apr 4 1999) - - Finally have curl more cookie "aware". Now read carefully. This is how - it works. - To make curl read cookies from an already existing file, in plain header- - format (like from the headers of a previous fetch) invoke curl with the - -b flag like: - - curl -b file http://site/foo.html - - Curl will then use all cookies it finds matching. The old style that sets - a single cookie with -b is still supported and is used if the string - following -b includes a '=' letter, as in "-b name=daniel". - - To make curl read the cookies sent in combination with a location: (which - sites often do) point curl to read a non-existing file at first (i.e - to start with no existing cookies), like: - - curl -b nowhere http://site/setcookieandrelocate.html - - - Added a paragraph in the TODO file about the SSL problems recently - reported. Evidently, some kind of SSL-problem curl may need to address. - - - Better "Location:" following. - - Douglas E. Wegscheid (Tue, 30 Mar 1999) - - A subsecond display patch. - - Daniel (Mar 14 1999) - - I've separated the version number of libcurl and curl now. To make - things a little easier, I decided to start the curl numbering from - 5.6 and the former version number known as "curl" is now the one - set for libcurl. - - - Removed the 'enable-no-pass' from configure, I doubt anyone wanted - that. - - - Made lots of tiny adjustments to compile smoothly with cygwin under - win32. It's a killer for porting this to win32, bye bye VC++! ;-) - Compiles and builds out-of-the-box now. See the new wordings in - INSTALL for details. - - - Beginning experiments with downloading multiple document from a http - server while remaining connected. - -Version 5.6beta - - Daniel (Mar 13 1999) - - Since I've changed so much, I thought I'd just go ahead and implement the - suggestion from Douglas E. Wegscheid. -D or --dump-header is now storing - HTTP headers separately in the specified file. - - - Added new text to INSTALL on what to do to build this on win32 now. - - - Aaargh. I had to take a step back and prefix the shared #include files - in the sources with "../include/" to please VC++... - - Daniel (Mar 12 1999) - - Split the url.c source into many tiny sources for better readability - and smaller size. - - Daniel (Mar 11 1999) - - Started to change stuff for a move to make libcurl and a more separate - curl application that uses the libcurl. Made the libcurl sources into - the new lib directory while the curl application will remain in src as - before. New makefiles, adjusted configure script and so. - - libcurl.a built quickly and easily. I better make a better interface to - the lib functions though. - - The new root dir include/ is supposed to contain the public information - about the new libcurl. It is a little ugly so far :-) - - - Daniel (Mar 1 1999) - - Todd Kaufmann sent me a good link to Netscape's cookie spec as well as the - info that RFC 2109 specifies how to use them. The link is now in the - README and the RFC in the RESOURCES. - - Daniel (Feb 23 1999) - - Finally made configure accept --with-ssl to look for SSL libs and includes - in the "standard" place /usr/local/ssl... - - Daniel (Feb 22 1999) - - Verified that curl linked fine with OpenSSL 0.9.1c which seems to be - the most recent. - - Henri Gomez (Fri Feb 5 1999) - - Sent in an updated curl-ssl.spec. I still miss the script that builds an - RPM automatically... - -Version 5.5.1 - - Mark Butler (27 Jan 1999) - - Corrected problems in Download(). - - Danitel Stenberg (25 Jan 1999) - - Jeremie Petit pointed out a few flaws in the source that prevented it from - compile warning free with the native compiler under Digital Unix v4.0d. - -Version 5.5 - - Daniel Stenberg (15 Jan 1999) - - Added Bjorns small text to the README about the DICT protocol. - - Daniel Stenberg (11 Jan 1999) - - reported about the win32-versioin: "Doesn't use - ALL_PROXY environment variable". Turned out to be because of the static- - buffer nature of the win32 environment variable calls! - - Bjorn Reese (10 Jan 1999) - - I have attached a simple addition for the DICT protocol (RFC 2229). - It performs dictionary lookups. The output still needs to be better - formatted. - - To test it try (the exact format, and more examples are described in - the RFC) - - dict://dict.org/m:hello - dict://dict.org/m:hello::soundex - - - Vicente Garcia (10 Jan 1999) - - Corrected the progress meter for files larger than 20MB. - - Daniel Stenberg (7 Jan 1999) - - Corrected the -t and -T help texts. They claimed to be FTP only. - -Version 5.4 - - Daniel Stenberg - (7 Jan 1999) - - Irving Wolfe reported that curl -s didn't always supress the progress - reporting. It was the form post that autoamtically always switched it on - again. This is now corrected! - - (4 Jan 1999) - - Andreas Kostyrka suggested I'd add PUT and he helped me out to test it. If - you use -t or -T now on a http or https server, PUT will be used for file - upload. - - I removed the former use of -T with HTTP. I doubt anyone ever really used - that. - - (4 Jan 1999) - - Erik Jacobsen found a width bug in the mprintf() function. I corrected it - now. - - (4 Jan 1999) - - As John V. Chow pointed out to me, curl accepted very limited URL sizes. It - should now accept path parts that are up to at least 4096 bytes. - - - Somehow I screwed up when applying the AIX fix from Gilbert Ramirez, so - I redid that now. - -Version 5.3a (win32 only) - - Troy Engel - - Corrected a win32 bug in the environment variable part. - -Version 5.3 - - Gilbert Ramirez Jr. (21 Dec 1998) - - I have implemented the "quote" function of FTP clients. It allows you to - send arbitrary commands to the remote FTP server. I chose the -Q/--quote - command-line arguments. - - You can have more than one quoted string, and curl will apply them in - order. This is what I use for my MVS upload: - - curl -B --crlf -Q "site lrecl=80" -Q "site blk=8000" -T file ftp://os390/test - - Curl will send the two quoted "site" commands in the proper order. - - - Made it compile smoothly on AIX. - - Gilbert Ramirez Jr. (18 Dec 1998) - - Brought an MVS patch: -3/--mvs, for ftp upload to the MVS ftp server. - - Troy Engel (17 Dec 1998) - - Brought a correction that fixes the win32 curl bug. - - Daniel Stenberg - - A bug, pointed out to me by Dr H. T. Leung, caused curl to crash on the -A - flag on certain systems. Actually, all systems should've! - - - Added a few defines to make directories/file names get build nicer (with _ - instead of . and \ instead of / in win32). - - - steve reported a weird bug that occured if the - ftp server response line had a parenthesis on the line before the (size) - info. I hope it works better now! - -Version 5.2.1 - - Steven G. Johnson (Dec 14, 1998) - - Brought a fix that corrected a crash in 5.2 due to bad treatment of the - environment variables. - -Version 5.2 - - Daniel Stenberg (Dec 14, 1998) - - Rewrote the mkhelp script and now, the mkhelp.pl script generates the - hugehelp.c file from the README *and* the man page file curl.1. By using - both files, I no longer need to have double information in both the man - page and the README as well. So, win32-users will only have the hugehelp.c - file for all info, but then, they download the plain binary most times - anyway. - - - gcc2.8.1 with the -Wall flag complaints a lot on subscript has type `char' - if I don't explicitly typecast the argument to isdigit() or isspace() to - int. So I did to compile warning free with that too. - - - Added checks for 'long double' and 'long long' in the configure script. I - need those for the mprintf.c source to compile well on non long long - comforming systems! - -Version 5.1 (not publicly released) - - Daniel Stenberg (Dec 10, 1998) - - I got a request for a pre-compiled NT Alpha version. Anyone? - - - Added Lynx/CERN www lib proxy environment variable support. That means curl - now reads and understands the following environment variables: - - HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY - - They should be set for protocol-specific proxies. General proxy should be - set with - - ALL_PROXY - - And a comma-separated list of host names that shouldn't go through any - proxy is set in (only an asterisk, '*' matches all hosts). - - NO_PROXY - - The usage of the -x/--proxy flag overrides the environment variables. - - - Proxy can now be specified with a procotol:// prefix. - - - Wrote the curl.1 man page. - - - Introduced a whole new dynamic buffer system for all sprintf()s. It is - based on the *printf() package by yours truly and Bjorn Reese. Hopefully, - there aren't that many buffer overflow risks left now. - - - Ah, I should mention I've compiled and built curl successfully under - solaris 2.6 with gcc now, gcc 2.7.2 won't work but 2.8.1 did ok. - - Oren Tirosh (Dec 3, 1998) - - Brought two .spec files, to use when creating (Linux) Redhat style RPM - packages. They're named curl.spec and curl-ssl.spec. - - Troy Engel - - Supplied the src/Makefile.vc6 for easy compiling with VC++ under Win32. - -Version 5.0 - - Daniel Stenberg (Dec 1, 1998) - - Not a single bug report in ages. - - Corrected getpass.c and main.c to compile warning and error free with the - Win32 VC++ crap. - -Version 5.0 beta 24 - - Daniel Stenberg (Nov 20, 1998) - - HOW TO BUILD A RELEASE ARCHIVE: - - * Pre-requisite software: - What To build what Reads data from - ==== ============= =============== - GNU automake Makefile.in, aclocal.m4 configure.in - GNU make(1) - " - - GNU gcc(1) - " - - GNU autoconf configure configure.in - GNU autoheader(2) config.h.in configure.in, acconfig.h - - * Make sure all files that should be part of the archive are put in FILES. - - * Run './maketgz' and enter version number of the new to become archive. - - maketgz does: - - - Enters the newly created version number in url.h. - - (If you don't have automake, this script will warn about that, but unless - you have changed the Makefile.am files, that is nothing to care about.) - If you have it, it'll run it. - - If you have autoconf, the configure.in will be edited to get the newly - created version number and autoconf will be run. - - Creates a new directory named curl-. (Actually, it uses the base - name of the current directory up to the first '-'.) - - Copies all files mentioned in FILES to the new directory. Saving - permissions and directory structure. - - Uses tar to create an archive of it all, named curl-.tar.gz - - gzips the archive - - Removes the new directory and all its contents. - - * When done, you have an archive stored in your directory named - curl-.tar.gz. - - Done! - - (1) They're required to make automake run properly. - (2) It is distributed as a part of the GNU autoconf archive. - - Daniel Stenberg (Nov 18, 1998) - - I changed the TAG-system. If you ever used urlget() from this package in - another product, you need to recompile with the new headers. I did this - new stuff to better deal with different compilers and system with different - variable sizes. I think it makes it a little more portable. This proves - to compile warning free with the problematic IRIX compiler! - - Win32 compiled with a silly error. Corrected now. - - Brian Chaplin reported yet another problem in - multiline FTP responses. I've tried to correct it. I mailed him a new - version and I hope he gets back soon with positive feedback! - - Improved the 'maketgz' to create a temporary directory tree which it makes - an archive from instead of the previous renaming of the current one. - - Mailing list opened (see README). - - Made -v more verbose on the PASV section of ftp transfers. Now it tells - host name and IP of the new host (and port number). I also added a section - about PORT vs PASV in the README. - -Version 5.0 beta 21 - - Angus Mackay (Nov 15, 1998) - - Introduced automake stuff. - - Daniel Stenberg (Nov 13, 1998) - - Just made a successful GET of a document from an SSL-server using my own - private certificate for authentication! The certificate has to be in PEM - format. You do that the easiest way (although not *that* easy) by - downloading the SSLyeay PKCS#12-patch by Dr Stephen N. Henson from his site - at: http://www.drh-consultancy.demon.co.uk/. Using his tool, you can - convert any modern Netscape or (even) MSIE certificate to PEM-format. Use - it with 'curl -E https://site.com'. If this isn't a - cool feature, then I don't know what cool features look like! ;-) - - Working slowly on telnet connections. #define TRY_TELNET to try it out. - (curl -u user:passwd "telnet://host.com/cat .login" is one example) I do - have problem to define how it should work. The prime purpose for this must - be to get (8bit clean) files via telnet, and it really isn't that easy to - get files this way. Still having problems with \n being converted to \r\n. - - Angus Mackay (Nov 12, 1998) - - Corrected another bug in the long parameter name parser. - - Modified getpass.c (NOTE: see the special licensing in the top of that - source file). - - Daniel Stenberg (Nov 12, 1998) - - We may have removed the silly warnings from url.c when compiled under IRIX. - Thanks again to Bjorn Reese and Martin Staael. - - Wrote formfind.pl which is a new perl script intended to help you find out - how a FORM submission should be done. This needs a little more work to get - really good. - - Daniel Stenberg (Nov 11, 1998) - - Made the HTTP header-checker accept white spaces before the HTTP/1.? line. - Appearantly some proxies/sites add such at times (my test proxy did when I - downloaded a gopher page with it)! - - Moved the former -h to -M and made -h show the short help text instead. I - had to enable a forced help text option. Now an even shorter help text will - be presented when an unknown option and similar, is used. - - stdcheaders.h didn't work with IRIX 6.4 native cc compiler. I hope my - changes don't make other versions go nuts instead. - - Daniel Stenberg (Nov 10, 1998) - - Added a weird check in the configure script to check for the silly AIX - warnings about my #define strcasecmp() stuff. I do that define to prevent - me and other contributors to accidentaly use that function name instead - of strequal()... - - I bugfixed Angus's getpass.c very little. - - Fixed the verbose flag names to getopt-style, i.e 'curl --loc' will be - sufficient instead of --location as "loc" is a unique prefix. Also, anything - after a '--' is treated as an URL. So if you do have a host with a weeeird - name you can do 'curl -- -host.com'. - - Another getopt-adjust; curl now accepts flags after the URL on the command - line. 'curl www.foo.com -O' is perfectly valid. - - Corrected the .curlrc parser so that strtok() is no longer used and I - believe it works better. Even URLs can be specified in it now. - - Angus Mackay (Nov 9, 1998) - - Replaced getpass.c with a newly written one, not under GPL license - - Changed OS to a #define in config.h instead of compiler flag - - Makefile now uses -DHAVE_CONFIG_H - - Daniel Stenberg (Nov 9, 1998) - - Ok, I expanded the tgz-target to update the version string on each occation - I build a release archive! - - I reacted on Angus Mackay's initiative and remade the parameter parser to - be more getopt compliant. Curl now supports "merged" flags as in - curl -lsv ftp.site.com - Do note that I had to move three short-names of the options. Parameters - that needs an additional string such as -x must be stand-alone or the - last in a merged sequence: - curl -lsx my-proxy ftp.site.com - is ok, but using the flags in a different order like '-lxs' would cause - unexpected results (as the 's' option would be skipped). - - I've changed the headers in all files that are subject to the MozPL - license, as they are supposed to look like when conforming. - - Made the configure script make the config.h. The former config.h is now - setup.h. - - The RESOURCES and TODO files have been added to the archive. - - Angus Mackay (Nov 5, 1998) - - Fixed getpass.c and various configure stuff - - Daniel Stenberg (Nov 3, 1998) - - Use -H/--header for custom HTTP-headers. Lets you pass on your own - specified headers to the remote server. I wouldn't recommend trying to use - a header with a defined usage according to standards. Use this flag once - for every custom header you want to add. - - Use -B/--ftp-ascii to force ftp to use ASCII mode when transfering files. - - Corrected the 'getlinks.pl' script, I accidentally left my silly proxy - usage in there! Since the introduction of the .curlrc file, it is easier to - write scripts that use curl since proxies and stuff should be in the - .curlrc file anyway. - - Introducing the new -F flag for HTTP POST. It supports multipart/form-data - which means it is gonna be possible to upload files etc through HTTP POST. - Shiraz Kanga asked for the feature and my brother, - Björn Stenberg helped me design the user - interface for this beast. This feature requires quite some docs, - since it has turned out not only quite capable, but also complicated! :-) - - A note here, since I've received mail about it. SSLeay versions prior to - 0.8 will *not* work with curl! - - Wil Langford reported a bug that occurred since curl - did not properly use CRLF when issuing ftp commands. I fixed it. - - Rearranged the order config files are read. .curlrc is now *always* read - first and before the command line flags. -K config files then act as - additional config items. - - Use -q AS THE FIRST OPTION specified to prevent .curlrc from being read. - - You can now disable a proxy by using -x "". Useful if the .curlrc file - specifies a proxy and you wanna fetch something without going through - that. - - I'm thinking of dropping the -p support. Its really not useful since ports - could (and should?) be specified as : appended on the host name - instead, both in URLs and to proxy host names. - - Martin Staael reports curl -L bugs under Windows NT - (test with URL http://come.to/scsde). This bug is not present in this - version anymore. - - Added support for the weird FTP URL type= thing. You can download a file - using ASCII transfer by appending ";type=A" to the right of it. Other - available types are type=D for dir-list (NLST) and type=I for binary - transfer. I can't say I've ever seen anyone use this kind of URL though! - :-) - - Troy Engel pointed out a bug in my getenv("HOME") - usage for win32 systems. I introduce getenv.c to better cope with - this. Mr Engel helps me with the details around that... - - A little note to myself and others, I should make the win32-binary built - with SSL support... - - Ryan Nelson sent me comments about building curl - with SSL under FreeBSD. See the Makefile for details. Using the configure - script, it should work better and automatically now... - - Cleaned up in the port number mess in the source. No longer stores and uses - proxy port number separate from normal port number. - - 'configure' script working. Confirmed compiles on: - Host SSL Compiler - SunOS 5.5 no gcc - SunOS 5.5.1 yes gcc - SunOS 5.6 no cc (with gcc, it has the "gcc include files" problem) - SunOS 4.1.3 no gcc (without ANSI C headers) - SunOS 4.1.2 no gcc (native compiler failed) - Linux 2.0.18 no gcc - Linux 2.0.32 yes gcc - Linux 2.0.35 no gcc (with glibc) - IRIX 6.2 no gcc (cc compiles generate a few warnings) - IRIX 6.4 no cc (generated warnings though) - Win32 no Borland - OSF4.0 no ? - - - Ooops. The 5beta (and 4.10) under win32 failed if the HOME variable wasn't - set. - - When using a proxy, curl now guesses and uses the protocol part in cases - like: - curl -x proxy:80 www.site.com - Proxies normally go nuts unless http:// is prepended to the host name, so - if curl is used like this, it guesses protocol and appends the protocol - string before passing it to the proxy. It already did this when used - without proxy. - - Better port usage with SSL through proxy now. If you specified a different - https-port when accessing through a proxy, it didn't use that number - correctly. I also rewrote the code that parses the stuff read from the - proxy when you wanna connect through it with SSL. - - Bjorn Reese helped me work around one of the compiler - warnings on IRIX native cc compiles. - -Version 4.10 (Oct 26, 1998) - Daniel Stenberg - - John A. Bristor suggested a config file switch, - and since I've been having that idea kind of in the background for a long - time I rewrote the parameter parsing function a little and now I introduce - the -K/--config flag. I also made curl *always* (unless -K is used) try to - load the .curlrc file for command line parameters. The syntax for the - config file is the standard command line argument style. Details in 'curl - -h' or the README. - - I removed the -k option. Keep-alive isn't really anything anyone would - want to enable with curl anyway. - - Martin Staael helped me add the 'irix' target. Now - "make irix" should build curl successfully on non-gcc SGI machines. - - Single switches now toggle behaviours. I.e if you use -v -v the second - will switch off the verbose mode the first one enabled. This is so that - you can disable a default setting a .curlrc file enables etc. - -Version 4.9 (Oct 7, 1998) - Daniel Stenberg - - Martin Staael suggested curl would support cookies. - I added -b/--cookie to enable free-text cookie data to be passed. There's - also a little blurb about general cookie stuff in the README/help text. - - dmh suggested HTTP resume capabilities. Although you could - manually get curl to resume HTTP documents, I made the -c resume flag work - for HTTP too (unless -r is used too, which would be very odd anyway). - - Added checklinks.pl to the archive. It is a still experimental perl script - that checks all links of a web page by using curl. - - Rearranged the archive hierarchy a little. Build the executable in the - src/ dir from now on! - - Version 4.9 and hereafter, is no longer released under the GPL license. - I have now updated the LEGAL file etc and now this is released using the - Mozilla Public License to avoid the plague known as "the GPL virus". You - must make the source available if you decide to change and/or redistribute - curl, but if you decide to use curl within something else you do not need - to offer the world the source to that too. - - Curl did not like HTTP servers that sent no headers at all on a GET - request. It is a violation of RFC2068 but appearantly some servers do - that anyway. Thanks to Gordon Beaton for the report! - - -L/--location was added after a suggestion from Martin Staael. This makes - curl ATTEMPT to follow the Location: redirect if one is present in the HTTP - headers. If -i or -I is used with this flag, you will see headers from all - sites the Location: points to. Do note that the first server can point to a - second that points to a third etc. It seems the Location: parameter (said - to be an AbsoluteURI in RFC2068) isn't always absolute.. :-/ Anyway, I've - made curl ATTEMPT to do the best it can to deal with the reality. - - Added getlinks.pl to the archive. getlinks.pl selectively downloads - files that a web page links to. - -Version 4.8.4 - Daniel Stenberg - - As Julian Romero Nieto reported, curl reported wrong version number. - - As Teemu Yli-Elsila pointed out, the win32 version of 4.8 (and probably all - other versions for win32) didn't work with binary files since I'm too used - to the UNIX style fopen() where binary and text don't differ... - - Ralph Beckmann brought me some changes that lets curl compile error and - warning free with -Wall -pedantic with g++. I also took the opportunity to - clean off some unused variables and similar. - - Ralph Beckmann made me aware of a really odd bug now corrected. When curl - read a set of headers from a HTTP server, divided into more than one read - and the first read showed a full line *exactly* (i.e ending with a - newline), curl did not behave well. - -Version 4.8.3 - Daniel Stenberg - - I was too quick to release 4.8.2 with too little testing. One of the - changes is now reverted slightly to the 4.8.1 way since 4.8.2 couldn't - upload files. I still think both problems corrected in 4.8.2 remain - corrected. Reported by Julian Romero Nieto. - -Version 4.8.2 - Daniel Stenberg - - Bernhard Iselborn reported two FTP protocol errors curl did. They're now - corrected. Both appeared when getting files from a MS FTP server! :-) - -Version 4.8.1 - Daniel Stenberg - - Added a last update of the progress meter when the transfer is done. The - final output on the screen didn't have to be the final size transfered - which made it sometimes look odd. - - Thanks to David Long I got rid of a silly bug that happened if a HTTP-page - had nothing but header. Appearantly Solaris deals with negative sizes in - fwrite() calls a lot better than Linux does... =B-] - -Version 4.8 - Daniel Stenberg - - Continue FTP file transfer. -c is the switch. Note that you need to - specify a file name if you wanna resume a download (you can't resume a - download sent to stdout). Resuming upload may be limited by the server - since curl is then using the non-RFC959 command SIZE to get the size of - the target file before upload begins (to figure out which offset to - use). Use -C to specify the offset yourself! -C is handy if you're doing - the output to something else but a plain file or when you just want to get - the end of a file. - - recursiveftpget.pl now features a maximum recursive level argument. - -Version 4.7 - Daniel Stenberg - - Added support to abort a download if the speed is below a certain amount - (speed-limit) bytes per second for a certain (speed-time) time. - - Wrote a perl script 'recursiveftpget.pl' to recursively use curl to get a - whole ftp directory tree. It is meant as an example of how curl can be - used. I agree it isn't the wisest thing to do to make a separate new - connection for each file and directory for this. - -Version 4.6 - Daniel Stenberg - - Added a first attempt to optionally parse the .netrc file for login user - and password. If used with http, it enables user authentication. -n is - the new switch. - - Removed the extra newlines on the default user-agent string. - - Corrected the missing ftp upload error messages when it failed without the - verbose flag set. Gary W. Swearingen found it. - - Now using alarm() to enable second-precision timeout even on the name - resolving/connecting phase. The timeout is although reset after that first - sequence. (This should be corrected.) Gary W. Swearingen reported. - - Now spells "Unknown" properly, as in "Unknown option 'z'"... :-) - - Added bug report email address in the README. - - Added a "current speed" field to the progress meter. It shows the average - speed the last 5 seconds. The other speed field shows the average speed of - the entire transfer so far. - -Version 4.5.1 - Linas Vepstas - - SSL through proxy fix - - Added -A to allow User-Agent: changes - - Daniel Stenberg - - Made the -A work when SSL-through-proxy. - -Version 4.5 - Linas Vepstas - - More SSL corrections - - I've added a port to AIX. - - running SSL through a proxy causes a chunk of code to be executred twice. - one of those blocks needs to be deleted. - - Daniel Stenberg - - Made -i and -I work again - -Version 4.4 - Linas Vepstas - - -x can now also specify proxyport when used as in 'proxyhost:proxyport' - - SSL fixes - -Version 4.3 - Daniel Stenberg - - Adjusted to compile under win32 (VisualC++ 5). The -P switch does not - support network interface names in win32. I couldn't figure out how! - -Version 4.2 - Linas Vepstas / Sampo Kellomaki - - Added SSL / SSLeay support (https://) - - Added the -T usage for HTTP POST. - - Daniel Stenberg - - Bugfixed the SSL implementation. - - Made -P a lot better to use other IP addresses. It now accepts a following - parameter that can be either - interface - i.e "eth0" to specify which interface's IP address you - want to use - IP address - i.e "192.168.10.1" to specify exact IP number - host name - i.e "my.host.domain" to specify machine - "-" - (any single-letter string) to make it pick the machine's - default - - The Makefile is now ready to compile for solaris, sunos4 and linux right - out of the box. - - Better generated version string seen with 'curl -V' - -Version 4.1 - Daniel Stenberg - - The IP number returned by the ftp server as a reply to PASV does no longer - have to DNS resolve. In fact, no IP-number-only addresses have to anymore. - - Binds better to available port when -P is used. - - Now LISTs ./ instead of / when used as in ftp://ftp.funet.fi/. The reason - for this is that exactly that site, ftp.funet.fi, does not allow LIST / - while LIST ./ is fine. Any objections? - -Version 4 (1998-03-20) - Daniel Stenberg - - I took another huge step and changed both version number and project name! - The reason for the new name is that there are just one too many programs - named urlget already and this program already can a lot more than merely - getting URLs, and the reason for the version number is that I did add the - pretty big change in -P and since I changed name I wanted to start with - something fresh! - - The --style flags are working better now. - - Listing directories with FTP often reported that the file transfer was - incomplete. Wrong assumptions were too common for directories, why no - size will be attempted to get compared on them from now on. - - Implemented the -P flag that let's the ftp control issue a PORT command - instead of the standard PASV. - - -a for appending FTP uploads works. - -*************************************************************************** - -Version 3.12 (14 March 1998) - Daniel Stenberg - - End-of-header tracking still lacked support for \r\n or just \n at the - end of the last header line. - Sergio Barresi - - Added PROXY authentication. - Rafael Sagula - - Fixed some little bugs. - -Version 3.11 - Daniel Stenberg - - The header parsing was still not correct since the 3.2 modification... - -Version 3.10 - Daniel Stenberg - - 3.7 and 3.9 were simultaneously developed and merged into this version. - - FTP upload did not work correctly since 3.2. - -Version 3.9 - Rafael Sagula - - Added the "-e / --referer " option where we can specify - the referer page. Obviously, this is necessary only to fool the - server, but... - -Version 3.7 - Daniel Stenberg - - Now checks the last error code sent from the ftp server after a file has - been received or uploaded. Wasn't done previously. - - When 'urlget ' is used without a 'protocol://' first in the host part, - it now checks for host names starting with ftp or gopher and if it does, - it uses that protocol by default instead of http. - -Version 3.6 - Daniel Stenberg - - Silly mistake made the POST bug. This has now also been tested to work with - proxy. - -Version 3.5 - Daniel Stenberg - - Highly inspired by Rafael Sagula's changes to the 3.1 that added an almost - functional POST, I applied his changes into this version and made them work. - (It seems POST requires the Content-Type and Content-Length headers.) It is - now usable with the -d switch. - -Version 3.3 - 3.4 - Passed to avoid confusions - -Version 3.2 - Daniel Stenberg - - Major rewrite of two crucial parts of this code: upload and download. - They are both now using a select() switch, that allows much better - progress meter and time control. - - alarm() usage removed completely - - FTP get can now list directory contents if the path ends with a slash '/'. - Urlget on a ftp-path that doesn't end with a slash means urlget will - attempt getting it as a file name. - - FTP directory view supports -l for "list-only" which lists the file names - only. - - All operations support -m for max time usage in seconds allowed. - - FTP upload now allows the size of the uploaded file to be provided, and - thus it can better check it actually uploaded the whole file. It also - makes the progress meter for uploads much better! - - Made the parameter parsing fail in cases like 'urlget -r 900' which - previously tried to connect to the host named '900'. - -Version 3.1 - Kjell Ericson - - Pointed out how to correct the 3 warnings in win32-compiles. - - Daniel Stenberg - - Removed all calls to exit(). - - Made the short help text get written to stdout instead of stderr. - - Made this file instead of keeping these comments in the source. - - Made two callback hooks, that enable external programs to use urlget() - easier and to grab the output/offer the input easier. - - It is evident that Win32-compiles are painful. I watched the output from - the Borland C++ v5 and it was awful. Just ignore all those warnings. - -Version 3.0 - Daniel Stenberg - - Added FTP upload capabilities. The name urlget gets a bit silly now - when we can put too... =) - - Restructured the source quite a lot. - Changed the urlget() interface. This way, we will survive changes much - better. New features can come and old can be removed without us needing - to change the interface. I've written a small explanation in urlget.h - that explains it. - - New flags include -t, -T, -O and -h. The -h text is generated by the new - mkhelp script. - -Version 2.9 - Remco van Hooff - - Added a fix to make it compile smoothly on Amiga using the SAS/C - compiler. - - Daniel Stenberg - - Believe it or not, but the STUPID Novell web server seems to require - that the Host: keyword is used, so well I use it and I (re-introduce) the - urlget User-Agent:. I still have to check that this Host: usage works with - proxies... 'Host:' is required for HTTP/1.1 GET according to RFC2068. - -Version 2.8 - Rafael Sagula - - some little modifications - -Version 2.7 - Daniel Stenberg - - Removed the -l option and introduced the -f option instead. Now I'll - rewrite the former -l kludge in an external script that'll use urlget to - fetch multipart files like that. - - '-f' is introduced, it means Fail without output in case of HTTP server - errors (return code >=300). - - Added support for -r, ranges. Specify which part of a document you - want, and only that part is returned. Only with HTTP/1.1-servers. - - Split up the source in 3 parts. Now all pure URL functions are in - urlget.c and stuff that deals with the stand-alone program is in main.c. - - I took a few minutes and wrote an embryo of a README file to explain - a few things. - -Version 2.6 - Daniel Stenberg - - Made the -l (loop) thing use the new CONF_FAILONERROR which makes - urlget() return error code if non-successful. It also won't output anything - then. Now finally removed the HTTP 1.0 and error 404 dependencies. - - Added -I which uses the HEAD request to get the header only from a - http-server. - -Version 2.5 - Rafael Sagula - - Made the progress meter use HHH:MM:SS instead of only seconds. - -Version 2.4 - Daniel Stenberg - - Added progress meter. It appears when downloading > BUFFER SIZE and - mute is not selected. I found out that when downloading large files from - really really slow sites, it is desirable to know the status of the - download. Do note that some downloads are done unawaring of the size, which - makes the progress meter less thrilling ;) If the output is sent to a tty, - the progress meter is shut off. - - Increased buffer size used for reading. - - Added length checks in the user+passwd parsing. - - Made it grok user+passwd for HTTP fetches. The trick is to base64 - encode the user+passwd and send an extra header line. Read chapter 11.1 in - RFC2068 for details. I added it to be used just like the ftp one. To get a - http document from a place that requires user and password, use an URL - like: - - http://user:passwd@www.site.to.leach/doc.html - - I also added the -u flag, since WHEN USING A PROXY YOU CAN'T SPECIFY THE - USER AND PASSWORD WITH HTTP LIKE THAT. The -u flag works for ftp too, but - not if used with proxy. To do the same as the above one, you can invoke: - - urlget -u user:passwd http://www.site.to.leach/doc.html - -Version 2.3 - Rafael Sagula - - Added "-o" option (output file) - - Added URG_HTTP_NOT_FOUND return code. - (Daniel's note:) - Perhaps we should detect all kinds of errors and instead of writing that - custom string for the particular 404-error, use the error text we actually - get from the server. See further details in RFC2068 (HTTP 1.1 - definition). The current way also relies on a HTTP/1.0 reply, which newer - servers might not do. - - Looping mode ("-l" option). It's easier to get various split files. - (Daniel's note:) - Use it like 'urlget -l 1 http://from.this.site/file%d.html', which will - make urlget to attempt to fetch all files named file1.html, file2.html etc - until no more files are found. This is only a modification of the - STAND_ALONE part, nothing in the urlget() function was modfified for this. - Daniel Stenberg - - Changed the -h to be -i instead. -h should be preserved to help use. - - Bjorn Reese indicated that Borland _might_ use '_WIN32' instead of the - VC++ WIN32 define and therefore I added a little fix for that. - -Version 2.2 - Johan Andersson - - The urlget function didn't set the path to url when using proxy. - - Fixed bug with IMC proxy. Now using (almost) complete GET command. - - Daniel Stenberg - - Made it compile on Solaris. Had to reorganize the includes a bit. - (so Win32, Linux, SunOS 4 and Solaris 2 compile fine.) - - Made Johan's keepalive keyword optional with the -k flag (since it - makes a lot of urlgets take a lot longer time). - - Made a '-h' switch in case you want the HTTP-header in the output. - -Version 2.1 - Daniel Stenberg and Kjell Ericson - - Win32-compilable - - No more global variables - - Mute option (no output at all to stderr) - - Full range of return codes from urlget(), which is now written to be a - function for easy-to-use in [other] programs. - - Define STAND_ALONE to compile the stand alone urlget program - - Now compiles with gcc options -ansi -Wall -pedantic ;) - -Version 2.0 - - Introducing ftp GET support. The FTP URL type is recognized and used. - - Renamed the project to 'urlget'. - - Supports the user+passwd in the FTP URL (otherwise it tries anonymous - login with a weird email address as password). - -Version 1.5 - Daniel Stenberg - - The skip_header() crap messed it up big-time. By simply removing that - one we can all of a sudden download anything ;) - - No longer requires a trailing slash on the URLs. - - If the given URL isn't prefixed with 'http://', HTTP is assumed and - given a try! - - 'void main()' is history. - -Version 1.4 - Daniel Stenberg - - The gopher source used the ppath variable instead of path which could - lead to disaster. - -Version 1.3 - Daniel Stenberg - - Well, I added a lame text about the time it took to get the data. I also - fought against Johan to prevent his -f option (to specify a file name - that should be written instead of stdout)! =) - - Made it write 'connection refused' for that particular connect() - problem. - - Renumbered the version. Let's not make silly 1.0.X versions, this is - a plain 1.3 instead. - -Version 1.2 - Johan Andersson - - Discovered and fixed the problem with getting binary files. puts() is - now replaced with fwrite(). (Daniel's note: this also fixed the buffer - overwrite problem I found in the previous version.) - - Rafael Sagula - - Let "-p" before "-x". - - Daniel Stenberg - - Bugfixed the proxy usage. It should *NOT* use nor strip the port number - from the URL but simply pass that information to the proxy. This also - made the user/password fields possible to use in proxy [ftp-] URLs. - (like in ftp://user:password@ftp.my.site:8021/README) - - Johan Andersson - - Implemented HTTP proxy support. - - Receive byte counter added. - - Bjorn Reese - - Implemented URLs (and skipped the old syntax). - - Output is written to stdout, so to achieve the above example, do: - httpget http://143.54.10.6/info_logo.gif > test.gif - -Version 1.1 - Daniel Stenberg - - Adjusted it slightly to accept named hosts on the command line. We - wouldn't wanna use IP numbers for the rest of our lifes, would we? - -Version 1.0 - Rafael Sagula - - Wrote the initial httpget, which started all this!