ad260c3f807675653fab5643d8656d57a83c3afa
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Daniel (17 May 2004)
10 - All 191 test cases run through the torture test OK!
11
12 Daniel (14 May 2004)
13 - With a slightly modified ftpserver.pl I've now run almost all tests through
14   with runtests.pl -t. This is goodness!
15
16 - Since I have been unable to contact the CVS admins for several months, I've
17   decided that the current CVS hosting was not good enough. I've now moved the
18   CVS repo once again, see README for updated cvs checkout instructions.
19
20 Daniel (13 May 2004)
21 - runtests.pl -t now runs fine all the way to test 100. I believe test case
22   100 fails because of an FTP server problem.
23
24 Daniel (12 May 2004)
25 - General cleanups all over to make libcurl survive and do well when a memory
26   function returns NULL. runtests.pl -t now works fine for the first 26 test
27   cases.
28
29 Daniel (11 May 2004)
30 - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() -
31   like normal curl_global_init() but allows the app to replace all memory
32   functions with its own set. I modified it slightly.
33
34 - Based on Luca Alteas' comments, I modified the curllib.dsp generation code.
35
36 Daniel (10 May 2004)
37 - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a
38   separate free()-function by that lib to make sure the memory is freed by the
39   same memory subsystem that allocated it. He responded positively and this
40   will likely cause us to require a newer version of libidn as soon as Simon
41   releases one with such a libidn_free() function.
42
43 - James Bursa made runtests.pl's -t option work for any given test case, and I
44   edited to allow -g too. Not even test case 1 worked...
45
46 - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers.
47
48 - Andrés García fixed a problem in the test script that made it fail to
49   recognize our own running HTTP server.
50
51 Daniel (7 May 2004)
52 - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to
53   free() and he made two failed-resolve error messages use the new display-
54   name instead of the internally-used name.
55
56 - Gisle Vanem tried curl with
57   www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com
58   which caused problems, and I fixed the single zero byte buffer overwrite
59   that occurred (due to a stupid protocol buffer size and parser).
60
61 - Made the lib/curllib.dsp file get generated automaticly when a distribution
62   package is made, with the msvcproj.* files as templates and all
63   win32-sources added. I think this can be made to work better than the always
64   lagging-behind previous approach. I'm not sure this builds a working project
65   file right now though!
66
67 Daniel (6 May 2004)
68 - Michael Benedict brought a fix that fills in the errorbuffer properly when
69   ares fails to resolve a name for a case not previously dealt with like this.
70
71 Daniel (5 May 2004)
72 - Joe Halpin fixed the annoying typecast warning in lib/ldap.c
73
74 - Gisle Vanem fixes:
75   o memdebug to not access NULL on several places
76   o libcurl.def; curl_formparse is gone.
77   o progress.c; fixed the percent values being trunced to 0.
78   o if2ip.*; constified the 'interface' argument.
79
80 - Tor Arntsen reported that many of his autobuilds froze and I found and fixed
81   a problem introduced with the HTTP auth overhaul that could lead to a
82   never-ending internal request-loop due to un-initialized variables!
83
84 - Removed several compiler warnings on various compilers/platforms.
85
86 Daniel (4 May 2004)
87 - curl_formparse() has been removed from the library. It has been marked and
88   mentioned as deprecated for several years.
89
90 Daniel (3 May 2004)
91 - Rewritten HTTP authentication code. The previous code could not properly
92   deal with the added test cases 167, 168 and 169. I've now rewritten the code
93   to better separate host and proxy authentication and not re-use the same
94   variables as much as before as it proved non working in the more involved
95   cases. All the current tests run OK now, and so do the new ones. The curl
96   tool got a new option named --proxy-digest to enable HTTP Digest
97   authentication with the proxy. I also made the library support it.
98
99 - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with
100   Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used
101   on these Windows versions.
102
103 Daniel (30 April 2004)
104 - runtests.pl now scans the valgrind log for valgrind-detected memory leaks
105   after each test case if valgrind was found and used.
106
107 - I modified the app-code in curl to include the new lib/curlx.h and only
108   access those functions using the curlx_-prefix in preparation for the future
109   removal of several curl_-functions from the public libcurl API.
110
111 - Introduced lib/curlx.h as a single header to provide the curlx_-functions
112   to apps.
113
114 - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal
115   and curl_strnequal that they are subject for removal in a future release.
116   STOP USING THESE FUNCTIONS.
117
118 - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file
119   names and yes, I broke that on April 23. Sigh. I fixed it now and added
120   test case 166 to verify it.
121
122 - Luca Altea pointed out a mistake left from the Digest patch of yesterday.
123
124 Daniel (29 April 2004)
125 - Made IDN domains work when sending requsts over HTTP proxy as well. Added
126   test case 165 to verify the functionality.
127
128 - Fixed a bug in the new internal host name setup when re-using connections.
129
130 - James Bursa found out that curl_easy_duphandle() with ares-built libcurl
131   created a bad handle that would crash in the first name resolve attempt. This
132   is now fixed and test case 512 was added to verify it.
133
134 - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow
135   the Digest RFC a lot better.
136
137 - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable.
138
139 Daniel (27 April 2004)
140 - I remodeled Gisle's IDN code slightly and now we convert both the host name
141   and proxy name to the ACE encoded version to use internally for resolves and
142   cookies etc. They are now using one 'struct hostname' each that keep both
143   the original name and the possibly encoded name. IDN resolves work for me
144   now using ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to
145   do right. I got some failures at first when CHARSET wasn't set at all which
146   confused libidn completely and it decided by encoding of choice was
147   'ANSI_X3.4-1968'...
148
149 - made 'configure --without-libidn' work
150
151 Daniel (25 April 2004)
152 - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to
153   make the problems with USE_MANUAL on windows go away.
154
155 - configure --without-ssl could still wrongly include some OpenSSL info in the
156   Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by
157   Martin.
158
159 - Since we can now build and use quite a large set of 3rd party libraries, I
160   decided I would make configure produce a summary at the end showing what
161   libraries it uses and if not, what option to use to make it use that. I also
162   added some other random info that is nice in a "configure summary" output.
163
164 - Applied TommyTam's patch that now make curl work with telnet and stdin
165   properly on Windows.
166
167 - The changes for today below were made by me and Gisle Vanem.
168
169   The file previously known as hostip.c has now undergone a huge cleanup and
170   split:
171
172   hostip.c explained
173   ==================
174
175   The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
176   source file are these:
177
178   CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
179   that. The host may not be able to resolve IPv6, but we don't really have to
180   take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
181   defined.
182
183   CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
184   name resolves. It cannot have ENABLE_IPV6 defined at the same time, as
185   c-ares has no ipv6 support. This can be Windows or *nix.
186
187   CURLRES_THREADED - is defined if libcurl is built to run under (native)
188   Windows, and then the name resolve will be done in a new thread, and the
189   supported asynch API will be the same as for ares-builds.
190
191   If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
192   libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
193   defined.
194
195   The host*.c sources files are split up like this:
196
197   hostip.c   - method-independent resolver functions and utility functions
198   hostasyn.c - functions for asynchronous name resolves
199   hostsyn.c  - functions for synchronous name resolves
200   hostares.c - functions for ares-using name resolves
201   hostthre.c - functions for threaded name resolves
202   hostip4.c  - ipv4-specific functions
203   hostip6.c  - ipv6-specific functions
204
205   The hostip.h is the single united header file for all this. It defines the
206   CURLRES_* defines based on the config*.h and setup.h defines.
207
208 - Added function header comments to many functions in an attempt to better
209   explain the purpose of them all.
210
211 - configure --with-libidn is now supported. It makes the configure script
212   check for libidn libs and include files in the prefix path given. If you
213   say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib
214   and the includes in /usr/local/include etc.
215
216 - curl_version_info() now returns a struct aged CURLVERSION_THIRD including
217   libidn version info. The string curl_version() returns also includes libidn
218   version info, if available.
219
220 Version 7.11.2 (26 April 2004)
221
222 Daniel (25 April 2004)
223 - Erwin Authried pointed out that configure --disable-manual didn't do right
224   if you already had a src/hugehelp.c source file present (which most people
225   do I guess). It now uses the USE_MANUAL define properly.
226
227 Daniel (23 April 2004)
228 - Gisle Vanem found and fixed a memory leak when doing (failing) Windows
229   threaded name resolves.
230
231 - I also added test case 163 just to make sure -F "var=<file" works fine and
232   can pass on characters such as newlines, carriage-return and tabs.
233
234 - When we added test case 162 without adding the necessary requirement field
235   in the test meta data we could see that curl didn't complain if you used
236   --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I
237   now made it check this first, and it now exists with a "the installed
238   libcurl version doesn't support this" message if it happens again.
239
240 Daniel (22 April 2004)
241 - David Byron found and fixed a small bug with the --fail and authentication
242   stuff added a few weeks ago.  Turns out that if you specify --proxy-ntlm and
243   communicate with a proxy that requires basic authentication, the proxy
244   properly returns a 407, but the failure detection code doesn't realize it
245   should give up, so curl returns with exit code 0. Test case 162 added to
246   verify the functionality.
247
248 - allow newlines in the contents when doing -F "var=[contents]"
249   Robert Marlow reported.
250
251 - If a transfer is found out to be only partial, libcurl will now treat that
252   as a problem serious enough to skip the final QUIT command before closing
253   the control connection. To avoid the risk that it will "hang" waiting for
254   the QUIT response. Added test case 161 to verify this.
255
256 Daniel (21 April 2004)
257 - Modified the heuristics for dealing with the test 160 scenario. When a
258   connection is re-used and nothing at all is received from it (because the
259   server closes the connection), we will now retry the request on a fresh new
260   connection. The previous ECONNRESET stuff from January 30 was removed again
261   as it didn't detect the situation good enough.
262
263 Daniel (20 April 2004)
264 - Added test case 160 to verify that curl works correctly when it gets a
265   connection reset when trying to re-use a connection. It should then simply
266   create a new connection and resend the request.
267
268 Daniel (19 April 2004)
269 - No more 512 byte limit for host name (inclusing name + password) in libcurl.
270   An added bonus is that we use less memory for the typical (shorter URL)
271   case.
272
273 - Cleaned up the sources to better use the terms 'hostname' and 'path'
274   internally when referring to that data. The buffers used for keep that info
275   is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand
276   than the previous mess.
277
278 Daniel (15 April 2004)
279 - Modified runtests.pl again to remove all log files in the log/ dir between
280   each test, and then made -p display all non-zero byte files in the log dir.
281   It should make that data more usable and contain less rubbish.
282
283 - ftpserver.pl now produces log files more similar to how the sws ones look
284   and they now also contains a bit more details to help debugging ftp
285   problems.
286
287 - Removed the fixed maximum amount of dir levels the FTP code supported.
288   Previously we had a fixed array for 100 levels, now we save space in each
289   handle by allocating only for a few level by default and then enlarging that
290   in case of need (with no maximum depth). Adjusted test case 142 to verify
291   that 150 dir levels work fine.  An added bonus is that we use less memory
292   for the typical (not very deep) case.
293
294 Daniel (14 April 2004)
295 - Asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will
296   now cause the resolve function to return NULL immediately. This flaw was
297   pointed out by Gisle Vanem.
298
299 - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl.
300
301 - runtests.pl now has a new option (-p) that will display "interesting" log
302   files to stdout in case of a test failure. This is primarily intended to be
303   used in the 'full-test' make target that is used by the autobuild tests, as
304   we then get a much better chance to understand (remote) test failures based
305   on autobuild logs alone.
306
307 Daniel (13 April 2004)
308 - Gisle Vanem made the multi interface work again on Windows even when built
309   without ares. Before this, select() would return -1 during the name resolve
310   phase since curl_multi_fdset() didn't return any fd_set at all which wasn't
311   appreciated!
312
313 - curl_easy_duphandle() now duplicates the tcp_nodelay info as well.
314
315 Daniel (11 April 2004)
316 - Applied David Byron's patch for the MSVC libcurl makefile for builds with
317   zlib.
318
319 Daniel (9 April 2004)
320 - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now
321   be down to usec if the system sypports it.
322
323 Daniel (7 April 2004)
324 - A request that sends "Expect: 100-continue" and gets nothing but a single
325   100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.
326
327 - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
328   approach fully.
329
330 Daniel (6 April 2004)
331 - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
332   made libcurl on Windows leak a small amount of memory in each name resolve
333   when not used as a DLL.
334
335 - New authentication code added, particularly noticable when doing POST or PUT
336   with Digest or NTLM. libcurl will now use HEAD to negotiate the
337   authentication and when done perform the requested POST. Previously libcurl
338   sent POST immediately and expected the server to reply a final status code
339   with an error and then libcurl would not send the request-body but instead
340   send then next request in the sequence.
341
342   The reason for this change is due to IIS6 barfing on libcurl when we attempt
343   to POST with NTLM authentication. The reason for the problems is found in
344   RFC2616 section 8.2.3 regarding how servers should deal with the 100
345   continue request-header:
346
347         If it responds with a final status code, it MAY close the transport
348         connection or it MAY continue to read and discard the rest of the
349         request.
350
351   Previous versions of IIS clearly did close the connection in this case,
352   while this newer version decided it should "read and discard". That would've
353   forced us to send the whole POST (or PUT) data only to have it discarded and
354   then be forced to send it again. To avoid that huge penality, we switch to
355   using HEAD until we are authenticated and then send the POST.
356
357   The only actual drawback I can think of (except for the odd sites that might
358   treat HEAD differently than they would treat POST/PUT when given the same
359   URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO
360   authentication, libcurl will still use a HEAD in a first round and then do a
361   POST.
362
363   If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send
364   an un-authenticated request at once, which then is the only request if the
365   site requires no auth.
366
367   Alan Pinstein helped me work out the protocol details by figuring out why
368   libcurl failed and what IIS6 expects.
369
370 - The --limit-rate logic was corrected and now it works a lot better for
371   higher speeds, such as '10m' or similar. Reported in bug report #930249.
372
373 - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion.
374   #include "timeval.h" from the lib dir to get the protos etc.  Note that
375   these are NOT part of the libcurl API. The curl app simply uses the same
376   source files as the library does and therefore the file needs to be compiled
377   and linked with curl too, not just when creating libcurl.
378
379 - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it
380   isn't portable enough
381
382 Daniel (2 April 2004)
383 - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file
384   name to work better. As pointed out by Robin Kay.
385
386 - Andrés García updated the mingw makefiles.
387
388 - Dirk Manske fixed a problem I recently added in the progress meter code that
389   broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a
390   mistake in the code that produces the final update of the progress meter
391   that would often prevent it from actually being updated that final time.
392
393 Daniel (1 April 2004)
394 - Dirk Manske fixed a memory leak that happened when we use ares for name
395   resolves and decides to time-out before ares does it. This fix uses the
396   brand new ares_cancel() function which is not present in c-ares 1.1.0.
397
398   When told to enable ares, the configure script now checks for presence of
399   the ares_cancel function to alert users if they attempt to use a too old
400   c-ares library.
401
402 Daniel (31 March 2004)
403 - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur!
404
405 - Dirk Manske found out that libcurl timed out waiting for resolves far too
406   easy when libcurl was built to use (c-)ares for name resolving.
407
408 - Further Digest fixing and a successful test case 153 now makes me believe
409   Mitz Wark's problems are fixed.
410
411 - Andres Garcia figured out that test case 63, while working, only proved a
412   flaw in libcurl's 'http_proxy' parser when a user name and password is
413   provided. The user name was not extracted properly (and 'http' was always
414   used as user name).
415
416 - Andrés García fixed compiler warnings in our ioctlsocket() usage.
417
418 Daniel (30 March 2004)
419 - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the
420   particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel.  I've now
421   written a configure test that checks for a working NI_WITHSCOPEID
422   implemenation. No code uses the result from this test yet, it is still
423   experimental. James Carlson wrote in comp.unix.solaris: "It's a bug
424   (5006623) -- it's not supported and shouldn't be in the header file."
425
426 - I provided Mitz Wark with a first patch in order to fix libcurl's problems
427   to re-negotiate Digest authentication (when 'stale=true' is included in the
428   response header).
429
430 - Roy Shan discovered that the multi interface didn't properly timeout name
431   lookups which could make handles get stuck in that state and thus never get
432   completed. I've produced a first test patch that attempts to correct this.
433
434 - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
435   even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
436   and 152 were added to verify the functionality.
437
438 Daniel (29 March 2004)
439 - Gisle Vanem updated files for the djgpp/MS-DOS build.
440
441 - Andrés García helped me work out a fix for the runtests.pl script to make
442   the file:// tests run fine when tested with the mingw-built version of curl.
443
444 - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
445   This also required a minor fix of the configure script.
446
447 - The postit2.c source example used the wrong struct name for the post data.
448
449 Daniel (26 March 2004)
450 - Gisle Vanem improved ipv6 support on windows by making the curl build to use
451   the correct getaddrinfo() function.
452
453 Daniel (25 March 2004)
454 - It turned out that AIX, despite having a "thread-safe libc", doesn't offer
455   all traditional functions thread-safe. This URL is informative on this
456   subject:
457
458     http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
459     genprogc/thread_quick_ref.htm
460
461   As a result of this, we now check for three *_r() functions on recent AIX
462   versions as well that the URL mentions aren't thread-safe in AIX 5.1.
463
464 - renamed curl_strerror.[ch] to strerror.[ch]
465
466 - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
467   for users to disable the Nagle algorthim-usage.
468
469 - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
470   own API which differs from the POSIX one. Daniel adjusted the configure
471   script to detect the version in use, and the code now uses the new defines
472   accordingly.
473
474 - Fixed some build flaws with the new lib/curl_strerror.c source file.
475
476 Daniel (24 March 2004)
477 - Gisle Vanem's fix to replace the bad use of strerror(). This introduces
478   Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
479
480 - Tor Arntsen spell-fixed lots of libcurl man pages.
481
482 - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
483   made it not use chdir .. to go back, as that isn't very good when you've
484   setup a testdir containing symlinks.
485
486 - Added a check for strerror_r() in the configure script.
487
488 Daniel (23 March 2004)
489 - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
490   use this script for the real distributed testing just yet, but it is only
491   a matter of time.
492
493 - Gisle Vanem provided code that makes curl report a better error message
494   if --interface fails on windows.
495
496 - The regular progress meter is now fixed to never wrap due to long lines. All
497   fields are now static sized. If the time in the time fields get a time value
498   that would represent a time that is 100 hours or more (if not, it remains
499   using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
500   days and hours) and if that isn't enough it switches to a "NNNd" display if
501   it is more than 999 days.
502
503   Several of the calculations were also moved to fixed-point math instead of
504   using doubles.
505
506 Daniel (22 March 2004)
507 - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
508   used to do if CURLOPT_NOBODY is set TRUE.
509
510 - Kevin Roth patched the cygwin package makefile and README to adjust to
511   new cygwin packaging guidelines.
512
513 - Enabled "NT responses" in the NTLM authentication. Doing this simply means
514   that we provide an extra chunk of data in each "type-3 message". The only
515   reason for doing this is that it seems that using only the "Lanmanager hash"
516   (as we've been doing until now) doesn't support passwords longer than 14
517   characters and it turns out there are users out there who want to use
518   libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
519   updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
520   #915609
521
522 - Moved the generated libcurl version info to a new header file, named
523   curl/curlver.h. Now interested parties can include ONLY version info, should
524   anyone want that (and it seems at least some windows resource files would).
525   Mentioned as issue 27 in TODO-RELEASE.
526
527 Daniel (21 March 2004)
528 - Fixed the root Makefile to use tabs for the netware target. Günter Knauf
529   pointed this out.
530
531 - Marty Kuhrt's VMS cleanup
532
533 - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
534   with particular pre-determined options.
535
536 Version 7.11.1 (19 March 2004)
537
538 Daniel (18 March 2004)
539 - Tor Arntsen brought some info about SGI IRIX:
540
541   IRIX supports 3 different executable/object formats, -32, -n32 and -64.
542   -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
543   the 64-bit format.  Libraries for the different formats are in lib, lib32
544   and lib64 respectively.
545
546   We've now adjusted the configure script to adapt to this when scanning for
547   3rd party libs, such as OpenSSL.
548
549 Daniel (17 March 2004)
550 - Watz pointed out a few missing files in the MSVC project description file.
551
552 - Günter Knauf brought patches, code and makefiles to build curl on Novell
553   NetWare.
554
555 Daniel (15 March 2004)
556 - Lots of libcurl man pages were updated to contain references to other man
557   pages the recognized way so that they appear as nice hyperlinks in the HTML
558   versions.
559
560 - buildconf now checks the m4 version too, since autoconf requires a GNU m4
561   version to build proper configure scripts.
562
563 Daniel (12 March 2004)
564 - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
565   CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
566
567 - David Byron fixed an uninitialized variable case/crash.
568
569 Daniel (10 March 2004)
570 - Jeff Lawson fixed the SSL connection to deal with received signals during the
571   connect.
572
573 - Changed the OS string for win32 to become "i386-pc-win32".
574
575 Daniel (9 March 2004)
576 - Changed the internals to use curl_socket_t for socket variable type. This
577   should enable us to build with less warnings on Windows, where SOCKET is
578   used which is an unsigned int, while most other platforms use a mere int.
579
580 - Modified lib/config-win32.h to build fine on MSVC again.
581
582 Version 7.11.1-pre1 (8 March 2004)
583
584 Daniel (8 March 2004)
585 - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
586   larger than 4 bytes.
587
588 Daniel (4 March 2004)
589 - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
590
591 - Modified the test HTTP server a lot to work with the upcoming changes for
592   PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
593   García's win32-changes. Improved the logging.
594
595 - Fixed the file:-related progress/getinfo stuff a bit more.
596
597 Daniel (4 March 2004)
598 - I corrected a problem with the multi interface when following a Location:
599   header or when doing multiple-request authentications. A subsequent request
600   could erroneously re-use a previous connection that was sent with
601   Connection: close. Christopher R. Palmer reported.
602
603 - Andrés García patched curl to prevent warnings while compiling with mingw,
604   mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
605   defined.
606
607 - When transferring files from a file: URL, the progress meter and other
608   transfer metrics were not updated properly.
609
610 - David Byron provided a "version resource" file to the curl executable for
611   the windows builds.
612
613 Daniel (3 March 2004)
614 - David Byron's work on making libcurl only require winsock 1.1 on Windows
615   machines.
616
617 - More variable cleanups based on compiler warnings generated by Tor Arntsen's
618   autobuilds with MIPSPro.
619
620 - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
621
622 - Applied Tom Bates' patch to build on nsr-tandem-nsk.
623
624 - Dan Fandrich corrected some flaws in the configure GSS detection.
625
626 Daniel (2 March 2004)
627 - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
628   curl_off_t types internally.
629
630 Daniel (1 March 2004)
631 - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
632   response, that signals if this libcurl supports >2GB files. curl -V now
633   outputs 'Largefile' in the Features: field if this is the case. Most systems
634   are likely to support this.
635
636 - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
637   to printf() curl_off_t variables. We also modified the libcurl sources to
638   use this define instead of the previous %Od approach (although I've left the
639   O-flag functional in the code). This should also prevent compilers to warn
640   on the home-grown option.
641
642 - Fixed the resume-check code to test for a working resume at the end of the
643   headers and not at the first body-byte.
644
645 - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
646   you need a global DNS cache for whatever reason, use the share interface and
647   you'll get a global cache that works the way it should work. You can even
648   have any number of global caches, all at your command. This is now also
649   mentioned in the docs.
650
651 - Made the *printf code support the z-flag to enable size_t printf() in a
652   manner similar to how glibc allows it. To make printfing of this work on
653   platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
654
655 - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
656   CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
657   loop without succeeding to authenticate due to the new connection that was
658   made for all round-trips in the authentication. Now, the FRESH_CONNECT is
659   remade to only matter for the first connection made with curl_easy_perform()
660   and all the rest that might follow due to FOLLOWLOCATION or HTTP
661   authentication are now ignoring that option.
662
663 - Adjusted the QUIT code slightly since it could core-dump.
664
665 - Corrected the test suite's FTP server to provide a correct size to the
666   'verifiedserver' request.
667
668 Daniel (27 February 2004)
669 - Joe Halpin made the FTP code send QUIT on the control connection before
670   disconnecting the TCP connection. This is what good-behaving ftp clients
671   should do.
672
673 Daniel (26 February 2004)
674 - David Byron updated several files to make curl build fine on MSVC 6. He
675   also added the 'buildconf.bat' that works like the 'buildconf + configure'
676   combo does on unixes.
677
678 - Gisle Vanem made the memdebug stuff support calloc() as well.
679
680 - Tor Arntsen pointed out that testcurl.sh needed to remove the generated
681   files in order to have them re-generated in each build.
682
683 - Andy Serpa found out that the share interface did not enjoy life when not
684   having the lock and unlock callbacks set, even though documented to be
685   OK. It still is OK, and now the code won't segfault anymore!
686
687 Daniel (25 February 2004)
688 - Based on a patch by Greg Hewgill I modified how long long is used in the
689   mprintf code, as we can use a 64bit type with MSVC that is a long long
690   equivalent. This corrects some weird large file behaviors on windows.
691
692 - Tor Arntsen helped me work out --enable-debug to work better with different
693   versions of the gcc and icc compilers.
694
695 - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
696
697 Daniel (22 February 2004)
698 - Applied the final pieces of Gisle Vanem's patch that brings a working name
699   resolve timeout to the windows versions of curl!
700
701 Daniel (21 February 2004)
702 - David Byron's fix to allow the speed-limit logic work even if you set
703   limit-rate. It does work on the expense of the rate limiter.
704
705 Daniel (20 February 2004)
706 - configure --enable-debug with gcc now also tries to detect the icc compiler
707   (which somehow gets treated as if it is a gcc) to stop using all the gcc
708   options with it, and we also provide -isystem options for each extra -I
709   option the configure script has figured out (for OpenSSL, kerberos, zlib,
710   Heimdal etc). This of course to prevent warnings on headers we don't have
711   control of.
712
713 Daniel (19 February 2004)
714 - Doug Porter made libcurl use the HOME environment variable before the
715   getpwuid results when looking for .netrc files.
716
717 - If 'configure --enable-debug' is used with gcc, it now checks which gcc
718   version it is and uses as picky compiler options as possible for the
719   particular version.
720
721 - Code that can be used in both the lib and in the curl app is now made to use
722   the curlx_ prefix. The first function to be available like this is the
723   curlx_strtoll() function. This is made to allow the app to use existing code,
724   but without polluting the libcurl API. Further explanations posted here:
725
726     http://curl.haxx.se/mail/lib-2004-02/0215.html
727
728 Daniel (18 February 2004)
729 - Fixed buildconf to not use "which" as AIX and Tru64 have what have been
730   referred to as "horribly broken 'which' programs".
731
732 - Made sure dns cache timeout set to -1 really means caching forever.
733
734 Daniel (17 February 2004)
735 - Made it possibly to build c-ares with the libcurl memdebug system to better
736   track memory.
737
738 Daniel (16 February 2004)
739 - When using ares, we now initialize the ares 'channel' in curl_easy_init()
740   and re-use that same handle during the entire curl handle's life-time. It
741   improves performance.
742
743 - Fixed a problem when displaying verbose for ipv6-enabled libcurls and
744   re-used connections. Problem reported and fix verified by Grigory Entin.
745
746 - Jeff Lawson fixed the version-check in the SOCKS5 code.
747
748 Daniel (15 February 2004)
749 - Fixed a case where a host cache entry was not flagged in-use properly when a
750   cached entry was used.
751
752 - Andrés García's patch that checks for winmm in the configure script was
753   applied.
754
755 Daniel (13 February 2004)
756 - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
757   specific network interface.
758
759 - Greg Hewgill found out that the variable holding 'contentlength' wasn't big
760   enough to hold a large file!
761
762 - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
763   department, and there was another potential problem in the name resolve code
764   too.
765
766 Daniel (11 February 2004)
767 - Removed a few variables that were only set but never used, as some compilers
768   warn about that and we do not like compiler warnings!
769
770 - Removed the need for symlinks in the tests/data directory if curl is built
771   outside of the source directory and the 'make test' is used. This was done
772   by providing a "source dir path" to the scripts/servers.
773
774 - Now, if the configure script can't find an nroff tool or an option to nroff
775   to use to convert man pages with, it will completely switch off the built-in
776   manual.
777
778 - 'configure --disable-manual' completely disables the built-in manual from
779   the curl command tool.
780
781 - Andrés García fixed the configure script and a minor source edit, and now
782   he has managed to get msys/mingw to run configure and then build!
783
784 Daniel (9 February 2004)
785 - The default HTTP Accept: header was modified to the much simpler
786   "Accept: */*".
787
788 - P R Schaffner updated the curl-ssl spec file for RPMs.
789
790 - Dominick Meglio brought lots of documentation for the share interface's man
791   pages that were previously missing.
792
793 - Tor Arntsen provided a patch that makes libcurl work-around a bug in the
794   AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
795   ipv6-enabled AIX builds.
796
797 - Ken Rastatter provided portability fixes for the curlgtk.c example, and now
798   it runs on windows with GTK as well!
799
800 Daniel (6 February 2004)
801 - Andrés García made the configure script find gethostbyname() fine when run
802   with mingw on windows.
803
804 - Modified the ldap code to use proper function pointers all over (instead of
805   mixed data and function pointers) to work-around the picky MIPSPro compiler
806   warnings.
807
808 - A custom Host: header is only considered if the request is not made by
809   following a location. After discussions with Tim Baker.
810
811 Daniel (5 February 2004)
812 - The libz part of the configure script now only set the two libz-related
813   define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
814   If one is missing, none of the defines is set.
815
816 - Andrés García fixed the Mingw makefiles.
817
818 - Len Krause reported that curl 7.9.X could do uploading from stdin without
819   doing chunked encoding, which current curl cannot do even if you disable
820   the transfer-encoding chunked header. Now it can again, and test case 98
821   verifies this functionality.
822
823 - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
824   the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
825   messages when bailing out in the that function.
826
827 - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
828   compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
829   numerous minor quirks to make less warnings appear.
830
831 Daniel (4 February 2004)
832 - Based on a patch by Gilad, we now use the custom timeouts when waiting for a
833   server to connect when using FTP PORT. Previously we always waited 10
834   seconds, no more no less. We now also changed the default (if no timeout is
835   set) to wait 60 seconds for the connect before we fail.
836
837 Daniel (3 February 2004)
838 - Modified to link with c-ares instead of ares.
839
840 Daniel (2 February 2004)
841 - Added a configure test to check for which option the (g)nroff tool wants
842   to extract plain text from the man pages. Tor Arntsen told us the AIX
843   version of GNU gnroff doesn't support -man!
844
845 - Added an undef of accept in memdebug.h to make curl build with --enable-debug
846   on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
847
848 - curl_version() now includes c-ares version info, and curl_version_info() now
849   returns a struct with version SECOND that also includes that info.
850
851 - We are now officially using c-ares for asynch name resolves. c-ares is the
852   new library, based on the existing ares but with an extended and slightly
853   modified API.
854
855 - Dirk improved the ares timeout code, and now we also include the ares error
856   string when we fail to resolve a name.
857
858 - Another tweak to make test case 91 run fine. Now we have another bit on a
859   connection that is set true if the connection is marked for 'retry'. That
860   makes the connection get closed and re-opened and the HTTP-done code must
861   not complain on the fact that no data was received.
862
863 - Based on Dirk Manske's patch, I modified the name resolving with ares to
864   feature a timeout for really slow lookups. It now defaults to 300 seconds,
865   but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
866   is set.
867
868 - Fixed the inclusion of ca-bundle.h to really use the one in the build dir
869   before the one in the source dir. Domenico Andreoli found out and reported.
870
871 - Added test case 97, a simple POST with a custom Content-Type header
872   replacing the original application/x-www-form-urlencoded one.
873
874 Daniel (30 January 2004)
875 - Added code that attempts to fix the test 91 failure. As has been figured out
876   by Patrick Smith, the error happens because we re-use a connection that the
877   server is just about to close and we even manage to send away the request
878   without seeing an error. On the first read attempt we get a ECONNRESET.
879   Starting now, we attempt to detect this and if so, we retry the request on a
880   fresh connection.
881
882 - I added test case 510 which is a custom program that does a POST using a
883   read callback, with chunked transfer-encoding.
884
885 - Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
886
887 - Added --socks as a recognized option. It works just like --proxy but sets a
888   SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
889   while, just not provided by the curl tool. This does not currently work for
890   IPv6-enabled libcurls.
891
892 Daniel (29 January 2004)
893 - Stadler Stephan pointed out that src/hugehelp.c included config.h without
894   checking the define if its present...
895
896 - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
897   system.
898
899 - Dan Fandrich compiled curl with lots of aggressively pedantic compiler
900   options and thus found a few minor errors and did some general cleanups to
901   avoid them.
902
903 - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
904   sockets properly.
905
906 Daniel (28 January 2004)
907 - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
908   CRLF combo properly.
909
910 Daniel (27 January 2004)
911 - Made the response-headers during a CONNECT request to a proxy get passed on
912   as regular headers, so they appear with -i/-I options and similar.
913
914 - Based on a patch by Gisle Vanem, I've made the progress meter display
915   properly switch to a GB-display when more than 9999MB have been transfered.
916
917 Daniel (23 January 2004)
918 - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
919   required didn't have one and was on the last line of a file.
920
921 - More Windows fixes for large files. We now build and link with
922   ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
923   libcurl function... Perhaps we should consider a 'common' dir or similar
924   where we put source code used in both the lib and the client. Or perhaps
925   we'll just make this function available in the library...
926
927 - Vincent Bronner found out the socks5 code crashed when no username was
928   set.
929
930 - Vincent Bronner spotted a problem with proxy username/password when re-using
931   a persistent connection.
932
933 - Fixed the progress meter display for files larger than 2^31 bytes. Gisle
934   Vanem reported.
935
936 Daniel (22 January 2004)
937 - Gisle Vanem made strtoll() get used when curl is built with the mingw
938   compiler.
939
940 - Gisle Vanem fixed the compressed help text code to display properly.
941
942 - Removed the '#define HttpPost' from the public header file, as curl_httppost
943   is the proper name and it has been for quite some time now. Fixes another
944   name space pollution.
945
946 - Added 'curl_off_t' typedef in the public header file, to be used to provide
947   large file sizes to the *_LARGE options. Adjusted the code all over to use
948   this variable type instead of 'off_t'. This is an attempt to make the large
949   file support work on more platforms. The configure script now checks the
950   size of the curl_off_t instead of the plain off_t.
951
952 Version 7.11.0 (22 January 2004)
953
954 Daniel (21 January 2004)
955 - Removed the defines in the public header file with TIMECOND_ prefixes. They
956   have been obsolete since April 22nd 2002, and if this causes anyone any
957   problems now it is very easy to just add CURL_ to the names. This corrects
958   this name space pollution.
959
960 Daniel (19 January 2004)
961 - David Byron cleaned up how --trace with no option was treated, and also
962   arguments in a config file without a required parameter!
963
964 Daniel (16 January 2004)
965 - Gisle Vanem fixed a few issues where compilers warned about variables
966   possibly being used unassigned.
967
968 - Minor Interix build problem fixed.
969
970 Daniel (15 January 2004)
971 - Peter Sylvester pointed out some necessary escaping needed in the
972   acinclude.m4 file when automake 1.8 or later is used.
973
974 Daniel (14 January 2004)
975 - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
976   Steve Green provided on december 3...
977
978 Daniel (13 January 2004)
979 - Luke Call made the win32 version of the password prompting function support
980   backspace.
981
982 - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
983   an uncompressed version in the distribution, so that more people easier can
984   build curl with the compressed version.
985
986 - Diego Casorran brought another AmigaOS build patch for native Amiga builds.
987
988 - Matt Veenstra updated the Mac OS X framework files.
989
990 - Brian R Duffy brought a section to the INSTALL file on how to build a
991   SSL-enabled curl using the free Borland C++ compiler. He also updated the
992   Borland lib/Makefile.b32.
993
994 - I fixed the test case 509 which I broke yesterday. Now the libtest are
995   compiled with an include path that points to the library's source dir, so
996   that the libtests can include files from the source tree. This was made to
997   make it possible to use the USE_SSLEAY define in the library test files.
998
999 Daniel (12 January 2004)
1000 - Peter Sylvester brought code that now allows a callback to modified the URL
1001   even when the multi interface is used, and then libcurl will simulate a
1002   "follow location" to that new URL. Test 509 was added to test this feature.
1003
1004 - Extended the time we retry servers in the test script, and I also made it
1005   retry the https and ftps servers before they are considered bad. I believe
1006   the previous approach could turn problematic on really slow hosts.
1007
1008 Version 7.11.0-pre1 (12 January 2004)
1009
1010 Daniel (11 January 2004)
1011 - Dominick Meglio pointed out FTPS should use default port 990 according to
1012   IANA.
1013
1014 Daniel (8 January 2004)
1015 - Fixed the SPNEGO configure check to not use -R or other non-portable options
1016   in the LDFLAGS. Reported by Pierre in bug report #872930.
1017
1018 Daniel (5 January 2004)
1019 - Dan Fandrich provided a fix on our zlib usage.
1020
1021 - David J Meyer's patch that introduce large file support to libcurl was
1022   applied. New curl_easy_setopt options that accept 'off_t' arguments are:
1023
1024   INFILESIZE_LARGE
1025   RESUME_FROM_LARGE
1026   MAXFILESIZE_LARGE
1027
1028 Daniel (4 January 2004)
1029 - Based on Dominick Meglio's comments, I made our private version of
1030   gettimeofday() declared static. This would otherwise collide with the same
1031   function in other libs (like ares for example).
1032
1033 - Added Dominick Meglio's description on how to build libcurl with ares
1034   on win32.