Skip to content
CHANGES.0 772 KiB
Newer Older
13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324
- T. Bharath pointed out a slightly obscure cookie engine flaw.

- Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
  204-replies never provides a response-body. This resulted in bad persistant
  behavior when 204 was received.

Daniel (5 January 2002)
- SM updated the VC++ library Makefiles for the new source files.

Daniel (4 January 2002)
- I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
  two places in the source code). One happened with VERBOSE set on connects,
  and the other when VERBOSE was on and krb4 over nat was used... I honestly
  don't think anyone has suffered from these mistakes.

- I replaced a lot of silly occurances of printf() to instead use the more
  appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
  affected.

- Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
  sparc on solaris 8).

- After discussions on the libcurl list with Raoul Cridlig, I just made FTP
  response lines get passed to the header callback if such a one is
  registered. It'll make it possible for any application to get all the
  responses an FTP server sends to libcurl.

Daniel (3 January 2002)
- Sterling Hughes brought a few buckets of code. Now, libcurl will
  automatically cache DNS lookups and re-use the previous results first if any
  such is available. It greatly improves speed when doing many repeated
  operations to the same host.

- As the test case uses --include and then --head, I had to modify src/main.c
  to deal with this situation slightly better than previously. When done, we
  have 100% good tests again in the main branch.

Daniel (2 January 2002)
- Made test case 25 run again in the multi-dev branch. But it seems that the
  changes done on dec-20 made test case 104 cease to work (in both branches).

- Philip Gladstone pointed out a few portability problems in the source code
  that didn't compile on 64-bit sparcs using Sun's native compiler.
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.

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.

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)
- Added --disable-epsv as an option. When used, curl won't attempt to use the
  EPSV command when doing passive FTP downloads. Wrote a test case for it.

- Eric provided a few more fixes for building on Macs. He also pointed out
  a flaw in the signal handler restoration code.

Daniel (28 November 2001)
- Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
  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.

- 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 (27 November 2001)
- 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.

- 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 (26 November 2001)
- Robert Schlabbach had problems to understand how to do resumed transfers,
  and I clarified the man page -C section somewhat.

Version 7.9.2-pre5

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
  run in the Makefile.dist file (that appears as root Makefile in release
  archives).

- Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS
  (non-X).

- Kevin Roth modified the cygwin files once again, now to build against the
  shared OpenSSL DLLs.

Version 7.9.2-pre4

Daniel (20 November 2001)
- Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME,
  complete with man page updates!

Daniel (19 November 2001)
- Miklos Nemeth provided details enough to update the Borland makefile
  properly.

- Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm
  amazed we never saw this before!

- Kevin Roth patched the cygwin Makfile.

Daniel (16 November 2001)
- Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing
  HTTP.

Version 7.9.2-pre3

Daniel (14 November 2001)
- Samuel Listopad patched away the problem with SSL we got when someone call
  curl_global_init() => curl_global_cleanup() => curl_global_init(). The
  second init would not "take" and SSL would be unusable with curl from that
  point. This doesn't change the fact that calling the functions that way is
  wrong. curl_global_init() should be called exactly once and not more.

Daniel (13 November 2001)
- Fixed some minor variable type mixups in ftp.c that caused compiler warnings
  on HP-UX 11.00.

- The FTP fix I did yesterday used an uninitialized variable that caused
  spurious errors when doing FTP.

Version 7.9.2-pre2

Daniel (12 November 2001)
- Ricardo Cadime fell over a multiple-requests problem when first a FTP
  directory fetch failed and then a second request is made after that. The
  second request happened to get the FTP server response back from the
  previous request, when it did its initial CWD command.

- Bjorn Reese pointed out that we could improve the time diff function to
  prevent truncation a bit.

- Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't
  work for plain HTTP requests! So I made that work.

Version 7.9.2-pre1

Daniel (12 November 2001)
- Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot
  faster, it should also support such ("broken") proxies that John Lask
  previously have reported problems with. His proxy sends a trailing zero byte
  after the end of the (proxy-) headers. I've tested this myself and it seems
  to work on a proxy the previous version also worked with...! This rewrite is
  due to the problems John Lask previously experienced.

- Andrés García found out why the "current speed" meter sometimes showed 2048K
  for very quick transfers. It turned out the "time diff"-function returned a
  zero millisecond diff. We now always say it is at least one millisecond! In
  reality, these timers very rarely have that good resolution so even though
  the time diff was longer than 1 millisecond, it was reported as no diff.

- I also modified the getinfo() again when returning times, as Paul Harrington
  reports that 7.9.1 only returns times with 1 second accuracy, which indeed
  is wrong.

Daniel (8 November 2001)
- Marcus Webster found out that curl_formadd() could read one byte outside a
  buffer boundary, which then of course could lead to a crash. Marcus also
  gracefully provided a patch for this this.

- Glen Scott ran configure on his Cobalt Qube and it didn't figure out the
  correct way of calling gethostbyname_r() and thus failed to resolve hosts.
  This is two errors: it shouldn't continue the configure script if it finds
  gethostbyname_r() but can't figure out how to use it, and it should really
  figure out how to use it as it was running Linux and we know how that
  works...
Yang Tse's avatar
 
Yang Tse committed

13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702
Daniel (7 November 2001)
- docs/VERSIONS is a new file in the archive that explains the version number
  system we use in the curl project.

- Did some more fixes that now makes libcurl only ignore signals as long as
  it needs to, and then restore (if any) previous signal handler again.

Daniel (6 November 2001)
- Enrik Berkhan posted bug report #478780, in which he very correctly pointed
  out two bad timeout matters in libcurl: we didn't restore the sigaction
  struct (the alarm handler for SIGALRM) nor did we restore the previous
  alarm() timeout that could've been set by a "parent" process or similar.

- Kevin Roth made the cygwin binary get stripped before install.

Daniel (5 November 2001)
- Detlef Schmier reported that curl didn't compile using Solaris 8 with the
  native cc compiler. It was due to a bad function prototype. Fixed now.
  Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds
  though, as gcc then complains like crazy on OpenSSL include files... :-(

- John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking
  to work on all platforms.

- John Lask added the -1/--TLSv1 options that forces SSL into using TLS
  version 1 when speaking HTTPS.

- John Lask brought a brand new VC++ makefile for the lib directory, that
  works a lot better than the previous!

- Ramana Mokkapati brought some clever insights on the LDAP failures (bug
  report #475407), and his suggested changes are now applied.

Version 7.9.1

Daniel (4 November 2001)
- I've added a number of new test cases the last few days. A few of them since
  I got reports that hinted on problems on timeouts, so I added four tests
  with timeouts for all sorts of protocols and stuff. I also came to think of
  a few other error scenarios that we currently didn't test properly, so I
  wrote up tests for a few of those too.

Daniel (2 November 2001)
- Replaced read() and write() with recv() and send() for socket operations
  even under normal unixes.

Daniel (1 November 2001)
- When an FTP transfer was aborted due to a timeout, it wasn't really aware of
  how many bytes that had been transferred and the error text always said 0
  bytes. I modified this to output the actually transferred amount! :-)

- The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also
  added more comments in the lib/ftp.c source file.

- Minor updates to the FAQ, added a brand new section to the web site about
  the name issue (who owns "curl"? will someone sue us? etc etc):
  http://curl.haxx.se/legal/thename.html

Version 7.9.1-pre7

Daniel (31 October 2001)
- The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
  the calculations used longs instead of doubles! Paul Harrington reported.

- The SSL SocketIsDead() checks weren't good enough (as expected really), so I
  had to add a generic internal try-it-out system. If the request on a re-used
  connection seems to fail, then we go back and get a new (fresh) connection
  and re-tries the request on that instead. It kind of makes the
  SocketIsDead() check obsolete, but I think it is a quicker way for those
  cases where it actually discovers that the connection is dead.

- When fixing the above, I noticed that we did quite a few writes to sockets
  in libcurl where we didn't check the return code (that it actually worked to
  send the data). With the new "attempted request" system we must detect those
  situations so I went over a bunch of functions, changed return types and
  added checks for what they actually return.

Version 7.9.1-pre6

Daniel (31 October 2001)
- Paul Harrington detected a problem with persistant SSL connections. Or to be
  more exact, we didn't properly detect that the connection was dead and then
  a second connection would try to re-use it wrongly. The solution to this
  problem is still not very clear and I'm working on it. One OpenSSL insider
  said there is no way to know if the SSL connection is alive or not without
  actually trying an operation.

Daniel (30 October 2001)
- If a cookie was read from a file, it could accidentally strdup() a NULL
  pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26]

- The MANUAL file now documents -t correctly. I also fixed the -T description
  in the curl.1 man page.

Daniel (29 October 2001)
- John Janssen found out that curl_formadd was missing in the libcurl.def file
  and that the docs stated the wrong return type for the function.

- Andrés García found a bug with multiple files in the curl_formadd() function,
  that I removed with this patch [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/formdata.c.diff?r1=1.25&r2=1.26].

- Kevin Roth brought another patch that moved the cygwin package files to the
  packages/Win32/cygwin directory.

- A bug in the connection re-use logic made repeated requests to the same FTP
  server (when using name+pasword in the URL) sometimes use more than one
  connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167]

- Moonesamy tracked down and fixed a problem with the new 7.9.1 connect
  code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release
  (test 19)...
  [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14]

Daniel (26 October 2001)
- Added test28 which verifies that "Location:"-following works even if the
  contents is separated with more than one space.

Daniel (25 October 2001)
- Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the
  correct data has been output.

Version 7.9.1-pre5

Daniel (24 October 2001)
- T. Bharath found a memory leak in the cookie engine. When we update a cookie
  that we already knew about, we lost a chunk of memory in the progress... The
  brand new test case 27 now tests for this occurrence. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.24&r2=1.25]

Daniel (23 October 2001)
- pack_hostent() didn't properly align some pointers, so at least SPARC CPUs
  would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35]

Daniel (22 October 2001)
- Tom Benoist reported that this SGI IRIX compiler didn't handle indented
  preprocessor instructions, so they're no longer in the source code!

- Applied Kevin Roth's patches to make it easier to build cygwin packages from
  the out-of-the-box curl release archives.

- I forgot to mention it below, but libcurl now closes connections that report
  transfer failures. Unconditionally. This could be made more nicely in the
  future if we set a flag or something that the connection is still good to be
  used for the errors that know that for a fact. We have to close the
  connection for the cases where we abort for example a HTTP transfer in the
  middle, or otherwise we might re-use that connection later with lots of data
  still being sent to us on it. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.63&r2=1.64]

Daniel (19 October 2001)
- CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return
  anything, not even a header. test case 37 was added to test for this.

- T. Bharath made curl_easy_duphandle() properly clone the cookie status as
  well.

Version 7.9.1-pre4

Daniel (18 October 2001)
- CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if
  the HTTP return code is below 400.

Daniel (17 October 2001)
- The test suite now kills any running test http server when you re-start the
  tests.

- We had to remove 'use strict' from two perl scripts, as the cygwin
  adjustments didn't play nicely otherwise for some reason. Any perl wizard
  out there who can put the scrict back and still make it run good on unix and
  cygwin?

- A potential memory leak pointed out to us by Yanick Pelletier was removed.
  It would occur when a http file transfer fails. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.60&r2=1.61]

- The memory debugging system should no longer display anything to stderr
  if the curl_memdebug() hasn't been used to explicitly say so. This makes it
  easier to use the memory debug system and switch the logging on/off.

Daniel (16 October 2001)
- Kevin Roth provided fixes for building curl nicer in cygwin environments.

Daniel (12 October 2001)
- Cleaning up the progress meter/info code. The "current speed" is now more
  accurate than before as we now use the true time spent between the measures,
  and not just "assuming" every-second-update like before. The output should
  now also be of the same width at all times, never to show "extra" zeroes on
  the right edge.

- After talking about possible Location: bugs on the mailing list, I modified
  the "absolute URL" checker in lib/transfer.c to be more strict when checking
  if the redirected URL is absolute.

Daniel (11 October 2001)
- Kevin Roth provided patches that make the test suite run fine on Windows
  2000 running cygwin.

Daniel (10 October 2001)
- Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser.
  Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work.

Version 7.9.1-pre3

Daniel (9 October 2001)
- Added a new option to the command line client: -0/--http1.0. It uses the new
  libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0
  requests instead of the default version (1.1). It should only be used if you
  really MUST do that because of a silly remote server.

- Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as
  all public curl-symbols should.

- libcurl now explicitly ignores the SIGPIPE signal.

Daniel (8 October 2001)
- Kevin Roth's change to the cookie-jar comment (in the stored file) was
  applied.

- Lucas Adamski's minor bug in the bind error code failf() was fixed.

Daniel (5 October 2001)
- Moonesamy fixed the Curl_connecthost() function to not give compiler errors
  on a bunch of compilers, due to the argument named 'socket'.

- Moonesamy also provided updated VC++ makefiles and project files.

Version 7.9.1-pre2

Daniel (4 October 2001)
- Albert Chin provided a configure patch that makes the script detect proper
  gethostbyname_r() method without actually running any code, only compiling
  is necessary. This also removes the need of having a resolving 'localhost'
  name.

- Found and removed memory leakage (name resolve data) in libcurl on
  IPv6-enabled hosts. These could sneak through because we didn't have any
  resource tracing on the IPv6-related functions. We do now.

Daniel (3 October 2001)
- Keith McGuigan patched away a (mainly Windows-) problem with the name
  resolver data being kept in the static memory area, which is removed when a
  thread is killed. The curl handle itself though perfectly handles being
  passed between threads.

- Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that
  required an Authorization: header. Now, proxies are not supposed to require
  that header, that is for true servers...

- I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now.

Version 7.9.1-pre1

Daniel (3 October 2001)
- Georg Huettenegger once again made an effort beyond the call of duty and not
  only improved the curl_formadd() function, but also took care of adjusting
  the curl command line client to use this new function instead of the
  obsoleted curl_formparse.

Daniel (2 October 2001)
- Major fix in how libcurl does TCP connects. It now does non-blocking
  connects to enable good timeouts without signals, and it now tries all IP
  addresses for any given host (if it resolves more than one and the first
  one(s) don't connect). Added a new source file 'connect.c' to deal with all
  the TCP connect stuff.

- We now support IPv4-style IP-addresses in rfc2732-format, to better support
  people writing scripts without knowing what address there is.

Daniel (28 September 2001)
- Cleanups in the FTP source code. Divided the code into even more smaller
  functions and generally tried to make the differences between IPv4 and IPv6
  get less noticable in the sources.

- If the remote file time is not readable/accessable/understood by libcurl,
  libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously
  did. This should make curl not touch the file data unless there was a known
  remote date when -R is used.

Daniel (27 September 2001)
- Working on getting non-blocking connects working platform independent. We
  will also make curl try all IPs for a given host if the first one should
  fail.

Daniel (26 September 2001)
- Kevin Roth provided a cookie example that proved the cookie jar
  functionality wasn't working properly. I added test case 46 and made it
  work.

Daniel (25 September 2001)
- Jörn Hartroth updated the mingw32 makefiles.

Version 7.9

Daniel (23 September 2001)
- Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
  when FTP RETR failed.

- Made the FTP upload tests run fine on machines with IPv6 enabled.

Version 7.9-pre8

Daniel (19 September 2001)
- Vojtech Minarik set up a special-purpose test server and provided me with
  test certificates in order for me to repeat the bug reports #440068 and
  #440373. It turned out we didn't check all the error codes properly. We do
  now, and connecting with a unacceptable certificate will make libcurl fail
  to connect with an error code returned.

- Ramana Mokkapati found a case when the Location: following code did wrong.
  I wrote a test case for this (45).

Version 7.9-pre7

Daniel (17 September 2001)
- Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
  winsock 2.0.

Version 7.9-pre6

- libtool 1.4.2 is now in use!

Version 7.9-pre5

Daniel (14 September 2001)
- Added another 14 ftp tests.

Daniel (13 September 2001)
- Added curl_easy_duphandle() to the easy.h header file. It has now been
  tested and proved to work in a real-world tests by T Bharath. We still need
  to write up some docs for this function.

- Added four more ftp tests to the test suite.

Daniel (12 September 2001)
- CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
  --ciphers. Use them to specify a list of ciphers to use in the SSL
  connection.

- T. Bharath found a memory leak in libcurl's windows version. It turned out
  to be the new duphandle() that didn't quite work yet.

Version 7.9-pre4

Daniel (11 September 2001)
- Added verbose output for SSL connections that output the server
  certificate's start and expire dates. As suggested by Paul Harrington.

- Heikki Korpela found problems in the perl ftp server used for the test
  suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
  made, but nothing really certain.

- T. Bharath has experienced problems with libcurl's stack usage on windows
  and works on reducing it.

Daniel (10 September 2001)
- Cris Bailiff fixed the perl interface. It stopped working since the changed
  behavior with WRITEHEADER and NULL pointers.

- The "output cookies" function could dump core if no cookies were enabled.

Daniel (7 September 2001)
- SM pointed out that the SSL code didn't compile any longer if SSL was
  disabled... Also, we needed to correct the #include for the utime stuff on
  windows.

Daniel (6 September 2001)
- T. Bharath pointed out a flaw in the SSL session cache code that made it
  sometimes read from a NULL pointer.

Version 7.9-pre3

Daniel (3 September 2001)
- Added the -R/--remote-time option, that uses the remote file's datestamp to
  set the local file's datestamp. Thus, when you get a remote file your local
  file will get the same time and date. Note that this only works when you use
  -o or -O.

- Installed libtool 1.4.1, libtoolized and everything.

Daniel (1 September 2001)
Yang Tse's avatar
 
Yang Tse committed
- Heikki Korpela pointed out that I did not ship the proper libtool stuff in
13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000
  the pre-releases, even though that was my intention. libtoolize has now
  been re-run.

- Heikki also patched away the bad use of 'make -C' in the test suite
  makefile. make -C is not very portable and is now banned from here.

Version 7.9-pre2

Daniel (31 August 2001)
- I just made a huge internal struct rehaul, and all the big internally used
  structs have been renamed, redesigned and stuff have been moved around a bit
  to make the source easier to follow, more logically grouped and to hopefully
  decrease future bugs. I also hope that this will make new functions to get
  easier to add, and make it less likely that we have bugs left like the URL-
  free bug from August 23.

Version 7.9-pre1

Daniel (29 August 2001)
- The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
  that to specify the file name in which you want to have all cookies curl
  knows of, dumped to. It'll be written using the netscape cookie format.

  This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
  which in turn dumps this information when curl_easy_cleanup() is invoked.
  There might be reasons to re-consider my choice of putting it there. Perhaps
  it is better placed to get done just before *_perform() is done. It is all
  of course depending on how you guys want to use this feature...

- Added ftpupload.c in the source examples section, based on source code posted
  by Erick Nuwendam.

Daniel (28 August 2001)
- Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
  on OpenBSD and hopefully on FreeBSD as well!

- Georg Huettenegger modified the curl_formadd() functionality slightly, and
  added support for error code 417 when doing form post and using the Expect:
  header. Great work!

- Made some tests with cached SSL session IDs, and they seem to work. There
  should be a significant speed improvement in the SSL connection phase, but
  in my tiny tests it just isn't possible to notice any difference. Like other
  caching in libcurl, you must reuse the same handle for the caching to take
  effect. SSL session ID caching is done on a per host-name and destination
  port number basis.

  Set verbose, and you'll get informational tests when libcurl detects and
  uses a previous SSL session ID.

- Upgraded to automake 1.5 on my development/release machine.

Daniel (27 August 2001)
- Slowly started writing SSL session ID caching code

Daniel (24 August 2001)
- T. Bharath removed compiler warnings on windows and updated the MS project
  files.

- Kevin Roth reported two kinds of command line constructs with the new -G that
  curl didn't really deal with the way one would like.

- Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
  own portable version named strequal() that should be used!

- Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
  debug object modules causing confusions.

Daniel (23 August 2001)
- T. Bharath accurately found a libcurl bug that would happen when doing a
  second invoke of curl_easy_perform() with a new URL when the previous invoke
  followed a Location: header.

- Started the improvement work on the cookie engine:
  - Now keeps cookies in the same order as the cookie file
  - A write to the possibly static string was removed
  - Added a function that can output all cookies
  - Now supports reading multiple cookie files

- Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.

- Split up the monster function in lib/ftp.c to use more smallish functions to
  increase readability and maintainability.

Daniel (21 August 2001)
- Georg Huettenegger's big patch was applied. Now we have:
  o "Expect: 100-continue" support. We will from now on send that header in
    all rfc1867-posts, as that makes us abort much faster when the server
    rejects our POST. Posting without the Expect: header is still possible in
    the standard replace-internal-header style.
  o curl_formadd() is a new formpost building function that is introduced to
    replace the now deprecated curl_formparse() function. The latter function
    will still hang around for a while, but the curl_formadd() is the new way
    and correct way to build form posts.
  o Documentation has been updated to reflect these changes

  These changes are reason enough to name the next curl release 7.9...

- We now convert man pages to HTML pages and include them in the release
  archive. For the pleasure of everyone without nroff within reach.

- Andrés García's suggested flushing of the progress meter output stream was
  added. It should make the progress meter look better on Windows.

- Troy Engel pointed out a mistake in the configure script that made it fail
  on many Red Hat boxes!

Daniel (20 August 2001)
- We need an updated libtool to make a better build environment for OpenBSD
  as well as FreeBSD

Version 7.8.1

Daniel (20 August 2001)
- Brad pointed out that we ship two extra libtool files in the tarballs that
  we really don't need to! Removing them makes the gz-archive about 60K
  smaller!

- Albert Chin brought fixes for the configure script to detect socklen_t
  properly as well as moving lots of our custom autoconf macros to
  acinclude.m4.

Daniel (19 August 2001)
- Moonesamy improved his -G feature for host names only URLs...

Daniel (17 August 2001)
- Finally cleaned up the kerberos code to use Curl_ prefixes on all global
  symbols and to not use global variables.

Version 7.8.1-pre6

Daniel (16 August 2001)
- S. Moonesamy added the -G option to curl, that converts the data specified
  with -d to a GET request. Default action when using -d is POST. When -G is
  used, the -d specified data will be appended to the URL with a '?'
  separator. As suggested previously by Kevin Roth.

- curl-config --libs should now display all linker options required to link
  with libcurl. It includes the path and options for libcurl itself.
  curl-config --cflags displays the compiler option(s) needed to compile
  source files that use libcurl functions. Basically, that sets the include
  path correct.

Daniel (15 August 2001)
- Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
  were parsed and used. (RFC2732-format)

- Bug #12733 over on php.net identified a problem in libcurl that made it core
  dump if you used CURLOPT_POST without setting any data to post with
  CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
  now equals setting it to no data at all.

- Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
  properly when used for multiple URLs on a single command line. Indeed, the
  variable was not reset between the requests. This is now fixed.

- David James fixed the Borland makefile so that libcurl still compiles and
  builds with that compiler.

Daniel (14 August 2001)
- Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.

- An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
  windows users to curl_global_init(), that makes libcurl init the winsock
  stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
  with this is a comfortable shortcut to fame.

Version 7.8.1-pre5

Daniel (14 August 2001)
- Nico Baggus provided more feedback from his VMS porting efforts and a few
  minor changes were necessary.

- I modified configure.in so that --enable-debug sets more picky gcc options.
  I then removed almost all the new warnings that appeared, and by doing so I
  corrected the size_t-treated-as-signed problem that has been discussed on
  the mailing list previously. I also removed a bunch of the just recently
  added #ifdef VMS lines.

- I removed the use of a global variable in the SSL code. It was once
  necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
  (hopefully) still work if libcurl is built against an ancient version of
  OpenSSL.

Daniel (13 August 2001)
- Peter Todd posted a patch that now allows non-file rc1867-style form posts
  to be larger than 4K.

Daniel (10 August 2001)
- S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile

Daniel (9 August 2001)
- The redirected error stream was closed before the curl_easy_cleanup() call
  was made, and when VERBOSE was enabled, the cleanup function tried to use
  the stream. It could lead to a segmentation fault. Also, the stream was
  closed even if we looped to get more files.  Corrects Dustin Boswell's bug
  report #441610

- Now generates the release configure script with autoconf 2.52

Version 7.8.1-pre4

Daniel (8 August 2001)
- curl -E uses a colon to separate a file name from a passphrase. This turned
  out really bad for the windows people who wants to include a drive letter in
  the file name like "c:\cert.pem". There's now a win32 work-around
  implemented that tries work around that, when the colon seems to be used for
  this kind of construct.

- Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
  verify the server's CN field when talking https://. If --cacert is not used,
  any failures in matching is only displayed as information (-v).

Daniel (7 August 2001)
- Wrote up nine more test cases, more or less converted from the former test
  suite.

Daniel (6 August 2001)
- Heikki Korpela posted a patch that makes 'curl-config --libs' include the
  directory in which libcurl itself is installed in. While this wasn't my
  initial intention with this option, it makes sense and makes linking with
  libcurl easier.

- Stefan Ulrich pointed out to us that other tools and libraries treat file://
  URLs with only one slash after the host name slighly different than libcurl
  does. Since all the others seem to agree, we better follow them.

- Nico Baggus provided us with a huge set of fixes to make curl compile and
  build under OpenVMS.

Version 7.8.1-pre3

Daniel (6 August 2001)
- Jonathan Hseu noticed that you couldn't get a header callback unless you
  set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
  data. This is now fixed.

Daniel (5 August 2001)
- Sergio Ballestrero provided a patch for reading responses from NCSA httpd
  1.5.x servers, as they return really screwed up response headers when asked
  for with HTTP 1.1.

- curl_escape() no longer treats already encoded characters in the input
  string especially.

Daniel (3 August 2001)
- I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
  avoid the BSD annoucement clause of the license in the former file.

- Andrew Francis provided a new version of base64.c to work around the license
  boiler plate that came with the previous one. I patched it, but the glory
  should go to Andrew for his heads up.

- Tomasz Lacki noticed that when you do repeated transfers with libcurl you
  couldn't always reliably change HTTP request. This has now been fixed and a
  new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
  requestr (back) to GET.

- Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
  release archives. It should be now.

Daniel (2 August 2001)
- Frank Keeney pointed out a manual mistake for certificate convertions.

- Tomasz Lacki pointed out a problem in the transfer loop that could make the
  select() loop use far too much CPU.

- Pawel A. Gajda pointed out an output mistake done when using libcurl's
  progress callback.

Daniel (29 June 2001)
- Naveen Noel noticed that the Borland library makefile wasn't updated.

- Nic Roets brought a fix for the certificate verification when using SSL.

Daniel (27 June 2001)
- Made the FTP tests run OK even on machines running curl IPv6-enabled.

- Troy Engel corrected some RPM package details.

Version 7.8.1-pre2

Daniel (25 June 2001)
- Björn Stenberg correctly identified a problem that occurred when downloading
  several files with curl, and using resume. The first file's resume index was
  then used for all files, resulting in weird results...

- Anton Kalmykov provided a fix that makes curl work with form field names
  with spaces like when -F is used.

Version 7.8.1-pre1

Daniel (20 June 2001)
- Mike Bytnar provided a fine report that proved that the --with-ssl option
  for configure needed tweaking. It no longer searches the default directories
  for OpenSSL libs or directories when a specified path is given.