Git init
[external/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Daniel Stenberg (15 Dec 2010)
10 - RELEASE-NOTES: synced with a865bd9fbaaa43e5c
11
12 - IsPipeliningPossible: only for HTTP
13   
14   The function that checks if pipelining is possible now requires the HTTP
15   bit to be set so that it doesn't mistakenly tries to do it for other
16   protocols.
17   
18   Bug: http://curl.haxx.se/mail/lib-2010-12/0152.html
19   Reported by: Dmitri Shubin
20
21 - multi_runsingle: don't timeout completed handles
22   
23   The generic timeout code must not check easy handles that are already
24   completed. Going to completed (again) within there risked decreasing the
25   number of alive handles again and thus it could go negative.
26   
27   This regression bug was added in 7.21.2 in commit ca10e28f06f1
28
29 - symbols-in-versions: CURLOPT_KEYPASSWD fixed
30   
31   It was added in 7.17.0 and is not deprecated
32
33 - RELEASE-NOTES: synced with c28443c551825
34
35 Dan Fandrich (8 Dec 2010)
36 - Mention that using other libraries can affect app licensing
37
38 Yang Tse (7 Dec 2010)
39 - easy: fix compiler warning: end-of-loop code not reached
40
41 Daniel Stenberg (6 Dec 2010)
42 - disconnect: pass on the dead_connection argument
43   
44   Cleanup fix after Kamil's commit 5c7c9a768d0093
45
46 Yang Tse (6 Dec 2010)
47 - sws: fix compier warning: external definition with no prior declaration
48
49 Daniel Stenberg (6 Dec 2010)
50 - [Heinrich Ko brought this change]
51
52   ossl_connect_common: detect connection re-use
53   
54   ossl_connect_common() now checks whether or not 'struct
55   connectdata->state' is equal 'ssl_connection_complete' and if so, will
56   return CURLE_OK with 'done' set to 'TRUE'. This check prevents
57   ossl_connect_common() from creating a new ssl connection on an existing
58   ssl session which causes openssl to fail when it tries to parse an
59   encrypted TLS packet since the cipher data was effectively thrown away
60   when the new ssl connection was created.
61   
62   Bug: http://curl.haxx.se/mail/lib-2010-11/0169.html
63
64 Kamil Dudka (6 Dec 2010)
65 - url: provide dead_connection flag in Curl_handler::disconnect
66   
67   It helps to prevent a hangup with some FTP servers in case idle session
68   timeout has exceeded.  But it may be useful also for other protocols
69   that send any quit message on disconnect.  Currently used by FTP, POP3,
70   IMAP and SMTP.
71
72 Yang Tse (6 Dec 2010)
73 - ssh: fix a download resume point calculation
74
75 Daniel Stenberg (5 Dec 2010)
76 - Curl_wait_for_resolv: correct timeout
77   
78   When looping in this function and checking for the timeout being
79   expired, it was not updating the reference time when calculating the
80   timediff since previous round which made it think each subsequent loop
81   to have taken longer than it actually did.
82   
83   I also modified the function to use the generic Curl_timeleft() function
84   instead of the custom logic.
85   
86   Bug: http://curl.haxx.se/bug/view.cgi?id=3112579
87
88 - Curl_send/recv_plain: return errno on failure
89   
90   When send() and recv() fail, we now store the errno value to allow the
91   app to access it.
92   
93   Bug: http://curl.haxx.se/bug/view.cgi?id=3128121
94   Reported by: Yuri
95
96 Guenter Knauf (5 Dec 2010)
97 - Updated OpenSSL version.
98
99 Yang Tse (4 Dec 2010)
100 - fix compiler warning: conversion may lose significant bits
101
102 - fix compiler warning: assignment within conditional expression
103
104 - fix getinfo CURLINFO_LOCAL* for reused connections (take 2) follow-up
105   
106   - Show address string from proper buffer in case of connection failure.
107   
108   - Try next address when inet_ntop() fails.
109
110 Daniel Stenberg (3 Dec 2010)
111 - version-check: added brief documentation
112   
113   and the traditional source header
114
115 Yang Tse (3 Dec 2010)
116 - build: provide SIZEOF_SIZE_T DOS definition
117
118 - build: lib/config.dos renamed to lib/config-dos.h
119
120 - build: provide SIZEOF_SIZE_T VMS definition
121
122 - build: move config-vms.h from subdir 'packages/vms' into 'lib'
123
124 - build: provide SIZEOF_SIZE_T definition for non-configure builds
125
126 - build: provide SIZEOF_SIZE_T netware definition
127
128 - configure: undo using autobuilds to temporarily verify strict aliasing warnings.
129
130 - fix compiler warning: rounding, sign extension, or loss of accuracy may result
131
132 - fix compiler warning: statement is not reachable
133
134 - fix compiler warning: conversion may lose significant bits
135
136 - connect: fix compiler warning: unused variable
137
138 - fix getinfo CURLINFO_LOCAL* for reused connections (take 2)
139
140 - fix getinfo CURLINFO_LOCAL* for reused connections follow-up
141   
142   Reinstate IPV6 build variable that got removed.
143
144 - fix getinfo CURLINFO_LOCAL* for reused connections
145   
146   Failed to commit this file changes along with the others.
147
148 - fix getinfo CURLINFO_LOCAL* for reused connections
149
150 - atoi: remove atoi usage
151
152 - multi: fix compiler warning: conversion may lose significant bits follow-up
153
154 - ftp: fix 'bool' data type implementation dependant usage
155
156 - multi: fix compiler warning: conversion may lose significant bits
157
158 - multi: fix compiler warning: enumerated type mixed with another type
159
160 - hostip: edit comment
161
162 - xattr: fix compiler warning: enumerated type mixed with another type
163
164 - s/isspace/ISSPACE
165
166 - symbol-scan: use configure script knowledge about how to run the C preprocessor
167
168 - ignore file generated by configure
169
170 - curl_multi_info_read: fix compiler warning: conversion may lose significant bits
171
172 - inet_pton: fix compiler warning
173   
174   warning C4146: unary minus operator applied to unsigned type, result still unsigned
175
176 - Curl_getaddrinfo_ex: sanitize function results follow-up.
177
178 - Curl_getaddrinfo_ex: sanitize function results.
179   
180   Ensure that spurious results from system's getaddrinfo() ares not propagated
181   by Curl_getaddrinfo_ex() into the library.
182   
183   Also ensure that the ai_addrlen member of Curl_getaddrinfo_ex()'s output linked
184   list of Curl_addrinfo structures has appropriate family-specific address size.
185
186 Kamil Dudka (22 Nov 2010)
187 - openldap: use remote port in URL passed to ldap_init_fd()
188   
189   ... not the proxy port.  It makes no difference unless a proxy is used.
190
191 Yang Tse (20 Nov 2010)
192 - gtls: define and use gtls_EAGAIN, gtls_EINTR and gtls_EIO.
193   
194   Winsock builds clobber some errno.h defines in setup_once.
195
196 Dan Fandrich (19 Nov 2010)
197 - Added a couple examples that were missing from the tar ball
198
199 - Check for errors while preprocessing curl.h in test 1119
200   
201   This showed a problem when running the test out-of-tree, so
202   an include path is now being added to pick up the generated
203   curlbuild.h file.
204
205 - Use the 3-argument open for compatibility with older perls
206
207 - [Matthias Bolte brought this change]
208
209   Detect socket errors in GnuTLS on Windows
210   
211   On Windows, translate WSAGetLastError() to errno values as GNU
212   TLS does it internally, too. This is necessary because send() and
213   recv() on Windows don't set errno when they fail but GNU TLS
214   expects a proper errno value.
215   
216   Bug: http://curl.haxx.se/bug/view.cgi?id=3110991
217
218 Yang Tse (19 Nov 2010)
219 - test servers: fix strict aliasing compiler warnings
220
221 - configure: use autobuilds to temporarily verify strict aliasing warnings.
222   
223   Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing
224   rules and warnings. Given that cross-compiled targets autobuilds do not run the
225
226 Julien Chaffraix (17 Nov 2010)
227 - configure: Prevent link errors with --librtmp.
228   
229   If --librtmp was specified but pkg-config could not find the librtmp
230   file, we would have undefined symbols when linking curl.
231   
232   We prevent this error by disabling this case as suggested on the mailing
233   list.
234
235 Daniel Stenberg (15 Nov 2010)
236 - RELEASE-NOTES: synced with cbf4961bf3e4
237
238 - gnutls->handshake: improved timeout handling
239   
240   When no timeout is set, we call the socket_ready function with a timeout
241   value of 0 during handshake, which makes it loop too much/fast in this
242   function. It also made this function return CURLE_OPERATION_TIMEDOUT
243   wrongly on a slow handshake.
244   
245   However, the particular bug report that highlighted this problem is not
246   solved by this fix, as this fix only makes the more proper error get
247   reported instead.
248   
249   Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594150
250   Reported by: Johannes Ernst
251
252 Julien Chaffraix (13 Nov 2010)
253 - urldata: Capitalize enum protect_level values.
254   
255   This makes it easier to spot the enum values from the variables.
256   Removed some unneeded DEBUGASSERT added in the previous commit.
257
258 - security: tighten enum protection_level usage.
259   
260   While changing Curl_sec_read_msg to accept an enum protection_level
261   instead of an int, I went ahead and fixed the usage of the associated
262   fields.
263   
264   Some code was assuming that prot_clear == 0. Fixed those to use the
265   proper value. Added assertions prior to any code that would set the
266   protection level.
267
268 Yang Tse (13 Nov 2010)
269 - configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body
270
271 Daniel Stenberg (12 Nov 2010)
272 - curl.1: "a file", not an
273
274 - version-check.pl: display version number for symbols
275   
276   This script is the start of a helper tool that scans a source code and
277   outputs the most recent libcurl version it finds symbols for. Meaning
278   that if there's no conditions in the code, that's the earliest libcurl
279   version the scanned code requires.
280   
281   It is not added to the Makefile.am yet as it is still a bit crude, but
282   I'm committing it to keep it and allow us to work on it.
283
284 - [Adam Light brought this change]
285
286   Makefile.vc6: fixed the xattr.c compile
287
288 Julien Chaffraix (12 Nov 2010)
289 - krb5: Use GSS_ERROR to check for error.
290   
291   This is the advised way of checking for errors in the GSS-API RFC.
292   Also added some '\n' to the error message so that they are not mixed
293   with other outputs.
294
295 - security: Pass the right parameter to init.
296   
297   init is expecting app_data. Passing it the struct connecdata would make
298   us crash later.
299
300 Daniel Stenberg (11 Nov 2010)
301 - HTTP Auth: Add CURLAUTH_ONLY
302   
303   This is a meta symbol. OR this value together with a single specific
304   auth value to force libcurl to probe for un-restricted auth and if not,
305   only that single auth algorithm is acceptable.
306   
307   For example you can use CURLAUTH_DIGEST|CURLAUTH_ONLY to make libcurl
308   first probe for what method to use, but yet only consider Digest to be
309   acceptable.
310   
311   Using _only_ CURLAUTH_DIGEST without the CURLAUTH_ONLY field, will make
312   libcurl explicitly use Digest right away and not do any probing.
313
314 - ip_version: moved to connection struct
315   
316   The IP version choice was previously only in the UserDefined struct
317   within the SessionHandle, but since we sometimes alter that option
318   during a request we need to have it on a per-connection basis.
319   
320   I also moved more "init conn" code into the allocate_conn() function
321   which is designed for that purpose more or less.
322
323 Yang Tse (11 Nov 2010)
324 - buildconf: MAC OS X requires libtool version 1.5.26 or newer
325   
326   MAC OS X requires libtool version 1.5.26 or newer, otherwise
327   configure will mishandle *.dSYM directories when it runs.
328
329 - configure: remove temporary autobuilds exercising of xattr function tests
330
331 - configure: use autobuilds to temporarily exercise xattr function tests
332
333 - xattr: portability fix
334
335 - curl-functions: provide xattr function tests that also check number of arguments
336
337 Daniel Stenberg (10 Nov 2010)
338 - test1120: verify FTP response 421
339   
340   curl mustn't try to use the control connection after the 421 is received
341
342 - ftpserver.pl: spellfix comment
343
344 - [Rutger Hofman brought this change]
345
346   TFTP: resend the correct data
347   
348   I found a bug in tftp_tx() in tftp.c. If a data resend is done after
349   reception of an ACK/OACK, the call to sendto is wrong.
350
351 - [Stefan Tomanek brought this change]
352
353   write extended attributes by using fsetxattr
354   
355   Instead of reopening the downloaded file, fsetxattr uses the (already
356   open) file descriptor to attach extended attributes. This makes the
357   procedure more robust against errors caused by moved or deleted files.
358
359 Dan Fandrich (9 Nov 2010)
360 - Check for getinfo errors before setting attributes
361
362 Kamil Dudka (9 Nov 2010)
363 - ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT
364   
365   Bug: https://bugzilla.redhat.com/650255
366   Reported by: Simon H.
367
368 Daniel Stenberg (9 Nov 2010)
369 - symbols-in-version: add CURL_SOCKET_BAD
370   
371   I also documented the filtering logic in the symbol-scan.pl function to
372   clarify why not all CURL_* symbols are included.
373
374 Yang Tse (9 Nov 2010)
375 - serial number bump
376
377 Kamil Dudka (8 Nov 2010)
378 - ftp: close connection as soon as ABOR has been sent
379   
380   ... and do not send ABOR unless really necessary.
381   
382   Bug: https://bugzilla.redhat.com/649347
383   Reported by: Simon H.
384
385 Daniel Stenberg (8 Nov 2010)
386 - RELEASE-NOTES: synced with fc6c4c10f9faab08
387   
388   I also recounted and updated the command line and libcurl options.
389
390 - help: indent the --xattr option like the others
391
392 - curl.1: --resolve documented
393
394 - CURLOPT_RESOLVE: documented
395
396 - CURLOPT_USE_SSL: move from FTP options to connection options
397
398 - xattr-check: correct the comment as well
399
400 - xattr: use const char * for const strings
401
402 - setxattr: fix the checks
403   
404   My copy and paste job was a little too much copy and I missed to adjust
405   it properly to sys/xattr.h all over and this is a fix to cure that.
406
407 - CURLOPT_RESOLVE: added
408   
409   CURLOPT_RESOLVE is a new option that sends along a curl_slist with
410   name:port:address sets that will populate the DNS cache with entries so
411   that request can be "fooled" to use another host than what otherwise
412   would've been used. Previously we've encouraged the use of Host: for
413   that when dealing with HTTP, but this new feature has the added bonus
414   that it allows the name from the URL to be used for TLS SNI and server
415   certificate name checks as well.
416   
417   This is a first change. Surely more will follow to make it decent.
418
419 Yang Tse (8 Nov 2010)
420 - fix compiler warning
421
422 Dan Fandrich (7 Nov 2010)
423 - Added os-specific.c and xattr.c to the Symbian build files
424
425 Yang Tse (7 Nov 2010)
426 - xattr: fix VisualStudio builds
427
428 - fix snapshot generation
429
430 Daniel Stenberg (5 Nov 2010)
431 - --libcurl: simplify output
432   
433   Removed the code that was needed for libcurl before 7.19.0 which now is
434   more than two years old.
435   
436   Simplified the top comment and corrected the URL.
437
438 - [Alfred Gebert brought this change]
439
440   LDAP: detect non-binary attributes properly
441   
442   If the query result has a binary attribute, the binary attribute is
443   base64 encoded. But all following non binary attributes are also base64
444   encoded which is wrong.
445   
446   This is a test (LDAP server is public).
447   
448   curl
449   ldap://x500.bund.de:389/o=Bund,c=DE?userCertificate,certificateSerialNumber?sub
450   ?cn=*Woehleke*
451
452 - xattr: add configure check and #ifdefs
453   
454   setxattr is a glibc call to set extended attributes, so configure now
455   checks for it and the code is adapted to only build when the
456   functionality is present.
457
458 - [Stefan Tomanek brought this change]
459
460   save metadata to extended file attributes
461   
462   It is often convinient to track back the source of a once downloaded
463   file; this patch makes curl store the source URL and other metadata
464   alongside the retrieved file by using the extended attributes (if
465   supported by the file system and enabled by --xattr).
466
467 - test: remove test 580
468   
469   Test 580 is removed again for two reasons:
470   
471   1) Some compilers aren't satisfied by just a data variable called 'test'
472   when first.o wants a function called 'test'. The Solaris compiler says
473   "ld: warning: symbol `test' has differing types:" while the AIX compiler
474   downright rejects it.
475   
476   2) Test case 1119 that was added after this test is way more complete
477   and cover everything test 580 does and more without introducing the same
478   problems.
479
480 - Revert: use Host: name for SNI and cert name checks
481   
482   This reverts commit b0fd03f5b8d4520dd232a9d13567d16bd0ad8951,
483   4b2fbe1e97891f, afecd1aa13b4f, 68cde058f66b3
484
485 - TODO-RELEASE: "TLS SNI use Host:" is done
486   
487   262 - Manual setting of TLS Server Name Indication - use Host:
488
489 - RELEASE-NOTES: synced with 7b823badbcab9d330
490
491 - curl.1: added a few missing exit codes
492
493 - certcheck: use the custom Host: name for checks
494   
495   If you use a custom Host: name in a request to a SSL server, libcurl
496   will now use that given name when it verifies the server certificate to
497   be correct rather than using the host name used in the actual URL.
498
499 - SNI: simplify the custom host name use
500   
501   The redirect check is already done at the position where the customhost
502   field is assigned so there's no point in doing that a second time.
503
504 - host: get the custom Host: name more genericly
505   
506   When given a custom host name in a Host: header, we can use it for
507   several different purposes other than just cookies, so we rename it and
508   use it for SSL SNI etc.
509
510 - [Hongli Lai (Phusion) brought this change]
511
512   SNI: set name to custom Host header
513   
514   OpenSSL SNI host name should be set to the custom Host header, if the
515   user provided one.
516
517 - fopen.c: re-indented, fixed previous mistake
518   
519   I've made the code intended using curl-style now to look more like other
520   examples.
521   
522   My previous "fix" was a bit too invasive but is now fixed again.
523
524 - multi use: call multi_perform even on select() timeouts
525
526 - example: add smtp-multi.c
527   
528   An example application source code sending SMTP mail with the multi
529   interface. It is based on the code Alona Rossen provided, which in turn
530   is based on existing example/test code, and I converted it even more
531   into a decent example with a fair multi API use, put the info required
532   to edit at the top and I added some comments.
533
534 - CURLOPT_NOSIGNAL: add blurb about SIGPIPE
535
536 Dan Fandrich (3 Nov 2010)
537 - Allow building test 580 out of tree
538
539 Daniel Stenberg (3 Nov 2010)
540 - dist: add symbol-scan.pl to the tarball
541
542 - test1119: verify symbols-in-versions
543
544 - runtests: allow tests written as perl scripts
545   
546   If a command is set type="perl", it can now specify a perl program that will
547   be run instead of an ordinary curl or built tool.
548   
549   A perl test automatically disables memory and valgrind debugging.
550
551 - symbol-scan: verifies symbols-in-versions
552   
553   This new script scans for all enums and #defines used by the curl/curl.h
554   and curl/multi.h headers. Then it reads all symbols mentioned in
555   symbols-in-vesions and make sure that there's no entries missing in
556   there. It then proceeds to verify that the entries that
557   symbols-in-vesions mentions but aren't found in the sources are truly
558   documented as removed.
559   
560   This script is used in the new test case 1119
561
562 - symbols-in-versions: added 119 missing symbols
563   
564   I've developed a script I call symbol-scan.pl that scans the curl.h and
565   multi.h header files and compare the symbols it finds in there with the
566   symbols symbols-in-versions documents and outputs a report on the
567   differences.  Using this I've dug through the history to fill up
568   symbols-in-versions with all the symbols my script found mismatches for.
569   
570   I will commit symbol-scan.pl separatly and think of a way to put it to
571   use in the build/tests so that we from now on will get this in-sync
572   check automatically.
573
574 Dan Fandrich (2 Nov 2010)
575 - Added mk580.pl to the tar ball
576
577 Daniel Stenberg (2 Nov 2010)
578 - symbols-in-versions: added missing symbols
579
580 - ignore: lib580.c is generated by mk580.pl
581
582 - test: added test 580 - verifies symbols-in-versions
583   
584   The new perl script mk580.pl generates a C table in a fresh source file
585   named lib580.c and if that compiles fine we know that the file
586   docs/libcurl/symbols-in-versions at least doesn't include any symbols
587   that are misspelled.
588   
589   An additional feature would be to somehow scan curl/curl.h and compare
590   with symbols-in-versions to see if there are symbols missing.
591
592 - spellfix: CURLOPT_TFTP_BLKSIZE it is
593
594 Kamil Dudka (29 Oct 2010)
595 - ftp: prevent server from hanging on closed data connection
596   
597   Some FTP servers (e.g. Pure-ftpd) end up hanging if we close the data
598   connection before transferring all the requested data.  If we send ABOR
599   in that case, it prevents the server from hanging.
600   
601   Bug: https://bugzilla.redhat.com/643656
602   Reported by: Pasi Karkkainen, Patrick Monnerat
603
604 Dan Fandrich (28 Oct 2010)
605 - Removed a leftover mention of FTP in an error message
606
607 - Removed the native Makefile.riscos files
608   
609   These haven't worked in at least 8 years due to missing source
610   files, and most active RiscOS developers these days apparently
611   cross-compile anyway.
612   
613   Signed-off-by: James Bursa <james@zamez.org>
614
615 - Lightened the stack in wc_statemach to permit deeper recursion
616   
617   Also, added a few hints to help compilers to perform tail call
618   recursion optimization.
619
620 Daniel Stenberg (20 Oct 2010)
621 - SSH: use libssh2_session_handshake()
622   
623   In libssh2 1.2.8, libssh2_session_handshake() replaces
624   libssh2_session_startup() to fix the previous portability problem with
625   the socket type that was too small for win64 and thus easily could cause
626   crashes and more.
627
628 - SSH: avoid using the libssh2_ prefix
629   
630   It is a bad idea to use the public prefix used by another library and
631   now we realize that libssh2 introduces a symbol in the upcoming version
632   1.2.8 that conflicts with our static function named libssh2_free.
633
634 - formdata: provide error message
635   
636   When failing to build form post due to an error, the code now does a
637   proper failf(). Previously libcurl would report an error like "failed
638   creating formpost data" when a file wasn't possible to open which was
639   not easy for users to figure out.
640   
641   I also lower cased a function name to be named more curl-style and
642   removed some unnecessary code.
643
644 - URL-parsing: consider ? a divider
645   
646   The URL parser got a little stricter as it now considers a ? to be a
647   host name divider so that the slightly sloppier URLs work too. The
648   problem that made me do this change was the reported problem with an URL
649   like: www.example.com?email=name@example.com This form of URL is not
650   really a legal URL (due to the missing slash after the host name) but is
651   widely accepted by all major browsers and libcurl also already accepted
652   it, it was just the '@' letter that triggered the problem now.
653   
654   The side-effect of this change is that now libcurl no longer accepts the
655   ?  letter as part of user-name or password when given in the URL, which
656   it used to accept (and is tested in test 191). That letter is however
657   mentioned in RFC3986 to be required to be percent encoded since it is
658   used as a divider.
659   
660   Bug: http://curl.haxx.se/bug/view.cgi?id=3090268
661
662 - curl_easy_setopt.3: spellfix
663
664 - curl_easy_setopt.3: CURLOPT_USE_SSL is not just for FTP
665   
666   It is for FTP, SMTP, POP3, IMAP at least.
667
668 - krb4.h: removed unused prototypes
669
670 - krb4: make a few functions static
671
672 - TODO-RELEASE: cleanup for 7.21.3 works
673   
674   "SFTP resume with 4GB file does not work" is now removed as I'm sure
675   this is really a libssh2 bug and not a libcurl bug.
676   
677   7.21.2 is released already
678
679 - RELEASE-NOTES: sync with 09a2d93a0f17ca
680
681 - http_chunks: remove debug output
682   
683   Accidentally left in there during my previous debugging of this
684
685 - Curl_setopt: disallow CURLOPT_USE_SSL without SSL support
686   
687   In order to avoid for example the pingpong protocols to issue STARTTLS
688   (or equivalent) even though there's no SSL support built-in.
689   
690   Reported by: Sune Ahlgren
691   Bug: http://curl.haxx.se/mail/archive-2010-10/0045.html
692
693 - options: check for features for some options
694   
695   Some options, such as the automatic decompression and some SSL related
696   ones now will bail out if the underlying libcurl doesn't have support
697   for the particular feature needed.
698
699 Dan Fandrich (14 Oct 2010)
700 - Fixed the IPv6 host address in test1203
701   
702   Reported by: Christian Weisgerber
703   Bug: http://curl.haxx.se/bug/view.cgi?id=3087479
704
705 Daniel Stenberg (14 Oct 2010)
706 - curl_easy_setopt.3: clarify CURLOPT_CRLF
707   
708   The option takes a parameter that should be 1 or 0 to enable or disable
709   the feature.
710   
711   URL: http://curl.haxx.se/bug/view.cgi?id=3086428
712
713 Guenter Knauf (14 Oct 2010)
714 - Some more small Watcom makefile fixes.
715
716 - Added --noconfigure switch to testcurl.pl.
717
718 - Modified Watcom makefiles to work on Linux too.
719
720 - Added MingW32 rtmp target; changed Watcom targets.
721   
722   Modified Watcom targets to avoid backslashs so that they can
723   work on Linux too.
724
725 Daniel Stenberg (13 Oct 2010)
726 - gitignore: ignore Makefile.vc10.dist made by maketgz
727
728 - curlver.h: start over at 7.21.3
729
730 - RELEASE-NOTES: start over towards 7.21.3
731
732 - THANKS: added contributors from 7.21.2
733
734 Version 7.21.2 (12 Oct 2010)
735
736 Daniel Stenberg (12 Oct 2010)
737 - RELEASE-NOTES: synced with ecd624b8e774a85
738
739 - [Julien Chaffraix brought this change]
740
741   CMake: Build fix.
742   
743   Do not match the trailing '\n' in the regular expression as this would
744   make us dump a ) parenthesis on a new line.
745   
746   This fixes the following error:
747   
748   would get transformed into:
749   
750   )
751   
752   Bug: http://curl.haxx.se/mail/lib-2010-10/0065.html
753   Reported by: Dimitre Dimitrov
754
755 - header_callback: strip off file path separated with backslashes
756   
757   If the filename contains a backslash, only use filename portion. The
758   idea is that even systems that don't handle backslashes as path
759   separators probably want that path removed for convenience.
760   
761   This flaw is considered a security problem, see the curl security
762   vulnerability http://curl.haxx.se/docs/adv_20101013.html
763
764 Dan Fandrich (12 Oct 2010)
765 - Get the curl source files for Amiga from Makefile.inc
766   
767   This is similar to how it's done in the lib directory.
768   The Amiga build appears to have been broken for a year because
769   of a missing homedir.c
770
771 - Added section on server-supplied names to security considerations
772
773 Guenter Knauf (12 Oct 2010)
774 - Fixed Watcom makefile.
775
776 - Added build bits for librtmp / libssh2 to Watcom makefiles.
777
778 - Added build bits for librtmp to NetWare makefiles.
779
780 Daniel Stenberg (12 Oct 2010)
781 - SFTP: more ignoring negative file sizes
782   
783   As the change in 5f0ae7a0626cbe709 added a precaution against negative
784   file sizes that for some reason managed to get returned, this change now
785   introduces the same check at the second place in the code where the file
786   size from the libssh2 stat call is used.
787   
788   This check might not be suitable for a 32 bit curl_off_t, but libssh2.h
789   assumes long long to work and to be 64 bit so I believe such a small
790   curl_off_t will be very unlikely to occur in the wild.
791
792 - SMTP: debug output for no known auth mechanisms supported
793   
794   ... and some minor source code whitespace edits
795
796 - test: urlglob error messages have no extra newline anymore
797
798 Guenter Knauf (11 Oct 2010)
799 - Added build bits for librtmp to MingW32 makefiles.
800
801 Daniel Stenberg (8 Oct 2010)
802 - RELEASE-NOTES: synced with 61f4cdb73ae4
803
804 - globbing: fix crash on unballanced open brace
805   
806   Having an open brace without a closing brace caused a segfault.
807   
808   Having a closing brace too many caused a silent error to occur, which
809   caused curl to bail out and return an error code but no error message
810   was shown. It does now!
811   
812   All error message outputs no longer wrongly get _two_ newlines written
813   after the error message.
814   
815   Reported by: Vlad Ureche
816   Bug: http://curl.haxx.se/bug/view.cgi?id=3083942
817
818 - [Dan Locks brought this change]
819
820   libcurl.m4: AC_PATH_PROG fixes
821   
822   The invocation of autoconf's AC_PATH_PROG( ) is not quite right for
823   finding curl-config. This fix corrects the negative case (where
824   curl-config is not found).
825
826 - FAQ: added "How do I submit my patch?"
827
828 - examples: use example.com in example URLs
829
830 - TODO-RELEASE: libidn problem not repeatable
831   
832   "261 - configure and libidn" is removed from the list since Julien
833   Chaffraix tried to repeat it but failed and the reporter did not return
834   to provide further details.
835   
836   Reported by: Lyndon Hill
837   Bug: http://curl.haxx.se/mail/lib-2010-07/0029.html
838
839 - libcurl.m4: mention argument is PREFIX
840   
841   The macro provides a --with-libcurl option that expects a PREFIX to be
842   specified and not actually a "directory" in which libcurl will be found.
843   This now spells that out more clearly.
844   
845   Reported by: Dan Locks
846   Bug: http://curl.haxx.se/bug/view.cgi?id=3079891
847
848 Guenter Knauf (3 Oct 2010)
849 - Some NetWare makefile tweaks.
850   
851   Renamed SDK_* to NDK_*; made NDK_* defines overwriteable from
852   environment; removed now obsolete YACC macro;
853   moved some curl_config.h defines to IPv6 section since they
854   are only needed when IPv6 is enabled - this makes libcurl compile
855   with older NDKs too which were not IPv6-aware.
856
857 Daniel Stenberg (2 Oct 2010)
858 - TODO-RELEASE: 416 error fixed
859   
860   "3076808 Requests fail silently following a 416 error" done
861
862 Julien Chaffraix (2 Oct 2010)
863 - krb5-gssapi: Removed a memory leak in krb5_auth.
864   
865   We forgot to release the buffer passed to gss_init_sec_context.
866   
867   The previous logic was difficult to read as we were reusing the same
868   variable (gssbuf) for both input buffer and output buffer. Splitted the
869   logic in 2 variables to better underline who needs to be released.
870   Also made the code break at 80 lines.
871
872 - krb5-gssapi: Made the function always return a value.
873   
874   kr5_auth missed a final 'return' statement. This is not an error in
875   gcc but can lead to potential bugs.
876
877 - krb5-gssapi: Delete the GSS-API context.
878   
879   This fixes a memory leak related to the GSS-API code.
880   
881   Added a krb5_init and krb5_end functions. Also removed a work-around
882   the lack of proper initialization of the GSS-API context.
883
884 Daniel Stenberg (2 Oct 2010)
885 - HTTP: remove special case for 416
886   
887   It was pointed out that the special case libcurl did for 416 was
888   incorrect and wrong. 416 is not really different to other errors so the
889   response body must be handled like for other errors/http responses.
890   
891   Reported by: Chris Smowton
892   Bug: http://curl.haxx.se/bug/view.cgi?id=3076808
893
894 - [Dan Fandrich brought this change]
895
896   sws: Added writedelay HTTP server command
897   
898   This delays between write operations, hopefully making it easier
899   to spot problems where libcurl doesn't flush the socket properly
900   before waiting for the next response.
901
902 - TODO-RELEASE: no bug in ftp_nextconnect
903   
904   The issue named "266 - Bug in ftp_nextconnect?" was deemed to not be a
905   bug and instead resulted in clarified docs.
906
907 - curl_easy_setopt.3: CURLOPT_DIRLISTONLY implies dir list
908   
909   Make it explicit that setting CURLOPT_DIRLISTONLY to 1 will make libcurl
910   to list the directory.
911
912 - RELEASE-NOTES: synced up to 588402585bae
913
914 - TODO-RELEASE: move new features to next release
915
916 - README.ares: we know require c-ares 1.6.0
917
918 - SFTP: avoid downloading negative sizes!
919   
920   It is still not clarified exactly why this happens, but libssh2
921   sometimes report a negative file size for the remote SFTP file and that
922   deeply confuses libcurl (or crashes it) so this precaution is added to
923   avoid badness.
924   
925   Reported by: Ernest Beinrohr
926   Bug: http://curl.haxx.se/bug/view.cgi?id=3076430
927
928 - TODO-RELEASE: drop curl_easy_setoptv
929   
930   I haven't read any really convincing arguments for adding it
931
932 - [Dirk Manske brought this change]
933
934   multi & hiper examples: updates and cleanups
935   
936   all multi and hiper examples:
937   
938   * don't loop curl_multi_perform calls, that was <7.20.0 style, currently
939     the exported multi functions will not return CURLM_CALL_MULTI_PERFORM
940   
941   all hiper examples:
942   * renamed check_run_count to check_multi_info
943   * don't  compare current running handle count with previous value, this
944     was the wrong way to check for finished requests, simply call
945     curl_multi_info_read
946   * it's also safe to call curl_multi_remove_handle inside the
947     curl_multi_info_read loop.
948   
949   ghiper.c:
950   * replaced curl_multi_socket (that function is marked as obsolete) calls
951     with curl_multi_socket_action calls (as in hiperfifo.c and
952     evhiperfifo.c)
953   
954   ghiper.c and evhiperfifo.c:
955   * be smart as hiperfifo.c, don't do uncessary curl_multi_* calls in
956     new_conn and main
957
958 - TODO-RELEASE: one fixed, one postponed, one added
959   
960   As we're already in feature freeze, I pushed the feature onwards.
961
962 Dan Fandrich (29 Sep 2010)
963 - Renamed test1204 to test1117 to move it into the normal range
964
965 Patrick Monnerat (29 Sep 2010)
966 - Add gopher protocol definition to ILE/RPG binding.
967   OS400 compile script in test dir updated for chkhostname.
968
969 Julien Chaffraix (28 Sep 2010)
970 - krb5-gssapi: Remove several memory leaks.
971   
972   Remove a leak seen on Kerberos/MIT (gss_OID is copied internally and
973   we were leaking it). Now we just pass NULL as advised in RFC2744.
974   
975   |tmp| was never set back to buf->data.
976   
977   Cleaned up Curl_sec_end to take into account failure in Curl_sec_login
978   (where conn->mech would be NULL but not conn->app_data or
979   conn->in_buffer->data).
980
981 - security.c: Remove Curl_sec_fflush_fd.
982   
983   The current implementation would make us send wrong data on a closed
984   socket. We don't buffer our data so the method can be safely removed.
985
986 - security.c: We should always register the socket handler.
987   
988   Following a change in the way socket handler are registered, the custom
989   recv and send method were conditionaly registered.
990   We need to register them everytime to handle the ftp security
991   extensions.
992   
993   Re-added the clear text handling in sec_recv.
994
995 - security.c: Fix Curl_sec_login after rewrite.
996   
997   Curl_sec_login was returning the opposite result that the code in ftp.c
998   was expecting. Simplified the return code (using a CURLcode) so to see
999   more clearly what is going on.
1000
1001 - security.c: Readd the '\n' to the infof() calls.
1002   
1003   They are not automatically added and make the output of the verbose
1004   mode a lot more readable.
1005
1006 - security.c: Fix typo (PSBZ -> PBSZ)
1007
1008 - security.c: Fix ftp_send_command.
1009   
1010   My use of va_args was completely wrong. Fixed the usage so that
1011   we send the right commands!
1012
1013 Daniel Stenberg (28 Sep 2010)
1014 - curl_easy_escape: don't escape "unreserved" characters
1015   
1016   According to RFC3986 section 2.3 the letters -, ., _ and ~ should not be
1017   percent-encoded.
1018   
1019   Reported by: Miguel Diaz
1020   Bug: http://curl.haxx.se/mail/lib-2010-09/0227.html
1021
1022 - multi: don't expire timeouts at disonnect or done
1023   
1024   The functions Curl_disconnect() and Curl_done() are both used within the
1025   scope of a single request so they cannot be allowed to use
1026   Curl_expire(... 0) to kill all timeouts as there are some timeouts that
1027   are set before a request that are supposed to remain until the request
1028   is done.
1029   
1030   The timeouts are now instead cleared at curl_easy_cleanup() and when the
1031   multi state machine changes a handle to the complete state.
1032
1033 Dan Fandrich (27 Sep 2010)
1034 - Changed the TPF make file to get source files from Makefile.inc
1035   
1036   Patch was fixed and validated by David McCreedy.
1037
1038 - Added test case 1204 to test HTTP range failure
1039   
1040   This is an attempt to reproduce bug #3076808
1041
1042 Daniel Stenberg (27 Sep 2010)
1043 - [Dirk Manske brought this change]
1044
1045   multi_runsingle: set timeout error messages
1046   
1047   With the latest changes to fix the timeout handling with multi interface
1048   we lost the timeout error messages. This patch brings them back.
1049
1050 - TODO-RELEASE: updated list of issues to work on
1051
1052 - parsedate: allow time specified without seconds
1053   
1054   The date format in RFC822 allows that the seconds part of HH:MM:SS is
1055   left out, but this function didn't allow it. This change also includes a
1056   modified test case that makes sure that this now works.
1057   
1058   Reported by: Matt Ford
1059   Bug: http://curl.haxx.se/bug/view.cgi?id=3076529
1060
1061 - TFTP: re-indented the source code
1062   
1063   Just made sure that the good old curl indentation style is used all over
1064   this file.
1065
1066 - [Tim Newsome brought this change]
1067
1068   TFTP: Work around tftpd-hpa upload bug
1069   
1070   tftpd-hpa has a bug where it will send an incorrect ack when the block
1071   counter wraps and tftp options have been sent. Work around that by
1072   accepting an ack for 65535 when we're expecting one for 0.
1073
1074 - Revert "security.c: buffer_read various fixes."
1075   
1076   This reverts commit fbb38de415b7bb7d743e53a7b4b887ffb12b3e5b.
1077
1078 - security.c: removed superfluous parentheses
1079   
1080   And also removed the FIXME where memory was zeroed just before freed,
1081   and some other minor whitespace changes.
1082
1083 - [Julien Chaffraix brought this change]
1084
1085   security.c: Update the #include statements after the rewrite.
1086
1087 - [Julien Chaffraix brought this change]
1088
1089   security.c: sec_write tweaks
1090   
1091   - |fd| is now a curl_socket_t and |len| a size_t to avoid conversions.
1092   - Added 2 FIXMEs about the 2 unsigned -> signed conversions.
1093   - Included 2 minor changes to Curl_sec_end.
1094
1095 - [Julien Chaffraix brought this change]
1096
1097   security.c: _sec_send tweaks
1098   
1099   - Renamed the method to sec_send now that we
1100     renamed sec_send to do_sec_send.
1101   - Some more variable renaming.
1102
1103 - [Julien Chaffraix brought this change]
1104
1105   security.c: sec_read tweaks
1106   
1107   - Renamed the function to sec_recv.
1108   - Renamed the parameters and variable to match the rest of the code.
1109
1110 - [Julien Chaffraix brought this change]
1111
1112   security.c: Curl_sec_fflush_fd tweaks
1113   
1114   - Use an early return as it makes the code more readable.
1115   - Added a FIXME about a conversion.
1116
1117 - [Julien Chaffraix brought this change]
1118
1119   security.c: sec_send tweaks
1120   
1121   - Renamed it to do_sec_send as it is the function doing the actual
1122     transfer.
1123   - Do not return any values as no one was checking it and it never
1124     reported a failure (added a FIXME about checking for errors).
1125   - Renamed the variables to make their use more specific.
1126   - Removed some casts (int -> curl_socket_t, ...)
1127   - Avoid doing the htnl <-> nthl twice by caching the 2 results.
1128
1129 - [Julien Chaffraix brought this change]
1130
1131   security.c: Curl_sec_read_msg tweaks
1132   
1133   - Renamed the variables name to better match their intend.
1134   - Unified the |decoded_len| checks.
1135   - Added some FIXMEs to flag some improvement that did not go in this
1136     change.
1137
1138 - [Julien Chaffraix brought this change]
1139
1140   security.c: Curl_sec_set_protection_level tweaking
1141   
1142   - Removed sec_prot_internal as it is now inlined in the function (this removed
1143     a redundant check).
1144   - Changed the prototype to return an error code.
1145   - Updated the method to use the new ftp_send_command function.
1146   - Added a level_to_char helper method to avoid relying on the compiler's
1147     bound checks. This default to the maximum security we have in case of a
1148     wrong input.
1149
1150 - [Julien Chaffraix brought this change]
1151
1152   security.c: factored the logic from Curl_sec_login into a dedicated method that better reflect its intent.
1153   
1154   Introduced a helper method ftp_send_command that synchronously send
1155   an FTP query.
1156
1157 - [Julien Chaffraix brought this change]
1158
1159   security.c: Remove out_buffer as it was never written into.
1160
1161 - [Julien Chaffraix brought this change]
1162
1163   security.c: buffer_read various fixes.
1164   
1165   Tighten the type of the |data| parameter to avoid a cast. Also made
1166   it const as we should not modify it.
1167   
1168   Added a DEBUGASSERT on the size to be written while changing it.
1169
1170 - [Julien Chaffraix brought this change]
1171
1172   security.c: Made block_write return a CURLcode.
1173   
1174   While doing so, renamed it to socket_write to better match its
1175   function.
1176
1177 - [Julien Chaffraix brought this change]
1178
1179   security.c: Made block_read and sec_get_data return CURLcode.
1180   
1181   To do so, made block_read call Curl_read_plain instead of read.
1182   
1183   While changing them renamed block_read to socket_read and sec_get_data
1184   to read_data to better match their function.
1185   
1186   Also fixed a potential memory leak in block_read.
1187
1188 - [Julien Chaffraix brought this change]
1189
1190   Security.c: Fix headers guard to match the rest of the code.
1191
1192 - [Julien Chaffraix brought this change]
1193
1194   configure: Fix the LDAPS disable message
1195   
1196   ... for example when LDAP is not compiled.
1197   
1198   Fixed the logic to match the rest of the options' message that is we
1199   update the default message only if the option is not disabled after the
1200   different checks.
1201   
1202   Reported by: Guenter Knauf
1203
1204 - RELEASE-NOTES: sync with 8665d4e5 and c-ares >= 1.6.0 note
1205
1206 - parse_remote_port: ignore colons without port number
1207   
1208   Obviously, browsers ignore a colon without a following port number. Both
1209   Firefox and Chrome just removes the colon for such URLs. This change
1210   does not remove the colon for URLs sent over a HTTP proxy, so we should
1211   consider doing that change as well.
1212   
1213   Reported by: github user 'kreshano'
1214
1215 - RELEASE-NOTES: in sync with 19f45eaa799
1216
1217 - duphandle: use ares_dup()
1218   
1219   curl_easy_duphandle() was not properly duping the ares channel. The
1220   ares_dup() function was introduced in c-ares 1.6.0 so by starting to use
1221   this function we also raise the bar and require c-ares >= 1.6.0
1222   (released Dec 9, 2008) for such builds.
1223   
1224   Reported by: Ning Dong
1225   Bug: http://curl.haxx.se/mail/lib-2010-08/0318.html
1226
1227 - [Hendrik Visage brought this change]
1228
1229   MacOSX-Framework: updates for Snowleopard
1230   
1231   1) PPC64 appears to be an 10.5 only supported architecture, so I
1232   forced 10.5 for 64bit if there is a need for PPC64, else 64bit only
1233   does x86_64
1234   
1235   2) proper "make clean" after every ./configure. fixes a bug where
1236   subsequent runs the 32bit do not get compiled
1237   
1238   3) Added a version numbering curl-$VERSION} rather than the "stock standard" A
1239
1240 - RELEASE-NOTES: synced with 5fcc4332d62fe
1241   
1242   Removed the duplicate entry of Kamil in the credits.
1243
1244 - configure: don't enable RTMP if the lib detect fails
1245   
1246   librtmp is often statically linked and using sub dependencies like
1247   OpenSSL, so we need to make sure we can actually link with it properly
1248   before enabling it. Otherwise we easily end up trying to link with a
1249   RTMP lib that fails.
1250
1251 - TODO: added 8.4 non-gcrypt under GnuTLS
1252   
1253   We must not assume gcrypt just because of GnuTLS
1254
1255 - configure: check for gcrypt if using GnuTLS
1256   
1257   1 - libcurl assumes that there are gcrypt functions available when
1258   GnuTLS is.
1259   
1260   2 - GnuTLS can be built to use libnettle instead as crypto library,
1261   which breaks assumption (1)
1262   
1263   This change makes configure make sure that if GnuTLS is requested and
1264   detected, it also makes sure that gcrypt is present or it errors
1265   out. This is mostly a way to make the user more aware of this flaw, the
1266   correct fix would be to detect which crypto layer that is in use and
1267   adapt our code to use that instead of blindly assuming gcrypt.
1268   
1269   Reported by: Michal Gorny
1270   Bug: http://curl.haxx.se/bug/view.cgi?id=3071038
1271
1272 - RELEASE-NOTES: sync from d2a7fd2fe65b to HEAD
1273
1274 - FTP: fix bad check of Curl_timeleft() return code
1275   
1276   When it returns 0 it means no timeout. Only a negative value means that
1277   we're out of time.
1278
1279 - LDAP: moved variable declaration to avoid compiler warn
1280   
1281   If built without HTTP or proxy support it would cause a compiler warning
1282   due to the unused variable. I moved the declaration of it into the only
1283   scope it is used.
1284
1285 Tor Arntsen (18 Sep 2010)
1286 - LDAP: Use FALSE instead of bool_false when setting bits.close
1287   
1288   bool_false is the internal name used in the setup_once.h definition
1289   we fall back to for non-C99 non-stdbool systems, it's not the actual
1290   name to use in assignments (we use bool_false, bool_true there to
1291   avoid global namespace problems, see comment in setup_once.h).
1292   The correct C99 value to use is 'false', but let's use FALSE as
1293   used elsewhere when assigning to bits.close. FALSE is set equal
1294   to 'false' in setup_once.h when possible.
1295   
1296   This fixes a build problem on C99 targets.
1297
1298 - LDAP: Add missing declaration for 'result'
1299
1300 Daniel Stenberg (18 Sep 2010)
1301 - [Mauro Iorio brought this change]
1302
1303   LDAP: Support for tunnelling queries through HTTP proxy
1304   
1305   As of curl-7.21.1 tunnelling ldap queries through HTTP Proxies is not
1306   supported. Actually if --proxytunnel command-line option (or equivalent
1307   CURLOPT_HTTPPROXYTUNNEL) is used for ldap queries like
1308   ldap://ldap.my.server.com/... You are unable to successfully execute the
1309   query. In facts ldap_*_bind is executed directly against the ldap server
1310   and proxy is totally ignored. This is true for both openLDAP and
1311   Microsoft LDAP API.
1312   
1313   Step to reproduce the error:
1314   Just launch "curl --proxytunnel --proxy 192.168.1.1:8080
1315   ldap://ldap.my.server.com/dc=... "
1316   
1317   This fix adds an invocation to Curl_proxyCONNECT against the provided
1318   proxy address and on successful "CONNECT" it tunnels ldap query to the
1319   final ldap server through the HTTP proxy. As far as I know Microsoft
1320   LDAP APIs don't permit tunnelling in any way so the patch provided is
1321   for OpenLDAP only.  The patch has been developed against OpenLDAP 2.4.23
1322   and has been tested with Microsoft ISA Server 2006 and works properly
1323   with basic, digest and NTLM authentication.
1324
1325 - timeout: use the correct start value as offset
1326   
1327   Rodric provide an awesome recipe that proved libcurl didn't timeout at
1328   the requested time - it instead often timed out at [connect time] +
1329   [timeout time] instead of the documented and intended [timeout time]
1330   only. This bug was due to the code using the wrong base offset when
1331   comparing against "now". I could also take the oppurtinity to simplify
1332   the code by properly using of the generic help function for this:
1333   Curl_timeleft.
1334   
1335   Reported by: Rodric Glaser
1336   Bug: http://curl.haxx.se/bug/view.cgi?id=3061535
1337
1338 - Curl_timeleft: avoid returning "no timeout" by mistake
1339   
1340   As this function uses return code 0 to mean that there is no timeout, it
1341   needs to check that it doesn't return a time left value that is exactly
1342   zero. It could lead to libcurl doing an extra 1000 ms select() call and
1343   thus not timing out as accurately as it should.
1344   
1345   I fell over this bug when working on the bug 3061535 but this fix does
1346   not correct that problem alone, although this is a problem that needs to
1347   be fixed.
1348   
1349   Reported by: Rodric Glaser
1350   Bug: http://curl.haxx.se/bug/view.cgi?id=3061535
1351
1352 - whitespace: unified source
1353   
1354   if ( => if(
1355   while ( => while(
1356   
1357   and some other changes in the similar spirit, trying to make the
1358   whole file use the same style
1359
1360 - remote-header-name: don't output filename when NULL
1361
1362 - [James Bursa brought this change]
1363
1364   TheArtOfHttpScripting: use long options
1365
1366 - [James Bursa brought this change]
1367
1368   getinmemory: make the example easier to follow
1369   
1370   1. Remove the comment warning that it's "not been verified to work". It
1371      works with no problems in my testing.
1372   
1373   2. Remove 2 unnecessary includes.
1374   
1375   3. Remove the myrealloc(). Initialize chunk.memory with malloc() instead
1376      of NULL. The comments for these two parts contradicted each other.
1377   
1378   4. Handle out of memory from realloc() instead of continuing.
1379   
1380   5. Print a brief status message at the end.
1381
1382 - multi: don't do extra expire calls for the connection
1383   
1384   The timeout is set for the connect phase already at the start of the
1385   request so we should not add a new one, and we MUST not set expire to 0
1386   as that will remove any other potentially existing timeouts.
1387
1388 - [Peter Pentchev brought this change]
1389
1390   Fix a bashism: test a = b is more portable than ==.
1391
1392 - glob_word: remove a check that is always false
1393
1394 - inflate_stream: remove redundant check that is always true
1395
1396 - digest: make it clear the condition is always true
1397
1398 - ssluse: removed redundant check that is always true
1399
1400 Dan Fandrich (11 Sep 2010)
1401 - Link curl and the test apps with -lrt explicitly when necessary
1402   
1403   When curl calls a function from that library then it needs to
1404   explicitly link to the library instead of piggybacking on
1405   libcurl's own dependency.  Without this, GNU ld with the
1406   --no-add-needed flag fails when linking (which Fedora now does
1407   by default).
1408   
1409   Reported by: Quanah Gibson-Mount
1410   Bug: http://curl.haxx.se/mail/lib-2010-09/0085.html
1411
1412 - Mention the Debian Popularity Contest
1413
1414 Tor Arntsen (9 Sep 2010)
1415 - test565: Don't hardcode IP:PORT
1416   
1417   Use %HOSTIP:%HTTPPORT instead of 127.0.0.1:8990 so that
1418   verification works if the baseport change option is used
1419   when executing runtests.pl.
1420
1421 Daniel Stenberg (9 Sep 2010)
1422 - curl.1: updated protocols and polished language
1423
1424 - FAQ: CURL_STATICLIB for visual studio users
1425   
1426   Clarified as it isn't used with a -D option for them.
1427   
1428   Reported by: Artfunkel
1429   Bug: http://curl.haxx.se/bug/view.cgi?id=3060381
1430
1431 - FAQ: updated and added host with custom IP question
1432   
1433   Added "3.19 How do I get HTTP from a host using a specific IP address?"
1434   and updated some stuff about certs etc.
1435
1436 - chunky parser: only rewind if needed
1437   
1438   The code reading chunked encoding attempts to rewind the code if it had
1439   read more data than the chunky parser consumes. The rewinding can fail
1440   and it will then cause an error. This change now makes the rewinding
1441   only happen if pipelining is in use - as that's the only time it really
1442   needs to be done.
1443   
1444   Bug: http://curl.haxx.se/mail/lib-2010-08/0297.html
1445   Reported by: Ron Parker
1446
1447 Kamil Dudka (6 Sep 2010)
1448 - rtsp: avoid SIGSEGV on malformed header
1449
1450 - rtsp: avoid SIGSEGV on malformed header
1451
1452 Daniel Stenberg (6 Sep 2010)
1453 - warning: fix conversion to 'int' from 'size_t'
1454
1455 - portabilty: use proper variable type to hold sockets
1456   
1457   Curl_getconnectinfo() is changed to return a proper curl_socket_t for
1458   the last socket so that it'll work more portably (and cause less
1459   compiler warnings).
1460
1461 Guenter Knauf (3 Sep 2010)
1462 - Trial to fix another compiler warning with braces.
1463
1464 Dan Fandrich (2 Sep 2010)
1465 - Use checkprefix() to compare protocol-specific strings
1466   
1467   Otherwise, there could be problems running in certain locales.
1468
1469 Guenter Knauf (2 Sep 2010)
1470 - Moved S_ISREG define to setup as suggested by Dan.
1471
1472 - Use own typedef as workaround for broken sspi.h header (f.e. Watcom).
1473
1474 - Added some hacks in order to build with VC from git.
1475   
1476   Adam Light posted this patch to the list which enables builds from
1477   git with VC versions other than vc6; also he added a vc10 target.
1478
1479 - Added S_ISREG define for Win32.
1480
1481 Daniel Stenberg (1 Sep 2010)
1482 - multi: fixes for timing out handles
1483   
1484   Add a timeout check for handles in the state machine so that they will
1485   timeout in all states disregarding what actions that may or may not
1486   happen.
1487   
1488   Fixed a bug in socket_action introduced recently when looping over timed
1489   out handles: it wouldn't assign the 'data' variable and thus it wouldn't
1490   properly take care of handles.
1491   
1492   In the update_timer function, the code now checks if the timeout has
1493   been removed and then it tells the application. Previously it would
1494   always let the remaining timeout(s) just linger to expire later on.
1495
1496 - threaded resolver: no more expire 0 calls
1497   
1498   Curl_expire() set to 0 expires ALL timeouts so it should only be called
1499   if we truly and really want to remove all timeouts for the handle.
1500
1501 - resolve_server: simplify code
1502   
1503   Make use of the helper function Curl_timeleft() instead of duplicating
1504   code.
1505
1506 - multi: make sure the next timeout is used when one expires
1507   
1508   Each easy handle has a list of timeouts, so as soon as the main timeout
1509   for a handle expires, we must make sure to get the next entry from the
1510   list and re-add the handle to the splay tree.
1511   
1512   This was attempted previously but was done poorly in my commit
1513   232ad6549a68450.
1514
1515 Dan Fandrich (30 Aug 2010)
1516 - Added proxy keyword to allow skipping test in proxyless configs
1517
1518 Daniel Stenberg (29 Aug 2010)
1519 - multi: set timeouts when transfer begins
1520   
1521   When a new transfer is about to start we now set the proper timeouts to
1522   expire for the multi interface if they are set for the handle. This is a
1523   follow-up bugfix to make sure that easy handles timeout properly when
1524   the times expire and the multi interface is used. This also improves
1525   curl_multi_timeout().
1526
1527 - CURLOPT_DIRLISTONLY: don't use with CURLOPT_WILDCARDMATCH
1528
1529 - FAQ: update list of supported protocols
1530
1531 - [Fabian Keil brought this change]
1532
1533   In the m4 detection line, factor out the 2>dev/null
1534
1535 - [Fabian Keil brought this change]
1536
1537   If m4 doesn't support --version, try if gm4 does.
1538
1539 - [Fabian Keil brought this change]
1540
1541   If the m4 version isn't recognized at all, just say so
1542   
1543   'm4 version  found. You need a GNU m4 installed!' is a bit confusing.
1544
1545 - HISTORY: mention the gopher story
1546
1547 Dan Fandrich (25 Aug 2010)
1548 - Tweaked some test data files
1549   
1550   Fixed some issues that caused xmllint failures, added features
1551   and keywords, fixed some quotes and removed some <strip> sections
1552   that unnecessarily limited test checking.
1553
1554 - Added new source files to Symbian and TPF makefiles
1555
1556 Daniel Stenberg (25 Aug 2010)
1557 - RELEASE-NOTES: sync from b980c9a02 to HEAD
1558
1559 - Makefile: add gopher.c file to build
1560   
1561   As the VC and RISCOS makefiles don't use the .inc file
1562
1563 - runtests: fix uninitialized variable warning
1564
1565 - gopher tests: revert parts of gopher in the pingpong server
1566   
1567   Introduced in the initial gopher commits, there was added logic to do
1568   GOPHER test serving in the pingpong server but as it resembles HTTP much
1569   more than FTP or SMTP, the gopher testing has been moved over to instead
1570   use the sws (HTTP) server. This change simply removes unused code.
1571
1572 - gopher tests: use sws and adjusted to more standard style
1573
1574 - sws: added basic gopher support
1575
1576 - gopher: enable the header callback/verbosity
1577
1578 - gopher: fix test case line endings
1579   
1580   Patches over email very easily lose CRLF line endings in files otherwise
1581   LF-only so I had to put them back where needed.
1582
1583 - gopher: fix memory leak and busyloop
1584   
1585   The fix for the busyloop really only is a temporary work-around.  It
1586   causes a BLOCKING behavior which is a NO-NO. This function should rather
1587   be split up in a do and a doing piece where the pieces that aren't
1588   possible to send now will be sent in the doing function repeatedly until
1589   the entire request is sent.
1590
1591 - [Cameron Kaiser brought this change]
1592
1593   Gopher using Curl_write; test suite (4 tests)
1594
1595 - [Cameron Kaiser brought this change]
1596
1597   Remove url.c test
1598
1599 - [Cameron Kaiser brought this change]
1600
1601   Forgot gopher.h in Makefile.inc
1602
1603 - [Cameron Kaiser brought this change]
1604
1605   Gopher protocol support (initial release)
1606
1607 - http: handle trailer headers in all chunked responses
1608   
1609   HTTP allows that a server sends trailing headers after all the chunks
1610   have been sent WITHOUT signalling their presence in the first response
1611   headers. The "Trailer:" header is only a SHOULD there and as we need to
1612   handle the situation even without that header I made libcurl ignore
1613   Trailer: completely.
1614   
1615   Test case 1116 was added to verify this and to make sure we handle more
1616   than one trailer header properly.
1617   
1618   Reported by: Patrick McManus
1619   Bug: http://curl.haxx.se/bug/view.cgi?id=3052450
1620
1621 - TODO: we now support RTMP
1622
1623 - TODO: done "NTLM with other crypto functions"
1624   
1625   Since NTLM was made to work with the NSS API as well, the primary SSL
1626   alternatives will be built with NTLM support in libcurl.
1627
1628 - TODO: fixed "Make curl_multi_info_read faster"
1629   
1630   It is really fast now
1631
1632 Dan Fandrich (24 Aug 2010)
1633 - Fixed a NULL pointer dereference in form posting
1634   
1635   It was introduced in commit eeb2cb05 along with the -F type=
1636   change. Also fixed a typo in the name of the magic filename=
1637   parameter. Tweaked tests 39 and 173 to better test this path.
1638
1639 Daniel Stenberg (24 Aug 2010)
1640 - [Ben Greear brought this change]
1641
1642   multi:  Fix compile warning on 64-bit systems
1643
1644 Dan Fandrich (23 Aug 2010)
1645 - Mention PolarSSL in tutorial & add some URLs to INSTALL
1646
1647 Daniel Stenberg (23 Aug 2010)
1648 - RESUME_FROM: clarify what ftp uploads do
1649   
1650   The numerical value passed to CURLOPT_RESUME_FROM for FTP uploads is
1651   interpreted and used as position where to resume the _reading_ of the
1652   local file and it will "blindly" append that data on the remote
1653   file. This was certainly not clear in the docs previously.
1654   
1655   Reported by: catalin
1656   Bug: http://curl.haxx.se/bug/view.cgi?id=3048174
1657
1658 - [Dirk Manske brought this change]
1659
1660   Curl_is_connected: use correct errno
1661   
1662   The correctly extracted errno contents were mistakenly overwritten by a newer
1663   value that wasn't the correct error value.
1664   
1665   Bug: http://curl.haxx.se/mail/lib-2010-08/0242.html
1666
1667 - cmdline: make -F type= accept ;charset=
1668   
1669   The -F option allows some custom parameters within the given string, and
1670   those strings are separated with semicolons. You can for example specify
1671   "name=daniel;type=text/plain" to set content-type for the
1672   field. However, the use of semicolons like that made it not work fine if
1673   you specified one within the content-type, like for:
1674   "name=daniel;type=text/plain;charset=UTF-8"
1675   ... as the second one would be seen as a separator and "charset" is no
1676   parameter curl knows anything about so it was just silently discarded.
1677   
1678   The new logic now checks if the semicolon and following keyword looks
1679   like a parameter it knows about and if it isn't it is assumed to be
1680   meant to be used within the content-type string itself.
1681   
1682   I modified test case 186 to verify that this works as intended.
1683   
1684   Reported by: Larry Stone
1685   Bug: http://curl.haxx.se/bug/view.cgi?id=3048988
1686
1687 Guenter Knauf (20 Aug 2010)
1688 - Added mk-ca-bundle.vbs script.
1689   
1690   The script works exactly same as the Perl one except for one thing:
1691   when the text descriptions generated with openssl are included then
1692   the md5 fingerprints are missing; seems openssl has either a bug or
1693   a feature which prints the md5 fingerprint output to stdout instead
1694   of writing them to specified file; this script could here do the same
1695   as what the Perl scripr does (redirect stdout into file) but this
1696   makes the script take up double the time because it needs to launch
1697   cmd.exe 140 times (fo each openssl call). So I think for now we just
1698   ommit the md5 fingerprints, and see if openssl will be fixed.
1699
1700 - Trial to fix win32 autobuilds.
1701   
1702   It seems that its time to look at some better ideas for the win32
1703   non-configure builds; probably a prebuild target which copies
1704   config-win32.h to curl_config.h and appends also then feature
1705   defines like USE_ARES.
1706
1707 Dan Fandrich (19 Aug 2010)
1708 - Use the S_ISREG macro to determine what is a regular file
1709
1710 Kamil Dudka (19 Aug 2010)
1711 - AC_INIT: avoid a warning with autoconf 2.66
1712   
1713   It was complaining about the '=>' operator, introduced in e3fc0d5.
1714
1715 Dan Fandrich (18 Aug 2010)
1716 - Fixed a memory leak during OOM in the multi timeout code
1717
1718 - Removed a C99ism & made an array const
1719
1720 Daniel Stenberg (19 Aug 2010)
1721 - [Julien Chaffraix brought this change]
1722
1723   test: added test 579 to verify progress callback for chunked post
1724   
1725   The 66 bytes checked are those 38 bytes with the chunked encoding
1726   headers added: 8+8+10+35+5 = 66
1727   
1728   The three-letter words become 8 bytes on the wire because they are sent
1729   like: "3\r\none\r\n"
1730   
1731   ... and there's the trailing 5 bytes write after the four lines since
1732   the final chunk is sent (which is "0\r\n\r\n").
1733
1734 - multi: avoid sending multiple complete messages
1735   
1736   I fell over this bug report that mentioned that libcurl could wrongly
1737   send more than one complete messages at the end of a transfer. Reading
1738   the code confirmed this, so I've added a new multi state to make it not
1739   happen. The mentioned bug report was made by Brad Jorsch but is (oddly
1740   enough) filed in Debian's bug tracker for the "wmweather+" tool.
1741   
1742   Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593390
1743
1744 - FAQ: update the list of supported protocols
1745
1746 - FAQ: added blurb about ECCN
1747   
1748   "1.13 curl's ECCN number" is a new section mostly made up from
1749   Alessandro Vesely's very informative ML post on the subject:
1750   http://curl.haxx.se/mail/lib-2008-03/0251.html
1751
1752 Guenter Knauf (18 Aug 2010)
1753 - It is sufficient to pipe stderr to NUL to get rid of the nasty messages.
1754
1755 - Added SSPI build to Watcom makefile.
1756
1757 Daniel Stenberg (16 Aug 2010)
1758 - [Julien Chaffraix brought this change]
1759
1760   progress: callback for POSTs less than MAX_INITIAL_POST_SIZE
1761   
1762   Add a call to Curl_pgrsSetUploadSize in this case valided by a test
1763   case.
1764   
1765   Reported by: Никита Дорохин.
1766   Bug: http://curl.haxx.se/mail/lib-2010-04/0173.html
1767
1768 Dan Fandrich (16 Aug 2010)
1769 - Make the LD_PRELOAD path absolute in the tests that use it
1770   
1771   In some situations, libtool will change directories and perform
1772   a link step before executing the libtest test app. Since
1773   LD_PRELOAD is in effect for this entire process, the path to the
1774   binary must be absolute so it will be valid no matter in which
1775   directory the app is running.
1776
1777 Daniel Stenberg (16 Aug 2010)
1778 - negotiation: Wrong proxy authorization
1779   
1780   There's an error in http_negotiation.c where a mistake is using only
1781   userpwd even for proxy requests. Ludek provided a patch, but I decided
1782   to write the fix slightly different using his patch as inspiration.
1783   
1784   Reported by: Ludek Finstrle
1785   Bug: http://curl.haxx.se/bug/view.cgi?id=3046066
1786
1787 Dan Fandrich (16 Aug 2010)
1788 - Clear stdout and stderr files on each test run
1789   
1790   This allows a test to be run several times in the same test
1791   session even when the -k option is given.
1792
1793 Guenter Knauf (15 Aug 2010)
1794 - Syncroniszed vclean target; fixed some comments.
1795
1796 Daniel Stenberg (15 Aug 2010)
1797 - THANKS: added contributors from 7.21.1
1798
1799 - multi: two fixes done
1800
1801 - multi: use timeouts properly for MAX_RECV/SEND_SPEED
1802   
1803   When detecting that the send or recv speed, the multi interface changes
1804   state to TOOFAST and previously there was no timeout set that would
1805   force a recheck but it would rely on the application to somehow call
1806   libcurl anyway. This now sets a timeout for a suitable future time to
1807   check again if the average transfer speed is then below the threshold
1808   again.
1809
1810 - multi: support timeouts
1811   
1812   Curl_expire() is now expanded to hold a list of timeouts for each easy
1813   handle. Only the closest in time will be the one used as the primary
1814   timeout for the handle and will be used for the splay tree (which sorts
1815   and lists all handles within the multi handle).
1816   
1817   When the main timeout has triggered/expired, the next timeout in time
1818   that is kept in the list will be moved to the main timeout position and
1819   used as the key to splay with. This way, all timeouts that are set with
1820   Curl_expire() internally will end up as a proper timeout. Previously any
1821   Curl_expire() that set a _later_ timeout than what was already set was
1822   just silently ignored and thus missed.
1823   
1824   Setting Curl_expire() with timeout 0 (zero) will cancel all previously
1825   added timeouts.
1826   
1827   Corrects known bug #62.
1828
1829 - Curl_llist_insert_next: allow insertion first in the list
1830   
1831   When we specify the "insert after" entry as NULL, this function now
1832   inserts the new entry first in the list.
1833
1834 - multi: make curl_multi_info_read perform O(1)
1835   
1836   Instead of looping over all attached easy handles, this now keeps a list
1837   of messages in the multi handle. It allows curl_multi_info_read() to
1838   perform O(1) no matter how many easy handles that are handled. This is
1839   of importance since this function may be polled very frequently by apps
1840   using the multi interface.
1841
1842 Kamil Dudka (15 Aug 2010)
1843 - curl -T: ignore file size of special files
1844   
1845   original bug report at https://bugzilla.redhat.com/622520
1846
1847 Dan Fandrich (13 Aug 2010)
1848 - Reset environment variables before starting servers
1849   
1850   Otherwise, variables from tests could affect the servers
1851   themselves.
1852
1853 Kamil Dudka (12 Aug 2010)
1854 - typecheck-gcc: work around gcc upstream bug #32061
1855   
1856   original bug report at https://bugzilla.redhat.com/617757
1857
1858 Daniel Stenberg (11 Aug 2010)
1859 - release cycle loop: start over toward 7.21.2
1860
1861 Version 7.21.1 (11 Aug 2010)
1862
1863 Daniel Stenberg (11 Aug 2010)
1864 - RELEASE-NOTES: mention the runtests fix as well
1865
1866 - runtests: clear old setenv remainders before test
1867   
1868   Due to the layout of the singletest function there are situations where
1869   it returns before it clears the environment variables that were
1870   especially set for the single specific test case. That could lead to
1871   subsequent tests getting executed with environment variables sticking
1872   around from a previous test which could lead to badness.
1873   
1874   This change makes sure to clear all custom variables that may be laying
1875   around from a previous round, before running a test case.
1876   
1877   Reported by: Kamil Dudka
1878   Bug: http://curl.haxx.se/mail/lib-2010-08/0141.html
1879
1880 Guenter Knauf (11 Aug 2010)
1881 - Added OpenSSL builds to Watcom makefiles.
1882
1883 Yang Tse (11 Aug 2010)
1884 - configure: werror related adjustments
1885
1886 Daniel Stenberg (11 Aug 2010)
1887 - FAQ: s/libcurl.so.3/libcurl.so.X
1888
1889 Dan Fandrich (10 Aug 2010)
1890 - KNOWN_BUG #59 is fixed. Clarify support of IPv6 zone IDs.
1891
1892 - Fixed typo in Android configure command
1893
1894 Daniel Stenberg (11 Aug 2010)
1895 - HISTORY: added stuff from recent years
1896
1897 - warning: silence the compiler
1898   
1899   warning: conversion to 'long int' from 'time_t' may alter its value
1900   
1901   ... on win64 when time_t is 64bit and long is 32bit.
1902
1903 - RELEASE-NOTES: synced, 3 additional bugfixes
1904
1905 - multi_socket_action: clarify how to kickstart it
1906   
1907   The callbacks are called when curl_multi_socket_action() is called, not
1908   when handles are added. This is now mentioned in the "TYPICAL USAGE"
1909   section.
1910
1911 - callbacks: acknowledge progress callback error returns
1912   
1913   When the progress callback is called during the TCP connection, an error
1914   return would accidentally not abort the operation as intended but would
1915   instead be counted as a failure to connect to that particular IP and
1916   libcurl would just continue to try the next. I made singleipconnect()
1917   and trynextip() return CURLcode properly.
1918   
1919   Added bonus: it corrected the error code for bad --interface usages,
1920   like tested in test 1084 and test 1085.
1921   
1922   Reported by: Adam Light
1923   Bug: http://curl.haxx.se/mail/lib-2010-08/0105.html
1924
1925 Guenter Knauf (10 Aug 2010)
1926 - More Watcom makefile fixes ...
1927   
1928   Final fix (hopefully!) for dll wlink loader;
1929   prefer faster internal rm if available.
1930
1931 - Fixed my wrong edit.
1932
1933 - More Watcom makefile fixes.
1934   
1935   Added the -br switch to dynamic builds which fixes the issue I saw
1936   with curl's --version output. Added debug info and symfile for debug
1937   builds to linker opts. Added DLL loader for wlink back, but this time
1938   dependend on wlink version.
1939   Patch posted to the list by malak.jiri AT gmail.com.
1940
1941 - Changed test for -u switch in order to enable other wmake switches.
1942   
1943   The var %MAKEFLAGS is only set in 3 cases: if set as environment
1944   var or as macro definition from commandline, and either with the
1945   -u or -ms switch. Since all these cases are unlikely for the average
1946   user it should be safe to only test if %MAKEFLAGS is defined; this
1947   has the benefit that now all other switches can be used again in
1948   addition to the -u which was formerly not possible.
1949
1950 Daniel Stenberg (10 Aug 2010)
1951 - llist: hide Curl_llist_init
1952   
1953   Curl_llist_init is never used outside of llist.c and thus it should be
1954   static. I also removed the protos for Curl_llist_insert_prev and
1955   Curl_llist_remove_next which are functions we removed from llist.c ages
1956   ago.
1957
1958 Guenter Knauf (10 Aug 2010)
1959 - Added msys Perl since git for Win32 comes with own Perl which identifies as msys.
1960
1961 - Updated lib dependency versions.
1962
1963 - Make testcurl.pl Watcom-aware.
1964
1965 Daniel Stenberg (10 Aug 2010)
1966 - parse_remote_port: fix ;type= URL suffix over HTTP proxy
1967   
1968   Test 563 is enabled now and verifies that the combo FTP type=A URL,
1969   CURLOPT_PORT set and proxy work fine. As a bonus I managed to remove the
1970   somewhat odd FTP check in parse_remote_port() and instead converted it
1971   to a better and more generic 'slash_removed' struct field. Checking the
1972   ->protocol field isn't right since when an FTP:// URL is sent over a
1973   HTTP proxy, the protocol is HTTP but the URL was handled by the FTP code
1974   and thus slash_removed is set TRUE for this case.
1975
1976 - indent: white space fixes only
1977
1978 Yang Tse (9 Aug 2010)
1979 - build: fix previous push
1980
1981 - build: don't build libhostname unless shared libcurl is built
1982
1983 - build: libhostname and chkhostname linkage adjustments followup
1984
1985 Daniel Stenberg (8 Aug 2010)
1986 - typo: remove duplicate semicolon
1987
1988 - multi: avoid a malloc() when a transfer is complete
1989   
1990   The struct used for storing the message for a completed transfer is now
1991   no longer allocated separatly but is kept within the main struct kept
1992   for each easy handle so that we avoid one malloc (and the subsequent
1993   free).
1994
1995 Yang Tse (8 Aug 2010)
1996 - build: libhostname linkage adjustments followup
1997
1998 Guenter Knauf (7 Aug 2010)
1999 - Fix to overwrite libcurl name.
2000
2001 Yang Tse (7 Aug 2010)
2002 - build: chkhostname build adjustments followup
2003
2004 U-D5B1PQ1J\Administrador (7 Aug 2010)
2005 - build: allow NTLM tests to run on more build configurations
2006
2007 Daniel Stenberg (7 Aug 2010)
2008 - curl_easy_setopt.3: rename stream to userdata
2009   
2010   In some places where the name 'stream' has been used for naming a
2011   function argument that is in fact settable with a setopt() option we now
2012   call that argument 'userdata' to make it more obvious that it is in fact
2013   possible to set by the application.
2014   
2015   Suggested by: Jeff Pohlmeyer
2016
2017 Guenter Knauf (7 Aug 2010)
2018 - Block created curlbuild.h for NetWare to avoid usage from other platforms.
2019
2020 Daniel Stenberg (7 Aug 2010)
2021 - RELEASE-NOTES: synced with recent changes
2022
2023 Yang Tse (6 Aug 2010)
2024 - build: ensure that libhostname doesn't get installed
2025
2026 Daniel Stenberg (6 Aug 2010)
2027 - multi_socket: set timeout for 100-continue
2028   
2029   When libcurl internally decided to wait for a 100-continue header, there
2030   was no call to the timeout function so there was no timeout callback
2031   called when the multi_socket API was used and thus applications became
2032   either completely wrong or at least ineffecient depending on how they
2033   handled the situation. We now set a timeout to get triggered.
2034   
2035   Reported by: Ben Darnell
2036   Bug: http://curl.haxx.se/bug/view.cgi?id=3039744
2037
2038 Guenter Knauf (6 Aug 2010)
2039 - Some more Watcom makefile massage ...
2040   
2041   For now removed the .autodepend directive until I've figured out
2042   which of my changes broke it again.
2043
2044 Yang Tse (5 Aug 2010)
2045 - build: fix libssh2_scp_send64() availability
2046
2047 - build: remove unneeded cast to (void *)
2048
2049 - build: remove unused file
2050
2051 Daniel Stenberg (4 Aug 2010)
2052 - SCP: send large files properly with new enough libssh2
2053   
2054   libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit
2055   architectures and we make sure to use that ability.
2056   
2057   Reported by: Mikael Johansson
2058   Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html
2059
2060 Yang Tse (3 Aug 2010)
2061 - build: add missing new files to non-configure target build files
2062
2063 - md4: replace bcopy usage with memcpy
2064
2065 Daniel Stenberg (3 Aug 2010)
2066 - RELEASE-NOTES: synced with recent changes
2067
2068 - TODO-RELEASE: clear, file not really used ATM
2069
2070 - typecheck-gcc: add checks for recently added options
2071   
2072   I added all OBJECTPOINT curl_easy_setopt() options from 178 to 202. Left
2073   to add: the five FUNCTIONPOINT (callbacks) options added since:
2074   
2075   SSH_KEYFUNCTION
2076   INTERLEAVEFUNCTION
2077   CHUNK_BGN_FUNCTION
2078   CHUNK_END_FUNCTION
2079   FNMATCH_FUNCTION
2080
2081 - .gitignore: ignore all built examples
2082
2083 - example: fix code to build warning-free
2084
2085 - Curl_connected_proxy: skip the bits.tcpconnect check
2086   
2087   Simply because the TCP might be connected already we cannot skip the
2088   proxy connect procedure. We need to be careful to not overload more
2089   meaning to the bits.tcpconnect field like this.
2090   
2091   With this fix, SOCKS proxies work again when the multi interface is
2092   used. I believe this regression was added with commit 4b351d018e,
2093   released as 7.20.1.
2094   
2095   Left todo: add a test case that verifies this functionality that
2096   prevents us from breaking it again in the future!
2097   
2098   Reported by: Robin Cornelius
2099   Bug: http://curl.haxx.se/bug/view.cgi?id=3033966
2100
2101 - sethostname: provide local prototype for gethostname
2102   
2103   This is only to avoid warnings on some systems.
2104
2105 - build: add typecast to avoid warning
2106   
2107   There is an implicit conversion from "unsigned long" to "long";
2108   rounding, sign extension, or loss of accuracy may result.
2109
2110 Guenter Knauf (2 Aug 2010)
2111 - Rename CURL_SOURCES macro; revert previous rename of curl_SOURCES macro.
2112
2113 - Removed ugly dependency lists since wmake knows the .autodepend directive.
2114
2115 - Use suffix search path for sources in lib folder.
2116
2117 - Changed src/Makefile.Watcom to use CURL_SOURCES from src/Makefile.inc.
2118
2119 - Renamed curl_SOURCES to CURL_ALLFILES to overcome wmake's case-insensitivity.
2120
2121 - Removed wlink from DLL loader list because it doesnt work with Watcom < 1.8.
2122
2123 - Moved the LDAP API defines from Makefile.Watcom to config-win32.h.
2124   
2125   These defines are only needed for older Watcom versions (< 1280).
2126
2127 Daniel Stenberg (2 Aug 2010)
2128 - retry: consider retrying even if -f is used
2129   
2130   The --retry logic does retry HTTP when some specific response codes are
2131   returned, but because the -f option sets the CURLOPT_FAILONERROR to
2132   libcurl, the return codes are different for such situations and then the
2133   curl tool failed to consider it for retrying.
2134   
2135   Reported by: Mike Power
2136   Bug: http://curl.haxx.se/bug/view.cgi?id=3037362
2137
2138 - multi: fix FTPS connecting the data connection with OpenSSL
2139   
2140   Commit 496002ea1cd76af7f (released in 7.20.1) broke FTPS when using the
2141   multi interface and OpenSSL was used. The condition for the non-blocking
2142   connect was incorrect.
2143   
2144   Reported by: Georg Lippitsch
2145   Bug: http://curl.haxx.se/mail/lib-2010-07/0270.html
2146
2147 Guenter Knauf (1 Aug 2010)
2148 - Fixed curlbuild.h rule.
2149
2150 - Added rule to create curlbuild.h if not present (for builds from git).
2151
2152 - Added dependend libs for curl static linking.
2153
2154 - Fixed curl.exe static linking.
2155
2156 Daniel Stenberg (30 Jul 2010)
2157 - warning: silence a win64 compiler warning
2158   
2159   conversion from 'size_t' to 'curl_socklen_t', possible loss of data
2160   
2161   Reported by: Adam Light
2162
2163 - KNOWN_BUG: The SOCKET type in Win64 is 64 bits
2164   
2165   The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t
2166   on that platform), and long is only 32 bits. It makes it impossible for
2167   curl_easy_getinfo() to return a socket properly with the
2168   CURLINFO_LASTSOCKET option as for all other operating systems.
2169
2170 - smtp_connect: always provide host name buffer
2171   
2172   Previously the host name buffer was only used if gethostname() exists,
2173   but since we converted that into a curl private function that function
2174   always exists and will be used so the buffer needs to exist for all
2175   cases/systems.
2176
2177 - sethostname: avoid including unistd.h to duck for warnings
2178
2179 - sethostname: ISO C does not allow extra `;' outside of a function
2180
2181 - [Kamil Dudka brought this change]
2182
2183   NTLM tests: boost coverage by forcing the hostname
2184   
2185   A shared library tests/libtest/.libs/lihostname.so is preloaded in NTLM
2186   test-cases to override the system implementation of gethostname().  It
2187   makes it possible to test the NTLM authentication for exact match, and
2188   this way test the implementation of MD4 and DES.
2189   
2190   If LD_PRELOAD doesn't work, a debug build willl also workk as debug
2191   builds are now made to prefer a specific environment variable and will
2192   then return that content as host name instead of the actual one.
2193   
2194   Kamil wrote the bulk of this, Daniel Stenberg polished it.
2195
2196 Guenter Knauf (29 Jul 2010)
2197 - Added a comment with an alternate idea to avoid the backslash line contination character.
2198
2199 - Changed comparison to match size_t var type.
2200
2201 - Removed unused vars to avoid compiler warnings.
2202
2203 - Make Watcom makefiles use Makefile.inc to reduce future maintainance.
2204   
2205   lib/Makefile.Watcom works fine already, for src/Makefile.Watcom we
2206   need first to tweak src/Makefile.inc a bit - therefore the handtweaked
2207   list still exists for now.
2208
2209 - Watcom makefiles overhaul.
2210   
2211   - make both libcurl and curl makefiles use register calling convention
2212     (previously libcurl had stack calling convention).
2213   - added include paths to the Watcom headers so its no longer required
2214     to set the environment vars for this.
2215   - added -wcd=201 to supress compiler warning about unreachable code.
2216   - use macros for all tools, and removed dependency on GNU tools like rm.
2217   - make ipv6 and debug builds controlable via env vars and so make them
2218     optional instead of default.
2219   - commented WINLDAPAPI and WINBERAPI since they broke with OW 1.8, and
2220     it seems they're not needed (anymore?).
2221   - added rule for hugehelp.c.cvs so that it will be created when not
2222     already exist - this is required for building from a release tarball
2223     since there we have no hugehelp.c.cvs, thus compilation broke.
2224   - removed C_ARG creation from lib/Makefile.Watcom and use CFLAGS
2225     directly as done too in src/Makefile.Watcom - this has the benefit
2226     that we will see all active cflags and defines during compile.
2227   - added LINK-ARG to src/Makefile.Watcom in order to better control
2228     linker input.
2229   - a couple of other minor makefile tweaks here and there ...
2230   - added largefile support for Watcom builds to config-win32.h. Not yet
2231     tested if it really works, but should since Win32 supports it.
2232   - added loaddll stuff to speed up builds if supported.
2233
2234 - some cosmetic changes.
2235
2236 Dan Fandrich (26 Jul 2010)
2237 - Added md4.c to the Watcom makefile
2238
2239 - Added PolarSSL to the docs
2240
2241 Daniel Stenberg (25 Jul 2010)
2242 - curl-config: --built-shared returns shared info
2243   
2244   The curl-config now features a --built-shared command line option that
2245   will output 'yes' or 'no' depending if the build process was asked to
2246   build shared library/libraries or not.
2247   
2248   It is primarily made to offer more details to the test suite to know
2249   what kind of stunts it can expect to work.
2250
2251 - add_buffer_send: fix compiler warning
2252   
2253   Win64's 32 bit long but 64 bit size_t caused a warning that we avoid
2254   with a typecast. A small whitespace indent fix was also applied.
2255   
2256   Reported by: Adam Light
2257
2258 Guenter Knauf (22 Jul 2010)
2259 - Updated library versions.
2260
2261 - Fixed script version which was still based on CVS Revision tag.
2262
2263 Dan Fandrich (21 Jul 2010)
2264 - FAQ: Why doesn't cURL error out when the cable is unplugged?
2265   
2266   This one was long overdue to be mentioned in the FAQ. Also, mention the
2267   new ftp wildcard downloading feature.
2268
2269 Daniel Stenberg (21 Jul 2010)
2270 - [Ben Greear brought this change]
2271
2272   ssh: Fix compile error on 64-bit systems.
2273   
2274   Signed-off-by: Ben Greear <greearb@candelatech.com>
2275
2276 - [Ben Greear brought this change]
2277
2278   build: Enable configure --enable-werror
2279   
2280     This passes -Werror to gcc when building curl and libcurl,
2281     allowing easy dection of compile warnings.
2282   
2283   Signed-off-by: Ben Greear <greearb@candelatech.com>
2284
2285 - [Ben Greear brought this change]
2286
2287   pingpong: Fix indentation (whitespace change only)
2288   
2289   Signed-off-by: Ben Greear <greearb@candelatech.com>
2290
2291 - [Jan Van Boghout brought this change]
2292
2293   CUSTOMREQUEST: shouldn't be disabled when HTTP is disabled
2294   
2295   ... since FTP is using it as well, and potentially other protocols!
2296   
2297   Also, an #endif CURL_DISABLE_HTTP was incorrectly marked, as it seems to
2298   end the proxy block instead.
2299
2300 - [Jan Van Boghout brought this change]
2301
2302   pingpong: response_time is milliseconds
2303   
2304   Fixed the comment/document for the response_time struct member.
2305
2306 - [Jan Van Boghout brought this change]
2307
2308   ftp: response timeout bug in "quote" sending
2309   
2310   The FTP implementation was missing a timestamp reset point, making the
2311   waiting for responses after sending a post-transfer "QUOTE" command not
2312   working as supposedly. This bug was introduced in 7.20.0
2313
2314 - [Jeff Pohlmeyer brought this change]
2315
2316   remote-header-name: chop filename at next semicolon
2317   
2318   The --remote-header-name option for the command-line tool assumes that
2319   everything beyond the filename= field is part of the filename, but that
2320   might not always be the case, for example:
2321   
2322   Content-Disposition: attachment; filename=file.txt; modification-date=...
2323   
2324   This fix chops the filename off at the next semicolon, if there is one.
2325
2326 - --retry: access violation with URL part sets continued
2327   
2328   When getting multiple URLs, curl didn't properly reset the byte counter
2329   after a successful transfer so if the subsequent transfer failed it
2330   would wrongly use the previous byte counter and behave badly (segfault)
2331   because of that. The code assumes that the byte counter and the 'stream'
2332   pointer is well in synch.
2333   
2334   Reported by: Jon Sargeant
2335   Bug: http://curl.haxx.se/bug/view.cgi?id=3028241
2336
2337 - releasnote: synch up with commit f3b77e5611d
2338
2339 - [Constantine Sapuntzakis brought this change]
2340
2341   examples: add curl_multi_timeout
2342   
2343   Make the multi-interface using examples use curl_multi_timeout to
2344   properly educate users how to do things.
2345
2346 - configure: document the STATICLIB variable
2347
2348 - [Constantine Sapuntzakis brought this change]
2349
2350   multi: fix condition that remove timers before trigger
2351   
2352   curl_multi perform has two phases: run through every easy handle calling
2353   multi_runsingle and remove expired timers (timer removal).
2354   
2355   If a small timer (e.g. 1-10ms) is set during multi_runsingle, then it's
2356   possible that the timer has passed by when the timer removal runs. The
2357   timer which was just added is then removed. This will potentially cause
2358   the timer list to be empty and cause the next call to curl_multi_timeout
2359   to return -1. Ideally, curl_multi_timeout should return 0 in this case.
2360   
2361   One way to fix this is to move the struct timeval now = Curl_tvnow(); to
2362   the top of curl_multi_perform. The change does that.
2363
2364 - [Constantine Sapuntzakis brought this change]
2365
2366   threaded resolver: fix timeout issue
2367   
2368   Reset old timer first so we can set a new one further in the future.
2369
2370 - configure: allow environments variable to override internals
2371   
2372   configure checks for grep, egrep, sed and ar and set the variables GREP,
2373   EGREP, SED and AR accordingly. We now let already set variables override
2374   the internal choices to let users make decisions when they know the
2375   right choice already. This is a regression as our configure script used
2376   to allow this back before commit 0b57c475 (up to 7.18.2).
2377   
2378   Reported by: "kdekker"
2379   Bug: http://curl.haxx.se/bug/view.cgi?id=3028318
2380
2381 Dan Fandrich (9 Jul 2010)
2382 - Improved the Android build instructions
2383
2384 Daniel Stenberg (7 Jul 2010)
2385 - [Tor Arntsen brought this change]
2386
2387   upload: Avoid infinite loop when checking for auth bits
2388   
2389   The test would loop forever if authtype bit 0 wasn't set.
2390
2391 - upload: warn users trying to upload from stdin with anyauth
2392   
2393   Since uploading from stdin is very likely to not work with anyauth and
2394   its multi-phase probing for what authentication to actually use, alert
2395   the user about it. Multi-phase negotiate almost certainly will involve
2396   sending data and thus libcurl will need to rewind the stream to send
2397   again, and it cannot do that with stdin.
2398
2399 - http: don't enable chunked during authentication negotiations
2400   
2401   As mentioned in bug report #2956968, the HTTP code wouldn't send the
2402   first empty chunk during the auth negotiation phase of the HTTP request
2403   sending, so the server would wait for data to come and libcurl would
2404   wait for data to arrive... I've made the code not enable chunked
2405   encoding until the auth negotiation is done and thus this scenario
2406   doesn't occur anymore.
2407   
2408   Reported by: Sidney San Martín
2409   Bug: http://curl.haxx.se/bug/view.cgi?id=2956968
2410
2411 - --libcurl: list the tricky options instead of using [REMARK]
2412   
2413   I think the [REMARK] and commented function calls cluttered the code a
2414   bit too much and made the generated code ugly to read. Now we instead
2415   track the remarks one specially and just lists them at the end of the
2416   generated code more as additional information.
2417
2418 - curl: avoid setting libcurl options to its default
2419   
2420   it makes the --libcurl output easier to follow.
2421
2422 - --libcurl: hide setopt() calls setting default options
2423   
2424   And additionally, don't show function or object pointers actual value
2425   since they make no sense to anyone. Show 'functionpointer' and
2426   'objectpointer' instead.
2427
2428 - --libcurl: use *_LARGE options with typecasted constants
2429   
2430   In the generated code --libcurl makes, all calls to curl_easy_setopt()
2431   that use *_LARGE options now have the value typecasted to curl_off_t, so
2432   that it works correctly for 32bit systems with 64bit curl_off_t type.
2433
2434 - multi: CURLINFO_LASTSOCKET doesn't work after remove_handle
2435   
2436   When curl_multi_remove_handle() is called and an easy handle is returned
2437   to the connection cache held in the multi handle, then we cannot allow
2438   CURLINFO_LASTSOCKET to extract it since that will more or less encourage
2439   that the user uses the socket while it can get used by libcurl again.
2440   
2441   Without this fix, we'd get a segfault in Curl_getconnectinfo() trying to
2442   dereference the NULL pointer in 'data->state.connc'.
2443   
2444   Bug: http://curl.haxx.se/bug/view.cgi?id=3023840
2445
2446 - [Pierre Joye brought this change]
2447
2448   build: add enable IPV6 option for the VC makefiles
2449
2450 - FAQ: the threaded resolver works universally now
2451
2452 Kamil Dudka (30 Jun 2010)
2453 - http_ntlm: add support for NSS
2454   
2455   When configured with '--without-ssl --with-nss', NTLM authentication
2456   now uses NSS crypto library for MD5 and DES.  For MD4 we have a local
2457   implementation in that case.  More details are available at
2458   https://bugzilla.redhat.com/603783
2459   
2460   In order to get it working, curl_global_init() must be called with
2461   CURL_GLOBAL_SSL or CURL_GLOBAL_ALL.  That's necessary because NSS needs
2462   to be initialized globally and we do so only when the NSS library is
2463   actually required by protocol.  The mentioned call of curl_global_init()
2464   is responsible for creating of the initialization mutex.
2465   
2466   There was also slightly changed the NSS initialization scenario, in
2467   particular, loading of the NSS PEM module.  It used to be loaded always
2468   right after the NSS library was initialized.  Now the library is
2469   initialized as soon as any SSL or NTLM is required, while the PEM module
2470   is prevented from being loaded until the SSL is actually required.
2471
2472 Daniel Stenberg (29 Jun 2010)
2473 - glob: backslash escaping bug
2474   
2475   curl didn't properly handle escaping characters in a URL with the use of
2476   backslash. It did an attempt, but that failed as reported in bug
2477   3022551. The described example was using the URL
2478   "http://example.com?{AB,C\,D}".
2479   
2480   I've now removed the special-handling of letters following the backslash
2481   and I also removed the bad extra check that triggered this particular
2482   bug.
2483   
2484   Bug: http://curl.haxx.se/bug/view.cgi?id=3022551
2485   Reported by: Jon Sargeant
2486
2487 - release-notes: sync up with recent commits
2488
2489 - CONTRIBUTE: the git commit message line length is 72 columns
2490
2491 - [Pavel Raiskup brought this change]
2492
2493   ftp wildcard: FTP LIST parser FIX
2494   
2495   There was a problem when a UNIX-like server returned information
2496   about directory size (total NNNNNN) at the first line of
2497   response.
2498
2499 - [Pavel Raiskup brought this change]
2500
2501   examples: new FTP wildcard showcase
2502
2503 - multi_socket: re-use of same socket without notifying app
2504   
2505   When a hostname resolves to multiple IP addresses and the first one
2506   tried doesn't work, the socket for the second attempt may get dropped on
2507   the floor, causing the request to eventually time out. The issue is that
2508   when using kqueue (as on mac and bsd platforms) instead of select, the
2509   kernel removes the first fd from kqueue when it is closed (in trynextip,
2510   connect.c:503). Trynextip() then goes on to open a new socket, which
2511   gets assigned the same number as the one it just closed. Later in
2512   multi.c, socket_cb is not called because the fd is already in
2513   multi->sockhash, so the new socket is never added to kqueue.
2514   
2515   The correct fix is to ensure that socket_cb is called to remove the fd
2516   when trynextip() closes the socket, and again to re-add it after
2517   singleipsocket(). I'm not sure how to cleanly do that, but the attached
2518   patch works around the problem in an admittedly kludgy way by delaying
2519   the close to ensure that the newly-opened socket gets a different fd.
2520   
2521   Daniel's added comment: I didn't spot a way to easily do a nicer fix so
2522   I've proceeded with Ben's patch.
2523   
2524   Bug: http://curl.haxx.se/bug/view.cgi?id=3017819
2525   Patch by: Ben Darnell
2526
2527 Kamil Dudka (24 Jun 2010)
2528 - [Pavel Raiskup brought this change]
2529
2530   ftp-wildcard: avoid tight loop when used without any pattern
2531   
2532   It was broken for URLs like "ftp://example.com/".
2533
2534 Daniel Stenberg (21 Jun 2010)
2535 - maketgz: produce CHANGES automatically with the 1000 most recent commits
2536   
2537   It passes the git log output through 'log2changes.pl' to produce
2538   the lot.
2539
2540 - ignore: CHANGES.dist gets generated by maketgz
2541
2542 - CHANGES: move all contents from CHANGES to CHANGES.0
2543   
2544   CHANGES is no longer used for manually edited content. It is to
2545   be generated automatically by maketgz when we make release
2546   tarballs.
2547
2548 - log2changes: correct command line, fix tag usage, change Version output
2549   
2550   --decorate=full is needed with my git 1.7.1 to get the necessary
2551   output so that the previous edit would work to extract the
2552   Version stuff.
2553   
2554   ... but I had to edit how the refs/tags was extracted since it
2555   had a little flaw that made it miss the 7.20.1 output.
2556   
2557   Finally, I changed so that Version is outputted even more similar
2558   to how CHANGES does it.
2559
2560 Dan Fandrich (21 Jun 2010)
2561 - Make the output of log2changes.pl even more closely match CHANGES
2562   
2563   Add the ASCII art header, and list version commits by decoding
2564   the ref tag names, when available (using the git log --decorate
2565   option).
2566
2567 Daniel Stenberg (19 Jun 2010)
2568 - log2changes: first version of the git log to CHANGES conversion script
2569   
2570   $ git log --pretty=fuller --no-color --date=short | ./log2changes.pl
2571   
2572   Of course, limiting the log output with a range like with
2573   "[tag]..HEAD" appended can be very useful too.
2574
2575 - sendrecv: treat all negative values from send/recv as errors
2576   
2577   For example the libssh2 based functions return other negative
2578   values than -1 to signal errors and it is important that we catch
2579   them properly. Right before this, various failures from libssh2
2580   were treated as negative download amounts which caused havoc.
2581
2582 - multi: prevent NULL pointer dereference
2583   
2584   My additional call to Curl_pgrsUpdate() would sometimes get
2585   called even though there's no connection (left) so a NULL pointer
2586   would get passed, causing a segfault.
2587
2588 - smtp: fixed a few uses of size_t that seemed to believe it was signed
2589   
2590   Reported-by: Steven M. Schweda
2591
2592 Dan Fandrich (17 Jun 2010)
2593 - Fixed an OOM memory leak in the FTP wildcard code
2594
2595 Kamil Dudka (17 Jun 2010)
2596 - test575: do not fail with threaded DNS resolver
2597
2598 Daniel Stenberg (17 Jun 2010)
2599 - [Krister Johansen brought this change]
2600
2601   multi: unmark handle as used when no longer head of pipeline
2602
2603 - multi: call the progress function only once and allow abort
2604   
2605   1) no need to call the progress function twice when in the
2606   CURLM_STATE_TOOFAST state.
2607   
2608   2) Make sure that the progress callback's return code is
2609   acknowledged when used
2610
2611 - multi: call the progress callback in all states
2612   
2613   As long as no error is reported, the progress function can get
2614   called. This may be a little TOO often so we should keep an eye
2615   on this and possibly make this conditional somehow.
2616
2617 - configure: spell --disable-threaded-resolver correctly
2618   
2619   Previously we only accepted the option when named
2620   --disable-threaded-resover, which wasn't quite intended.
2621   
2622   Reported by: Helwing Lutz
2623
2624 - release: start on 7.21.1, bump contributor count
2625
2626 - version: start working on the 7.21.1-dev version
2627
2628 - THANKS: added contributors from the 7.21.0 release
2629
2630 Version 7.21.0 (16 Jun 2010)
2631
2632 Daniel Stenberg (16 Jun 2010)
2633 - release: 7.21.0
2634
2635 Yang Tse (10 Jun 2010)
2636 - remove unused 'tmpdata' and 'backup' ftp_parselist_data struct members
2637
2638 - replace isprint() with ISPRINT()
2639
2640 - ensure that Curl_wildcard_dtor() leaves WildcardData struct zero initialized
2641
2642 Patrick Monnerat (9 Jun 2010)
2643 - ILE/RPG binding updated to current curl.h definitions.
2644
2645 Yang Tse (9 Jun 2010)
2646 - code simplification
2647
2648 - add Curl_ prefix to conform with cURL naming standards
2649
2650 - Merge branch 'master' of git@github.com:bagder/curl
2651
2652 - fix compiler warning using curl_socket_t to store socket descriptor
2653
2654 Daniel Stenberg (8 Jun 2010)
2655 - inet_pton: warnings: use size_t to store pointer deltas
2656
2657 Yang Tse (8 Jun 2010)
2658 - avoid redundant work when reusing same connection
2659
2660 - fix function result checking
2661
2662 Daniel Stenberg (8 Jun 2010)
2663 - transfer: warning: implicit conversion
2664   
2665   There is an implicit conversion from "unsigned long" to "long";
2666   rounding, sign extension, or loss of accuracy may result.
2667   
2668   Fixed by an added typecast.
2669
2670 - TFTP: fix compiler warning
2671   
2672   Curl_fillreadbuffer()'s second argument takes an int, so
2673   typecasting to another is a bad idea.
2674
2675 - TFTP: fix warning for sendto() usage on non-POSIX systems
2676   
2677   Older unixes want an 'int' instead of 'size_t' as the 3rd
2678   argumment so before this change it would cause warnings such as:
2679   
2680   There is an implicit conversion from "unsigned long" to "int";
2681   rounding, sign extension, or loss of accuracy may result.
2682
2683 Dan Fandrich (7 Jun 2010)
2684 - Include Makefile.inc to get the list of source files for Amiga
2685   
2686   Signed-off-by: Diego Casorran <dcasorran@gmail.com>
2687
2688 Yang Tse (7 Jun 2010)
2689 - Curl_updateconninfo() error handling fix
2690
2691 Daniel Stenberg (5 Jun 2010)
2692 - [Constantine Sapuntzakis brought this change]
2693
2694   OpenSSL: fix spurious SSL connection aborts
2695   
2696   Was seeing spurious SSL connection aborts using libcurl and
2697   OpenSSL. I tracked it down to uncleared error state on the
2698   OpenSSL error stack - patch attached deals with that.
2699   
2700   Rough idea of problem:
2701   
2702   Code that uses libcurl calls some library that uses OpenSSL but
2703   don't clear the OpenSSL error stack after an error.
2704   
2705   ssluse.c calls SSL_read which eventually gets an EWOULDBLOCK from
2706   the OS. Returns -1 to indicate an error
2707   
2708   ssluse.c calls SSL_get_error. First thing, SSL_get_error calls
2709   ERR_get_error to check the OpenSSL error stack, finds an old
2710   error and returns SSL_ERROR_SSL instead of SSL_ERROR_WANT_READ or
2711   SSL_ERROR_WANT_WRITE.
2712   
2713   ssluse.c returns an error and aborts the connection
2714   
2715   Solution:
2716   
2717   Clear the openssl error stack before calling SSL_* operation if
2718   we're going to call SSL_get_error afterwards.
2719   
2720   Notes:
2721   
2722   This is much more likely to happen with multi because it's easier
2723   to intersperse other calls to the OpenSSL library in the same
2724   thread.
2725
2726 Yang Tse (5 Jun 2010)
2727 - replace socklen_t with curl_socklen_t
2728
2729 Daniel Stenberg (5 Jun 2010)
2730 - [Frank Meier brought this change]
2731
2732   getinfo: added *_PRIMARY_PORT, *_LOCAL_IP and *_LOCAL_PORT
2733
2734 - RELEASE-NOTES: add contributors not mentioned
2735
2736 Yang Tse (4 Jun 2010)
2737 - Enable OpenLDAP support for cygwin builds.
2738   
2739   Enable OpenLDAP support for cygwin builds. This support was disabled back
2740   in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers.
2741   cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25
2742   allow building an OpenLDAP enabled libcurl supporting back to Windows 95.
2743   
2744   Remove non-functional CURL_LDAP_HYBRID code and references.
2745
2746 Kamil Dudka (2 Jun 2010)
2747 - ftplistparser.c: oops, fix typo in the last commit
2748
2749 - ftplistparser.c: avoid some invalid dereferences
2750
2751 - lib: eliminate some dead code
2752
2753 Daniel Stenberg (2 Jun 2010)
2754 - SSH: corrected the inability to respect the timeout
2755   
2756   Jason McDonald posted bug report #3006786 when he found that the
2757   SFTP code didn't timeout properly in several places in the code
2758   even if a timeout was set properly.
2759   
2760   Based on his suggested patch, I wrote a different implementation
2761   that I think addressed the issue better and also uses the connect
2762   timeout for the initial part of the SSH/SFTP done during the
2763   "protocol connect" phase.
2764   
2765   (http://curl.haxx.se/bug/view.cgi?id=3006786)
2766
2767 Yang Tse (2 Jun 2010)
2768 - mention last changes
2769
2770 - add missing new files to non-configure target build files
2771
2772 - include libcurl standard internal headers
2773
2774 Daniel Stenberg (2 Jun 2010)
2775 - TODO: add multi interface improvement remove ldap select
2776
2777 Yang Tse (2 Jun 2010)
2778 - make setup.h first included file
2779
2780 - fix spnego memory leak
2781
2782 - openldap header inclusions fix
2783
2784 Daniel Stenberg (1 Jun 2010)
2785 - multi_socket: handles timer inaccuracy better for timeouts
2786   
2787   Igor Novoseltsev reported a problem with the multi socket API and
2788   using timeouts and timers. It boiled down to a problem with
2789   libcurl's use of GetTickCount() interally to figure out the
2790   current time, while Igor's own application code used another
2791   function call.
2792   
2793   It made his app call the socket API timeout function a bit
2794   _before_ libcurl would consider the timeout to trigger, and that
2795   could easily lead to timeouts or stalls in the app. It seems
2796   GetTickCount() in general often has no better resolution than
2797   16ms and switching to the alternative function
2798   QueryPerformanceCounter has its share of problems:
2799   http://www.virtualdub.org/blog/pivot/entry.php?id=106
2800   
2801   We address this problem by simply having libcurl treat timers
2802   that already has occured or will occur within 40ms subject for
2803   treatment. I'm confident that there are other implementations and
2804   operating systems with similarly in accurate timer functions so
2805   it makes sense to have applied generically and I don't believe we
2806   sacrifice much by adding a 40ms inaccuracy on these timeouts.
2807
2808 Yang Tse (1 Jun 2010)
2809 - fix ldaps option issue
2810
2811 - fix ldap related compilation issues
2812
2813 - fix compiler warning: enumerated type mixed with another type
2814
2815 - fix compiler warning: enumerated type mixed with another type
2816
2817 Patrick Monnerat (31 May 2010)
2818 - smtp_authenticate: avoid compiler warnings
2819
2820 Yang Tse (31 May 2010)
2821 - fix compiler warning: enumerated type mixed with another type
2822
2823 - fix compiler warning: enumerated type mixed with another type
2824
2825 - fix compiler warning: enumerated type mixed with another type
2826
2827 - fix compiler warning: external declaration in primary source file
2828
2829 - fix compiler warning: variable was set but never used
2830
2831 - fix compiler warning: enumerated type mixed with another type
2832
2833 - fix compiler warning: external declaration in primary source file
2834
2835 - update year in copyright notice
2836
2837 Kamil Dudka (29 May 2010)
2838 - strtoofft: rename CURL_LLONG_MIN -> CURL_OFF_T_MIN
2839   
2840   ... and CURL_LLONG_MAX -> CURL_OFF_T_MAX
2841
2842 - CURL_LLONG_MAX: avoid constant overflow
2843   
2844   ... when (CURL_SIZEOF_CURL_OFF_T == 4)
2845
2846 Daniel Stenberg (28 May 2010)
2847 - [Howard Chu brought this change]
2848
2849   LDAPS: list availability depending on SSL's presence
2850
2851 - [Howard Chu brought this change]
2852
2853   LDAP: make it build without SSL if no such support is available
2854   
2855   of course it also goes for the case where SSL is explicitly
2856   disabled
2857
2858 - TODO: removed fixed items
2859   
2860   These two items are now actually implemented:
2861   
2862   11.1 Content-Disposition
2863   11.5 ftp wildcard download
2864
2865 Kamil Dudka (28 May 2010)
2866 - lib: eliminate 'statement not reached' warnings
2867
2868 Daniel Stenberg (28 May 2010)
2869 - test1115: verify that unexpected 1xx responses work fine
2870
2871 Kamil Dudka (28 May 2010)
2872 - lib577: avoid redefinition of ERROR
2873
2874 - test313: a new test for CRL support
2875
2876 - tests/certs: re-generated because of lost pass-phrase
2877
2878 - tests/certs/scripts: generate also CRL
2879   
2880   ... and make it possible to do so without any user interaction
2881
2882 Daniel Stenberg (27 May 2010)
2883 - [Howard Chu brought this change]
2884
2885   openldap: fix compiler warnings
2886
2887 - indent: some whitespace edits
2888
2889 Kamil Dudka (27 May 2010)
2890 - wildcard.c: add missing include of "setup.h"
2891
2892 - [Tor Arntsen brought this change]
2893
2894   lib573: do not compare double for exact match
2895
2896 - [Pavel Raiskup brought this change]
2897
2898   wildcard.c: add missing include of "curl_memory.h"
2899
2900 - [Tor Arntsen brought this change]
2901
2902   setup_once: use enum type for 'bool' on non-C99 platforms
2903   
2904   An enum will catch non-bool assignments to bool on platforms with
2905   a strict compiler, e.g MIPSPro.
2906   
2907   Signed-off-by: Kamil Dudka <kdudka@redhat.com>
2908
2909 - url.c: avoid implied cast to bool
2910
2911 - [Tor Arntsen brought this change]
2912
2913   curl_fnmatch: remove use of register keyword
2914   
2915   Using the 'register' keyword rarely improves anything with modern
2916   compilers and architectures.
2917
2918 Daniel Stenberg (26 May 2010)
2919 - [Julien Chaffraix brought this change]
2920
2921   RTMP: Fix compiler warnings
2922
2923 - [Julien Chaffraix brought this change]
2924
2925   OOM fixes in http_negociate.c and lib/splay.c
2926   
2927   Fix 2 OOM errors: a missing NULL-check in lib/http_negociate.c
2928   and a potential NULL dereferencing in lib/splay.c
2929
2930 - [Howard Chu brought this change]
2931
2932   LDAP: properly implemented as a curl_handler
2933   
2934   makes the LDAP code much cleaner, nicer and in general being a
2935   better libcurl citizen. If a new enough OpenLDAP version is
2936   detect, the new and shiny lib/openldap.c code is then used
2937   instead of the old cruft
2938   
2939   Code by Howard, minor cleanups by Daniel.
2940
2941 - [Tor Arntsen brought this change]
2942
2943   curl_fnmatch: Use int not bool when function returns int
2944   
2945   bool in curl internals is unsigned char and should not be used
2946   to receive return value from functions returning int - this fails
2947   when using IBM VisualAge and Tru64 compilers.
2948
2949 - TFTP: send legal timeout value
2950   
2951   Eric Mertens posted bug #3003705: when we made TFTP use the
2952   correct timeout option when sent to the server (fixed May 18th
2953   2010) it became obvious that libcurl used invalid timeout values
2954   (300 by default while the RFC allows nothing above 255). While of
2955   course it is obvious that as TFTP has worked thus far without
2956   being able to set timeout at all, just removing the setting
2957   wouldn't make any difference in behavior. I decided to still keep
2958   it (but fix the problem) as it now actually allows for easier
2959   (future) customization of the timeout.
2960   
2961   (http://curl.haxx.se/bug/view.cgi?id=3003705)
2962
2963 - TFTP: don't ack if wrong block num is received
2964   
2965   If an unexpected block number was received, break out of the
2966   switch loop.
2967
2968 - TFTP: block id wrap bug fix
2969   
2970   In a normal expression, doing [unsigned short] + 1 will not wrap
2971   at 16 bits so the comparisons and outputs were done wrong. I
2972   added a macro do make sure it gets done right.
2973   
2974   Douglas Kilpatrick filed bug report #3004787 about it:
2975   http://curl.haxx.se/bug/view.cgi?id=3004787
2976
2977 - [Ben Greear brought this change]
2978
2979   Fix build warnings.
2980   
2981   Signed-off-by: Ben Greear <greearb@candelatech.com>
2982
2983 - [Ben Greear brought this change]
2984
2985   setopt: Fix setting of set.is_fwrite_set
2986   
2987   Signed-off-by: Ben Greear <greearb@candelatech.com>
2988
2989 - [Tanguy Fautre brought this change]
2990
2991   build: allow curl to build with Microsoft VC10
2992   
2993   By undefing a bunch of E* defines that VC10 has started to define
2994   but that we redefine internally to their WSA* alternatives when
2995   building for Windows.
2996
2997 Kamil Dudka (20 May 2010)
2998 - [Tor Arntsen brought this change]
2999
3000   Test 573: Use correct type for CURLINFO_CONNECT_TIME
3001   
3002   curl_easy_getinfo() called with a pointer to long instead of double
3003   would sigbus on RISC processors (e.g. MIPS) due to wrong alignment
3004   of pointer address.
3005
3006 - [Tor Arntsen brought this change]
3007
3008   lib: Fix AIX build failure
3009
3010 Dan Fandrich (19 May 2010)
3011 - Fixed some memory leaks in the POP3 torture tests
3012
3013 - Fixed a memory leak in the SMTP torture tests
3014
3015 Daniel Stenberg (18 May 2010)
3016 - TFTP: send timeout option correctly
3017   
3018   Eric Mertens posted bug report #3003005 pointing out that the
3019   libcurl TFTP code was not sending the timeout option properly to
3020   the server, and suggested a fix.
3021   
3022   (http://curl.haxx.se/bug/view.cgi?id=3003005)
3023
3024 Kamil Dudka (16 May 2010)
3025 - [Tor Arntsen brought this change]
3026
3027   lib: Change some CRLF line endings to LF
3028   
3029   An update had added a couple of lines with DOS line endings,
3030   and some compilers will choke on that (e.g. the Tru64 compiler).
3031
3032 - ftp wildcard: a new option CURLOPT_FNMATCH_DATA
3033
3034 Daniel Stenberg (15 May 2010)
3035 - [Howard Chu brought this change]
3036
3037   RMTP: the version code is now rtmp aware
3038
3039 - [Howard Chu brought this change]
3040
3041   RTMP: fix wrong #ifdef
3042
3043 - [Pavel Raiskup brought this change]
3044
3045   ftp wildcard: fix int32_t and size/group mixups
3046
3047 Dan Fandrich (14 May 2010)
3048 - Fixed test 577 to work when --enable-hidden-symbols is configured
3049
3050 Daniel Stenberg (14 May 2010)
3051 - OpenSSL: multi interface handshake could hang
3052   
3053   John-Mark Bell filed bug #3000052 that identified a problem (with
3054   an associated patch) with the OpenSSL handshake state machine
3055   when the multi interface is used:
3056   
3057   Performing an https request using a curl multi handle and using
3058   select or epoll to wait for events results in a hang. It appears
3059   that the cause is the fix for bug #2958179, which makes
3060   ossl_connect_common unconditionally return from the step 2 loop
3061   when fetching from a multi handle.
3062   
3063   When ossl_connect_step2 has completed, it updates
3064   connssl->connecting_state to ssl_connect_3. ossl_connect_common
3065   will then return to the caller, as a multi handle is in
3066   use. Eventually, the client code will call curl_multi_fdset to
3067   obtain an updated fdset to select or epoll on. For https
3068   requests, curl_multi_fdset will cause https_getsock to be called.
3069   https_getsock will only return a socket handle if the
3070   connecting_state is ssl_connect_2_reading or
3071   ssl_connect_2_writing.  Therefore, the client will never obtain a
3072   valid fdset, and thus not drive the multi handle, resulting in a
3073   hang.
3074   
3075   (http://curl.haxx.se/bug/view.cgi?id=3000052)
3076
3077 - changelog: add link to bug report
3078
3079 Dan Fandrich (14 May 2010)
3080 - Added directories.pm to the source tar ball
3081
3082 Daniel Stenberg (14 May 2010)
3083 - follow redirect: ignore response-body on redirect even if compressed
3084   
3085   Sebastian V reported bug #3000056 identifying a problem with
3086   redirect following. It showed that when curl followed redirects
3087   it didn't properly ignore the response body of the 30X response
3088   if that response was using compressed Content-Encoding!
3089   
3090   (http://curl.haxx.se/bug/view.cgi?id=3000056)
3091
3092 - version: we're now going for 7.21.0
3093
3094 - [Hoi-Ho Chan brought this change]
3095
3096   Remove support for BSD version of PolarSSL
3097   
3098   "The BSD version of PolarSSL was made for migratory purposes only and is not
3099   maintained. The GPL version of PolarSSL is actually the only actively
3100   developed version, so I would be very reluctant to use the BSD version." /
3101   Paul Bakker, PolarSSL hacker.
3102   
3103   Signed-off-by: Hoi-Ho Chan <hoiho.chan@gmail.com>
3104
3105 Dan Fandrich (12 May 2010)
3106 - Added Polar SSL and RTMP files to the non-autoconf build files
3107   
3108   I didn't bother with a few that have little hope of running the required
3109   dependent libraries.
3110
3111 - Added the new ftp source files to the non-autoconf build files
3112
3113 - Copy the license file so it's seen by the Android build system
3114
3115 Daniel Stenberg (13 May 2010)
3116 - updated with symbols added in recent commits for 7.21.0
3117
3118 - changelogs: mention RTMP and the FTP wildcard support
3119
3120 - ftp wildcards: mention they're added in 7.21.0
3121
3122 - style: minor whitespace change
3123
3124 - syntax: cleanups
3125
3126 - [Pavel Raiskup brought this change]
3127
3128   FTP: WILDCARDMATCH/CHUNKING/FNMATCH added
3129
3130 - [Howard Chu brought this change]
3131
3132   RTMP: initial support added, powered by librtmp
3133   
3134   librtmp is found at http://rtmpdump.mplayerhq.hu/
3135
3136 - [Howard Chu brought this change]
3137
3138   sendrecv: make them two pairs of send/recv to properly deal with FTPS
3139   
3140   FTP(S) use two connections that can be set to different recv and
3141   send functions independently, so by introducing recv+send pairs
3142   in the same manner we already have sockets/connections we can
3143   work with FTPS fine.
3144   
3145   This commit fixes the FTPS regression introduced in change d64bd82.
3146
3147 Kamil Dudka (11 May 2010)
3148 - changelog: fixed CRL support in libcurl-NSS
3149
3150 - nss: make it possible to read ASCII and DER CRL
3151
3152 - nss: add CRL to cache instead of read-only NSS db
3153
3154 Daniel Stenberg (10 May 2010)
3155 - git: how to write a fine commit message
3156
3157 - findtool: file name as a full path requires a slash
3158   
3159   Kalle Vahlman's patch applied a while ago broke how the findtool
3160   function searches for tools, as it would always check if "$file"
3161   was present first, which thus made the bad assumption that a file
3162   in the current directory would be a match.
3163   
3164   I noticed when it found 'libtool' in the current directory but
3165   libtoolize is not there, which confused the script.
3166
3167 Hacki (8 May 2010)
3168 - moved vars into conditional since seems that winsock implementation doesnt use them.
3169
3170 Daniel Stenberg (7 May 2010)
3171 - multi interface: missed storing connection time
3172   
3173   Dirk Manske reported a regression. When connecting with the multi
3174   interface, there were situations where libcurl wouldn't store
3175   connect time correctly as it used to (and is documented to) do.
3176   
3177   Using his fine sample program we could repeat it, and I wrote up
3178   test case 573 using that code. The problem does not easily show
3179   itself using the local test suite though.
3180   
3181   The fix, also as suggested by Dirk, is a bit on the ugly side as
3182   it adds yet another call to Curl_verboseconnect() and setting the
3183   TIMER_CONNECT time.  That situation is subject for some closer
3184   inspection in the future.
3185
3186 - verboseconnect: so the verbose checking within the function
3187   
3188   As the function is used more than once and libcurl can be built
3189   without it, do the conditional check within the verboseconnect()
3190   function itself.
3191
3192 - changelogs: split the I/O handling
3193
3194 - [Howard Chu brought this change]
3195
3196   sendrecv: split the I/O handling into private handler
3197   
3198   Howard Chu brought the bulk work of this patch that properly
3199   moves out the sending and recving of data to the parts of the
3200   code that are properly responsible for the various ways of doing
3201   so.
3202   
3203   Daniel Stenberg assisted with polishing a few bits and fixed some
3204   minor flaws in the original patch.
3205   
3206   Another upside of this patch is that we now abuse CURLcodes less
3207   with the "magic" -1 return codes and instead use CURLE_AGAIN more
3208   consistently.
3209
3210 - changelog: PolarSSL
3211
3212 - [Hoi-Ho Chan brought this change]
3213
3214   PolarSSL: initial support added
3215   
3216   This is Hoi-Ho Chan's patch with some minor fixes by me. There
3217   are some potential issues in this, but none worse than we can
3218   sort out on the list and over time.
3219
3220 - TODO: we've done PRET already, consider HOST for the future
3221   
3222   ... and GnuTLS connects are non-blocking, TFTP is better
3223   integrated as a "real" protocol and RTSP is supported.
3224
3225 - TODO: GnuTLS connects are now non-blocking
3226   
3227   Since commit c288860 by Jerome Vouillon
3228
3229 - INTERNALS: tftp is decent now, ldap is not
3230   
3231   It's not quite fair to list TFTP is a "crappy" member of the
3232   libcurl family so I removed its mentioning.
3233
3234 - changelog: mention Ben Greear's telnet work
3235
3236 - [Ben Greear brought this change]
3237
3238   telnet: Allow programatic use of telnet.
3239   
3240   The main change is to allow input from user-specified methods,
3241   when they are specified with CURLOPT_READFUNCTION.
3242   All calls to fflush(stdout) in telnet.c were removed, which makes
3243   using 'curl telnet://foo.com' painful since prompts and other data
3244   are not always returned to the user promptly.  Use
3245   'curl --no-buffer telnet://foo.com' instead.  In general,
3246   the user should have their CURLOPT_WRITEFUNCTION do a fflush
3247   for interactive use.
3248   
3249   Also fix assumption that reading from stdin never returns < 0.
3250   Old code could crash in that case.
3251   
3252   Call progress functions in telnet main loop.
3253   
3254   Signed-off-by: Ben Greear <greearb@candelatech.com>
3255
3256 - test: enable valgrind for 604, seems to work
3257
3258 Kamil Dudka (28 Apr 2010)
3259 - [Paul Howarth brought this change]
3260
3261   add 1s post-command delay to tests 513 and 514
3262   
3263   addressing http://curl.haxx.se/mail/lib-2009-12/0031.html
3264
3265 Daniel Stenberg (26 Apr 2010)
3266 - [Kalle Vahlman brought this change]
3267
3268   Allow tools to be defined with full path in buildconf
3269   
3270   This is required in Scratchbox where
3271   LIBTOOL=/targets/links/arch_tools/bin/libtool
3272   is set in the environment.
3273
3274 - progress callback: can be called more than once per sec
3275
3276 - SSH: init and cleanup libssh2 in global_init/cleanup
3277   
3278   The necessary libssh2 functions require libssh2 1.2.5 or later.
3279
3280 - new configure option --enable-threaded-resolver
3281
3282 - configure: check for libssh2_init and libssh2_exit
3283
3284 Kamil Dudka (24 Apr 2010)
3285 - nss: fix SSL handshake timeout underflow
3286
3287 Guenter Knauf (24 Apr 2010)
3288 - encourage users to take latest lib dependencies.
3289
3290 Daniel Stenberg (24 Apr 2010)
3291 - socks5: please static code analyzer
3292   
3293   Make sure we don't call memcpy() if the argument is NULL even
3294   though we also passed a zero length then, as the clang analyzer
3295   whined and we want to limit warnings (even false positives) when
3296   they're this easy to fix.
3297   
3298   The change of (char) to (unsigned char) will fix long user names
3299   and passwords on systems that have the char type signed by
3300   default.
3301
3302 - gzip: Value stored to 'data' is never read
3303
3304 - RELEASE-NOTES: update top numbers
3305
3306 - changelog: added the --proto and -proto-redir options
3307
3308 - [Alex Bligh brought this change]
3309
3310   curl: added --proto and --proto-redir
3311   
3312   --proto tells curl to use the listed protocols for its initial
3313   retrieval
3314   
3315   --proto-redir tells curl to use the listed protocols after a
3316   redirect
3317
3318 Kamil Dudka (24 Apr 2010)
3319 - test536: do not fail with threaded DNS resolver
3320   
3321   Also tweaked comments in certain examples using curl_multi_fdset().
3322
3323 Daniel Stenberg (21 Apr 2010)
3324 - curl: -O crash on windows
3325   
3326   The -O option caused curl to crash on windows and DOS due to the
3327   tool writing out of boundary memory.
3328
3329 Yang Tse (20 Apr 2010)
3330 - hmac.c related compilation adjustment
3331
3332 - hmac.c related compilation adjustment
3333
3334 monnerat (20 Apr 2010)
3335 - Add compilation directives for hmac in Watcom,riscos and vc6 platform-specific makefiles.
3336
3337 Yang Tse (20 Apr 2010)
3338 - [Ruslan Gazizov brought this change]
3339
3340   replaced wsock32.lib usage with ws2_32.lib in MSVC makefiles
3341
3342 monnerat (19 Apr 2010)
3343 - Merge branch 'master' of github.com:bagder/curl
3344
3345 - Remove null-effect leftover code.
3346
3347 Daniel Stenberg (19 Apr 2010)
3348 - changelog: -J/--remote-header-name strips CRLF
3349
3350 - parse_filename: strip trailing CRs and LFs
3351   
3352   The feature that uses the file name given in a
3353   Content-disposition: header didn't properly skip trailing
3354   carriage returns and linefeed characters from the end of the file
3355   name when it was given without quotes.
3356
3357 - Curl_HMAC_MD5: fix the array init to not warn with picky compilers
3358
3359 monnerat (19 Apr 2010)
3360 - Fix GnuTLS compilation problem in md5.c
3361
3362 - Fix compilation problem: declare Curl_HMAC_MD5 as extern in include file.
3363
3364 - Merge branch 'master' of github.com:bagder/curl
3365
3366 - Implement SMTP authentication
3367
3368 Daniel Stenberg (17 Apr 2010)
3369 - parseconfig: Value stored to 'line' is never read
3370   
3371   Make the function call with (void) as we don't care about the
3372   return code.
3373
3374 - parsedate: Value stored to 'found' is never read
3375
3376 - check_gzip_header: Value stored to 'data' is never read
3377
3378 - dprintf_formatf: Value stored to 'left' is never read
3379
3380 - curl_version: remove superfluous assignments
3381
3382 - FTP PORT: Value stored to 'rc' is never read
3383
3384 - Curl_setup_transfer: no longer returns anything
3385   
3386   This function could only return CURLE_OK and by changing it to
3387   a void instead, we can simplify code all over.
3388
3389 - PASV response: Value stored to 'rc' is never read
3390
3391 - Curl_perform: Value stored to 'res2' is never read
3392
3393 - sftp range: remove unnecessary check for NULL pointer
3394
3395 - ftp_range: remove unnecessary check for NULL pointer
3396
3397 - file_range: remove unnecessary check for NULL pointer
3398
3399 - SOCKS4: Value stored to 'rc' is never read
3400
3401 - FTP PASV: Value stored to 'rc' is never read
3402
3403 - ftp_range: Value stored to 'totalsize' is never read
3404   
3405   Simplified the code by removing a local variable completely.
3406
3407 - SOCKS5: when name resolves fail return immediately
3408   
3409   This makes the code flow more obvious and reacts on the return
3410   code properly, even if the code acted the same way before.
3411
3412 - POP3: when USER command fails, don't even try PASS
3413
3414 - tftp_rx: Value stored to 'sbytes' is never read
3415
3416 - file_range: Value stored to 'totalsize' is never read
3417
3418 - changelog: GnuTLS: SSL handshake phase is non-blocking
3419
3420 - [Jerome Vouillon brought this change]
3421
3422   GnuTLS: make the connection phase non-blocking
3423   
3424   When multi interface is used, the SSL handshake is no longer
3425   blocking when GnuTLS is used.
3426
3427 - krb5_auth: fix my previous change to compile
3428
3429 unknown (16 Apr 2010)
3430 - OS400 version V5R2M0 not supported anymore by IBM: default target release changed to V5R3M0.
3431
3432 Daniel Stenberg (16 Apr 2010)
3433 - changelog: GnuTLS fix, no reverse loopkups and fixed GSS detection
3434
3435 - SSL_RECV: EOF is not an error here
3436   
3437   The recent overhaul of the SSL recv function made this treat a
3438   zero returned from gnutls_record_recv() as an error, and this
3439   caused our HTTPS test cases to fail. We leave it to upper layer
3440   code to detect if an EOF is a problem or not.
3441
3442 - [Paul Howarth brought this change]
3443
3444   configure: GSSAPI detection on ancient Linux distros
3445   
3446   On some ancient distributions such as RHEL-3, <gssapi/gssapi_krb5.h> needs
3447   to be processed after <gssapi/gssapi.h>, but does not include it itself.
3448   This patch checks for <gssapi/gssapi.h> first and then includes it
3449   in the test for <gssapi/gssapi_krb5.h>, resolving the problem.
3450   
3451   Without the patch, <gssapi/gssapi_krb5.h> is "present but cannot be
3452   compiled".
3453
3454 - resolvers: no more using AI_CANONNAME
3455   
3456   No resolver anymore needs to use AI_CANONNAME and do reverse
3457   lookups.  We should work hard to avoid having code that relies on
3458   it.
3459
3460 - KRB5: use given host name instead of reverse lookup'ed name
3461   
3462   This code would previously use dns_entry->addr->ai_canonname
3463   instead of the given host name, which caused us grief and
3464   problems since not all our resolver options do the reverse lookup
3465   and I would also guess that it caused problems with KRB5/GSS with
3466   virtual name-based hosts. Now the host name from the URL is used.
3467
3468 Dan Fandrich (15 Apr 2010)
3469 - Remove redundant conditional
3470
3471 - Eliminated an unlikely race condition in some tests.
3472   
3473   Based on a patch from the FreeBSD ports by Peter Pentchev.
3474
3475 Daniel Stenberg (15 Apr 2010)
3476 - changelog: prevent needless reverse name lookups
3477
3478 - Curl_ipv4_resolve_r: only set AI_CANONNAME when needed
3479   
3480   As reported in bug report #2987196, the code for ipv6 already did
3481   the setting of this bit correctly so we copied that logic into
3482   the Curl_ipv4_resolve_r() function as well. KRB code is the only
3483   code we know that might need the cannonical name so only resolve
3484   it for such requests!
3485
3486 - IGNORE: files generated by maketgz
3487
3488 - bumped to start the journey towards 7.20.2
3489
3490 - added contributors from the 7.20.1 RELEASE-NOTES
3491
3492 - ignore files generated by 'maketgz'
3493
3494 Version 7.20.1 (14 Apr 2010)
3495
3496 Daniel Stenberg (14 Apr 2010)
3497 - 7.20.1: 14 April 2010
3498
3499 Guenter Knauf (13 Apr 2010)
3500 - Use correct directory for c-ares git pull
3501   Signed-off-by: Tor Arntsen <tor@spacetec.no>
3502
3503 Yang Tse (13 Apr 2010)
3504 - fix compiler warning: variable might be clobbered by longjmp or vfork
3505
3506 Guenter Knauf (13 Apr 2010)
3507 - added last git commit output for c-ares too.
3508
3509 - changed the git update block to take care of c-ares repo if detected.
3510
3511 - updated timestamp of the script.
3512
3513 - removed obsolete var in gitpull() function
3514   no need to create a var - lets just return the status var itself.
3515
3516 - added a cast to silent compiler warning with 64bit systems.
3517
3518 - fixed a path typo in src/Makefile.netware.
3519
3520 Daniel Stenberg (12 Apr 2010)
3521 - Added text for How To Make a Patch with git
3522
3523 - update the section on timeouts
3524   
3525   The section that describes how to work with timeouts was
3526   misleading and could easily trick users to use the wrong API.
3527
3528 - update URL and cut out wrong info on ipv6
3529   
3530   c-ares has had its own URL for a while and we should point
3531   people to that. It also works with IPv6 since a long time.
3532
3533 - refer to CURLMOPT_TIMERFUNCTION for multi_socket users
3534   
3535   curl_multi_timeout(3) is simply the wrong function to use
3536   if you're using the multi_socket API and this document now
3537   states this pretty clearly to help guiding users.
3538
3539 - s/CVS/git
3540
3541 - modified to use the git file, not cvs
3542   
3543   I've done this blindly, and the last piece that works with ares
3544   should possibly be done differently now that c-ares isn't a
3545   subtree within the curl tree anymore...
3546
3547 - mention missing test servers for <server>
3548
3549 - FTP quote commands prefixed with '*' now can fail without aborting
3550   
3551   Prefixing the FTP quote commands with an asterisk really only
3552   worked for the postquote actions. This is now fixed and test case
3553   227 has been extended to verify.
3554
3555 Kamil Dudka (7 Apr 2010)
3556 - qssl: reflect recent code changes in SSL interface
3557   
3558   Reported by Guenter Knauf.
3559
3560 - nss: handle client certificate related errors
3561
3562 - [Ben Greear brought this change]
3563
3564   ssl: Fix build when SSL isn't enabled
3565   
3566   Signed-off-by: Ben Greear <greearb@candelatech.com>
3567
3568 - refactorize interface of Curl_ssl_recv/Curl_ssl_send
3569
3570 - simplify code of Curl_resolv_timeout()
3571
3572 - eliminate a race condition in Curl_resolv_timeout()
3573
3574 Daniel Stenberg (2 Apr 2010)
3575 - [Ben Greear brought this change]
3576
3577   fixed compiler warnings
3578
3579 - updated contributor count
3580
3581 - add contributors from the 7.20.0 release notes
3582
3583 - fix SFTP download hang
3584   
3585   Matt Wixson found and fixed a bug in the SCP/SFTP area where the
3586   code treated a 0 return code from libssh2 to be the same as
3587   EAGAIN while in reality it isn't. The problem caused a hang in
3588   SFTP transfers from a MessageWay server.
3589
3590 Dan Fandrich (31 Mar 2010)
3591 - Fixed misleading test message
3592
3593 Daniel Stenberg (31 Mar 2010)
3594 - update the generic copyright year range
3595
3596 - removed README.cmake due to the improved situation
3597
3598 Guenter Knauf (31 Mar 2010)
3599 - fix compiler warning with a cast.
3600
3601 - make folks use latest available dependent libraries.
3602
3603 Dan Fandrich (30 Mar 2010)
3604 - Call curl_global_cleanup() in test 560 to avoid a memory leak
3605
3606 - Allow test 538 to run even when proxy support is disabled
3607
3608 Daniel Stenberg (29 Mar 2010)
3609 - use (s)size_t for string lengths to fix compiler warns
3610
3611 - use size_t to hold string length
3612   
3613   using int is not fine on 64bit systems
3614
3615 - [Ben Greear brought this change]
3616
3617   Fix compile warnings in ssh.c
3618   
3619   strlen() returns size_t, but ssh libraries are wanting 'unsigned int'.  Add
3620   explicit casts and use _ex versions of the ssh library calls.
3621   
3622   Signed-off-by: Ben Greear <greearb@candelatech.com>
3623
3624 - [Ben Greear brought this change]
3625
3626   fix smtp compile warning
3627   
3628   Use ssize_t instead of int for the Curl_smtp_escape_eob nread
3629   argument.
3630   
3631   Signed-off-by: Ben Greear <greearb@candelatech.com>
3632
3633 - Ben's POP3 change
3634
3635 - [Ben Greear brought this change]
3636
3637   pop3: Get message listing if no mailbox in URL
3638   
3639   If you pass a URL to pop3 that does not contain a message ID as
3640   part of the URL, it will currently ask for 'INBOX' which just
3641   causes the pop3 server to return an error.
3642   
3643   The change makes libcurl treat en empty message ID as a request
3644   for LIST (list of pop3 message IDs).  User's code could then
3645   parse this and download individual messages as desired.
3646
3647 - [Ben Greear brought this change]
3648
3649   Allow running ./tests/testcurl.pl from within git repo.
3650   
3651   My first instinct was to run the test script within the checked out
3652   repository.  This small change to the script allows that to work as
3653   expected.
3654   
3655   Signed-off-by: Ben Greear <greearb@candelatech.com>
3656
3657 - minor language fix
3658
3659 - [Ben Greear brought this change]
3660
3661   allow user+password in the URL for all protocols
3662   
3663   Ben Greear brought a patch that from now on allows all protocols
3664   to specify name and user within the URL, in the same manner HTTP
3665   and FTP have been allowed to in the past - although far from all
3666   of the libcurl supported protocols actually have that feature in
3667   their URL definition spec.
3668
3669 - ignore pid files and stunnel.conf
3670   
3671   all used while running tests
3672
3673 - make sure git pull is actually done!
3674
3675 - changelogged: smoother rate limiting
3676
3677 - [Ben Greear brought this change]
3678
3679   Make rate-limitation logic smoother
3680   
3681   This gives a smoother rate limitation performance by using
3682   sub-second pauses and also taking the buffer sizes into
3683   account.
3684
3685 - remove all .cvsignore files
3686
3687 - PROT_CLOSEACTION should not include TFTP
3688   
3689   TFTP is not a protocol that uses close actions so it should
3690   not be set in that bitmask!
3691
3692 - [Tor Arntsen brought this change]
3693
3694   Avoid double newline for the 'last commits' log in testcurl.pl
3695   
3696   The backtick command which extracts 'git log' lines come with a
3697   newline, so chomp the newline before calling logit(), as the logit
3698   function adds a newline by itself.
3699
3700 - [Tor Arntsen brought this change]
3701
3702   Change to version-independent git option for 'git log --oneline'
3703   
3704   'git log --oneline' is a relatively recent Git function. It is
3705   documented to be the same as 'git log --pretty=oneline --abbrev-commit',
3706   so use that instead. It works all the way back to Git 1.5.0.
3707
3708 - show 5 commits even if no git pull was made
3709
3710 - don't touch ares/aclocal.m4 and show recent git commits
3711   
3712   since c-ares no longer embedded, we must not touch such files
3713   anymore
3714   
3715   we show the 5 last git commits if git was proven in use, to help
3716   us see exactly what's being tested
3717
3718 - use CURL_SIZEOF_LONG instead of SIZEOF_LONG
3719   
3720   That's the symbol we have or generate in include/curl/curlbuild.h
3721
3722 - s/CVS/DEV in the version string from the git repo
3723
3724 Bill Hoffman (24 Mar 2010)
3725 - Merge branch 'master' of github.com:bagder/curl
3726
3727 - Add .gitattributes files to turn off CRLF translation for some files
3728
3729 Daniel Stenberg (24 Mar 2010)
3730 - provide a version number as today's date
3731   
3732   It should at least help visualize which autobuilds that are
3733   using this script.
3734
3735 - testcurl now uses git instead of CVS
3736
3737 Bill Hoffman (24 Mar 2010)
3738 - Merge branch 'master' of github.com:bagder/curl
3739
3740 - Enable LDAP by default since it is now disabled when ldap.h is not found,
3741
3742 - CMake fixes for Linux.
3743   
3744   Make sure <sys/socket.h> is included if around when testing/using
3745   socklen_t.  Also, disable LDAP if LDAP_H is not found on the system.
3746
3747 Daniel Stenberg (24 Mar 2010)
3748 - [Bob Richmond brought this change]
3749
3750   fix: timeout after last data chunk was handled
3751   
3752   Bob Richmond: There's an annoying situation where libcurl will
3753   read new HTTP response data from a socket, then check if it's a
3754   timeout if one is set. If the last packet received constitutes
3755   the end of the response body, libcurl still treats it as a
3756   timeout condition and reports a message like:
3757   
3758   "Operation timed out after 3000 milliseconds with 876 out of 876
3759   bytes received"
3760   
3761   It should only a timeout if the timer lapsed and we DIDN'T
3762   receive the end of the response body yet.
3763
3764 - avoid compiler warning without USE_ALARM_TIMEOUT
3765
3766 Bill Hoffman (24 Mar 2010)
3767 - Fix curl CMake build.
3768   
3769   This commit fixes the cmake build of curl, and cleans up the
3770   cmake code a little.  It removes some commented out code and
3771   some trailing whitespace.  To get curl to build the binary
3772   tree include/curl directory needed to be added to the include
3773   path. Also, SIZEOF_SHORT needed to be added.  A check for the
3774   lack of defines of SIZEOF_* for warnless.c was added.
3775
3776 Daniel Stenberg (24 Mar 2010)
3777 - [Chris Conroy brought this change]
3778
3779   remove debug printfs
3780
3781 - RTSP GET_PARAMETER fix
3782   
3783   Christopher Conroy fixed a problem with RTSP and GET_PARAMETER
3784   reported to us by Massimo Callegari. There's a new test case 572
3785   that verifies this now.
3786
3787 - remove trace of CVS
3788
3789 - [Chris Conroy brought this change]
3790
3791   Fix RTSP GET_PARAMETER empty and non-empty operation.
3792   
3793   Test coverage included. Thanks to Massimo Callegari for the bug report
3794
3795 - s/CVS/DEV/ in the version string for repo versions
3796
3797 - scrapped all left-over TODOs
3798   
3799   In order to get back on track, I've removed all the plans for
3800   stuff I had in the queue. I will instead focus on fixing bugs and
3801   relying on that people who truly want things added will come back
3802   on the mailing list and nag and provide patches.
3803   
3804   7.20.1 should be possible to release in April 2010
3805
3806 - restore executable bits on some files
3807
3808 - remove the CVSish $Id$ lines
3809
3810 - The 'ares' subtree has been removed from the source repository
3811
3812 - s/CVS/git
3813
3814 - update to current state
3815
3816 - remove the ares subtree
3817   
3818   c-ares is now hosted entirely separate from the curl project
3819   see http://c-ares.haxx.se/ for all details concerning c-ares,
3820   its source repository and more.
3821
3822 - mark connection as connected
3823   
3824   Kenny To filed the bug report #2963679 with patch to fix a
3825   problem he experienced with doing multi interface HTTP POST over
3826   a proxy using PROXYTUNNEL. He found a case where it would connect
3827   fine but bits.tcpconnect was not set correct so libcurl didn't
3828   work properly.
3829   
3830   (http://curl.haxx.se/bug/view.cgi?id=2963679)
3831
3832 - enabled valgrind
3833   
3834   I ran it now successfully and it helped to pinpoint a libssh2
3835   memory leak!
3836
3837 Dan Fandrich (23 Mar 2010)
3838 - Updated Symbian notes
3839
3840 Daniel Stenberg (23 Mar 2010)
3841 - chunked-encoding with Content-Length: header problem
3842   
3843   Akos Pasztory filed debian bug report #572276
3844   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276
3845   mentioning a problem with a resource that returns chunked-encoded
3846   _and_ with a Content-Length and libcurl failed to properly ignore
3847   the latter information.
3848
3849 - delayed easy handle kill caused double Curl_close() call
3850   
3851   Hauke Duden provided an example program that made the multi
3852   interface crash.  His example simply used the multi interface and
3853   did first one FTP transfer and after completion it used a second
3854   easy handle and did another FTP transfer on the same FTP server.
3855   
3856   This triggered a bug in the "delayed easy handle kill" system
3857   that curl uses: when an FTP connection is left alive it must keep
3858   an easy handle around internally - only for the purpose of having
3859   an easy handle when it later disconnects it. The code assumed
3860   that when the easy handle was removed and an internal reference
3861   was made, that version could be killed later on when a new easy
3862   handle came using the same connection. This was wrong as Hauke's
3863   example showed that the removed handle wasn't killed for real
3864   until later. This caused a double close attempt => segfault.
3865
3866 - ignore more files generated when tests run in the source tree
3867
3868 - Thomas Lopatic fixed the alarm()-based DNS timeout
3869
3870 - [Thomas Lopatic brought this change]
3871
3872   fix the alarm()-based DNS timeout
3873   
3874   Looking at the code of Curl_resolv_timeout() in hostip.c, I think
3875   that in case of a timeout, the signal handler for SIGALRM never
3876   gets removed. I think that in my case it gets executed at some
3877   point later on when execution has long left Curl_resolv_timeout()
3878   or even the cURL library.
3879   
3880   The code that is jumped to with siglongjmp() simply sets the
3881   error message to "name lookup timed out" and then returns with
3882   CURLRESOLV_ERROR. I guess that instead of simply returning
3883   without cleaning up, the code should have a goto that jumps to
3884   the spot right after the call to Curl_resolv().
3885
3886 - [Daniel Johnson brought this change]
3887
3888   Fix warnings for clang
3889
3890 - Merge branch 'master' of github.com:bagder/curl
3891
3892 Kamil Dudka (22 Mar 2010)
3893 - [douglas steinwand brought this change]
3894
3895   Fix insufficient initialization in Curl_clone_ssl_config()
3896   
3897   which could have caused a double free when reusing curl handle.
3898
3899 Daniel Stenberg (22 Mar 2010)
3900 - we never used this file anyway
3901
3902 - s/CVS/git
3903
3904 - various changes of CVS to git
3905
3906 - remove references to CVS in the code and use DEV instead
3907
3908 - Ben Greear's two fixes explained
3909
3910 - [Ben Greear brought this change]
3911
3912   Fix tftp return codes and tsize upload handling
3913   
3914   Error codes were not properly returned to the main curl code (and on to apps
3915   using libcurl).
3916   
3917   tftp was crapping out when tsize == 0 on upload, but I see no reason to fail
3918   to upload just because the remote file is zero-length.  Ignore tsize option on
3919   upload.
3920
3921 - more files to ignore
3922
3923 - provide an initial set of .gitignore files
3924
3925 Kamil Dudka (19 Mar 2010)
3926 - - Improved Curl_read() to not ignore the error returned from Curl_ssl_recv().
3927
3928 Daniel Stenberg (18 Mar 2010)
3929 - fix warning about conversions between curl_off_t and long
3930
3931 Yang Tse (18 Mar 2010)
3932 - another shot at the ftp_init() icc 9.1 optimizer issue
3933
3934 - replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing
3935
3936 - update outdated serial number
3937
3938 Dan Fandrich (16 Mar 2010)
3939 - Factored out some code into a few independent functions
3940
3941 Daniel Stenberg (15 Mar 2010)
3942 - - Constantine Sapuntzakis brought a patch:
3943   
3944     The problem mentioned on Dec 10 2009
3945     (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed.
3946     Partially because an easy handle can be associated with many connections in
3947     the cache (e.g. if there is a redirect during the lifetime of the easy
3948     handle).  The previous patch only cleaned up the first one. The new fix now
3949     removes the easy handle from all connections, not just the first one.
3950
3951 Yang Tse (11 Mar 2010)
3952 - fix compiler warning
3953
3954 Dan Fandrich (11 Mar 2010)
3955 - SSL should now be working out-of-the-box on Symbian S60.
3956
3957 - Enable Symbian zlib support by default.
3958
3959 - Allow compilation even when OpenSSL has been configured without MD4 support.
3960
3961 - A few Symbian build changes
3962
3963 Yang Tse (9 Mar 2010)
3964 - watt32 compilation fix
3965
3966 Daniel Stenberg (6 Mar 2010)
3967 - - Ben Greear brought a patch that fixed the rate limiting logic for TFTP when
3968     the easy interface was used.
3969
3970 - indent fix by Ben Greear, I removed some braces for single-line conditional
3971   expressions
3972
3973 Yang Tse (6 Mar 2010)
3974 - Added another VS10 version string
3975
3976 - fix line break
3977
3978 - removed usage of 's6_addr', fixing compilation issue triggered with no
3979   longer using 'in6_addr' but only our 'ares_in6_addr' struct
3980
3981 Daniel Stenberg (5 Mar 2010)
3982 - Daniel Johnson provided fixes for building with the clang compiler
3983
3984 Yang Tse (5 Mar 2010)
3985 - Added IPv6 name servers support
3986
3987 Gisle Vanem (5 Mar 2010)
3988 - Ops!. Readded ares_nowarn.h.
3989
3990 - Added ares_nowarn.c.
3991
3992 Yang Tse (5 Mar 2010)
3993 - Constantine Sapuntzakis detected and fixed a double free in builds done
3994   with threaded resolver enabled (Windows default configuration) that would
3995   get triggered when a curl handle is closed while doing DNS resolution.
3996
3997 - Added SIZEOF_INT and SIZEOF_SHORT definitions for VMS configuration file
3998
3999 Daniel Stenberg (4 Mar 2010)
4000 - Julien Chaffraix clarified CURLOPT_HEADERFUNCTION and made
4001   CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION more consistent
4002
4003 - - [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and
4004     ran into some issues with the GSSAPI tests in configure.ac. The tests first
4005     try to determine the include dirs and libs and set CPPFLAGS and LIBS
4006     accordingly. It then checks for the headers and finally sets LIBS a second
4007     time, causing the libs to be included twice. The first setting of LIBS seems
4008     redundant and should be left out, since the first part is otherwise just
4009     about finding headers.
4010   
4011     My second issue is that 'krb5-config --libs gssapi' on Darwin is less than
4012     useless and returns junk that, while it happens to work with gcc, causes
4013     clang to choke. For example, --libs returns $CFLAGS along with the libs,
4014     which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5
4015     -lresolv"' on Darwin is sufficient.
4016
4017 - - Based on patch provided by Jacob Moshenko, the transfer logic now properly
4018     makes sure that when using sub-second timeouts, there's no final bad 1000ms
4019     wait. Previously, a sub-second timeout would often make the elapsed time end
4020     up the time rounded up to the nearest second (e.g. 1s for 200ms timeout)
4021
4022 - update the generic copyright year range to include 2010
4023
4024 - - Andrei Benea filed bug report #2956698 and pointed out that the
4025     CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function
4026     call. He provided the patch to fix it too.
4027   
4028     http://curl.haxx.se/bug/view.cgi?id=2956698
4029
4030 - - Markus Duft pointed out in bug #2961796 that even though Interix has a
4031     poll() function it doesn't quite work the way we want it so we must disable
4032     it, and he also provided a patch for it.
4033   
4034     http://curl.haxx.se/bug/view.cgi?id=2961796
4035
4036 - - Made the pingpong timeout code properly deal with the response timeout AND
4037     the global timeout if set. Also, as was reported in the bug report #2956437
4038     by Ryan Chan, the time stamp to use as basis for the per command timeout was
4039     not set properly in the DONE phase for FTP (and not for SMTP) so I fixed
4040     that just now. This was a regression compared to 7.19.7 due to the
4041     conversion of FTP code over to the generic pingpong concepts.
4042   
4043     http://curl.haxx.se/bug/view.cgi?id=2956437
4044
4045 - remove assignment never used
4046
4047 - - Ben Greear provided an update for TFTP that fixes upload.
4048
4049 - SSL, not SSH, SSL
4050
4051 - - Wesley Miaw reported bug #2958179 which identified a case of looping during
4052     OpenSSL based SSL handshaking even though the multi interface was used and
4053     there was no good reason for it.
4054   
4055     http://curl.haxx.se/bug/view.cgi?id=2958179
4056
4057 Yang Tse (28 Feb 2010)
4058 - Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
4059
4060 - Added ares_nowarn.* to VC6 project file
4061
4062 Daniel Stenberg (26 Feb 2010)
4063 - spellchecked by Stéphane Fillod
4064
4065 - - Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a
4066     chunked-encoding trailer.
4067   
4068     http://curl.haxx.se/bug/view.cgi?id=2958474
4069
4070 Dan Fandrich (26 Feb 2010)
4071 - Fixed a couple of out of memory leaks and a segfault in the IMAP code.
4072
4073 Yang Tse (26 Feb 2010)
4074 - fix sizeof short
4075
4076 - Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
4077
4078 - Added SIZEOF_INT definition
4079
4080 - fix compiler warning
4081
4082 - fix compiler warning
4083
4084 - fix compiler warning
4085
4086 Dan Fandrich (25 Feb 2010)
4087 - Fixed a couple of out of memory leaks and a segfault in the SMTP code.
4088
4089 Yang Tse (25 Feb 2010)
4090 - fix file name
4091
4092 - Fixed bug report #2958074 indicating
4093   (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with
4094   option --trace-time did not use local time when timestamping trace lines.
4095   This could also happen on other systems depending on time souurce.
4096
4097 - enable 802 and 803
4098
4099 - fix compiler warning
4100
4101 - fix compiler warning
4102
4103 - fix compiler warning
4104
4105 - fix socket data type
4106
4107 - fix socket data type and logging format in debug tracking socket functions
4108
4109 - convert Curl_ultous() and Curl_ultouc() functions to curlx_ultous() and
4110   curlx_ultouc(), exposing them through curlx.h to allow proper code reuse
4111   later in our test harness.
4112
4113 - updated sources
4114
4115 Patrick Monnerat (22 Feb 2010)
4116 - _ Adjusted RFC821 HELO fallback and enabled test804
4117
4118 - - Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account.
4119   - SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required).
4120   - Use of true local host name (i.e.: via gethostname()) when available, as default argument to SMTP HELO/EHLO.
4121   - Test case 804 for HELO fallback.
4122
4123 Yang Tse (22 Feb 2010)
4124 - add header inclusion
4125
4126 - fix compiler warning
4127
4128 - fix compiler warning
4129
4130 Daniel Stenberg (21 Feb 2010)
4131 - clarify more details on section "2.1 More non-blocking"
4132
4133 - TFTP transfers are not blocking since 7.20.0
4134
4135 - - Fixed the SMTP compliance by making sure RCPT TO addresses are specified
4136     properly in angle brackets. Recipients provided with CURLOPT_MAIL_RCPT now
4137     get angle bracket wrapping automatically by libcurl unless the recipient
4138     starts with an angle bracket as then the app is assumed to deal with that
4139     properly on its own.
4140
4141 - - I made the SMTP code expect a 250 response back from the server after the
4142     full DATA has been sent, and I modified the test SMTP server to also send
4143     that response. As usual, the DONE operation that is made after a completed
4144     transfer is still not doable in a non-blocking way so this waiting for 250
4145     is unfortunately made blockingly.
4146
4147 - corected a comment and wrapped a few longish lines
4148
4149 Yang Tse (20 Feb 2010)
4150 - fix compiler warning
4151
4152 - fix compiler warning
4153
4154 - fix compiler warning
4155
4156 - fix compiler warning
4157
4158 - fix compiler warning
4159
4160 Daniel Stenberg (17 Feb 2010)
4161 - ares_reinit()
4162   
4163   - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
4164     like the res_init() resolver function offers
4165
4166 - use curl standard indentation and line lengths
4167
4168 Yang Tse (16 Feb 2010)
4169 - replaced tabs with spaces
4170
4171 - fix Content-Length validation
4172
4173 Daniel Stenberg (15 Feb 2010)
4174 - use (void) in front of fwrite() calls that ignore the return code
4175
4176 Yang Tse (15 Feb 2010)
4177 - fix compiler warning: conversion from "long" to "size_t" may lose sign
4178
4179 - fix compiler warning: conversion from "long" to "size_t" may lose sign
4180
4181 Daniel Stenberg (15 Feb 2010)
4182 - -w speed_download and speed_upload are measured in bytes per second
4183
4184 - 75. NTLM authentication involving unicode user name or password.
4185     http://curl.haxx.se/mail/lib-2009-10/0024.html
4186     http://curl.haxx.se/bug/view.cgi?id=2944325
4187
4188 Yang Tse (14 Feb 2010)
4189 - removed trailing whitespace
4190
4191 - fix compiler warning
4192
4193 - Overhauled test suite getpart() function. Fixing potential out of bounds
4194   stack and memory overwrites triggered with huge test case definitions.
4195
4196 Daniel Stenberg (13 Feb 2010)
4197 - - Martin Hager reported and fixed a problem with a missing quote in libcurl.m4
4198   
4199     (http://curl.haxx.se/bug/view.cgi?id=2951319)
4200
4201 Gunter Knauf (13 Feb 2010)
4202 - used allways #ifdef / #ifndef;
4203   moved gethostbyname_thread() to #else case to avoid 'not used' compiler warning.
4204
4205 - replaced tabs by spaces, removed trailing tabs/spaces.
4206
4207 Daniel Stenberg (13 Feb 2010)
4208 - - Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake.
4209
4210 - - Jack Zhang reported a problem with SMTP: we wrongly used multiple addresses
4211     in the same RCPT TO line, when they should be sent in separate single
4212     commands. I updated test case 802 to verify this.
4213   
4214   - I also fixed a bad use of my_setopt_str() of CURLOPT_MAIL_RCPT in the curl
4215     tool which made it try to output it as string for the --libcurl feature
4216     which could lead to crashes.
4217
4218 - CURLOPT_MAIL_RCPT is *not* a string so we must not try to printf() it
4219
4220 - free --mail-from strings properly
4221
4222 Patrick Monnerat (11 Feb 2010)
4223 - _ Make it compilable again on OS400.
4224   _ Upgrade OS400 EBCDIC wrappers for new options.
4225   _ Upgrade ILE/RPG bindings to current state.
4226
4227 Yang Tse (11 Feb 2010)
4228 - mention last changes
4229
4230 - Steven M. Schweda updated VMS readme file
4231
4232 - Steven M. Schweda removed batch_compile.com and defines.com
4233
4234 - Steven M. Schweda fixed:
4235   
4236   VMS builder bad behavior when used in a batch job.
4237   
4238   Various ".LIS" and ".MAP" files created without being requested
4239   by a "LIST" command-line option, and in the wrong place, too.
4240   
4241   Some minor typographical changes.
4242
4243 Dan Fandrich (10 Feb 2010)
4244 - Mention the minimum size of CURL_MAX_WRITE_SIZE
4245
4246 Yang Tse (10 Feb 2010)
4247 - - remove extra "\r\n" from doc404_RTSP
4248   
4249   - avoid memory alignment issue when setting RTSP packet length
4250
4251 Dan Fandrich (9 Feb 2010)
4252 - Removed some erroneous "compressed" key words
4253
4254 Daniel Stenberg (9 Feb 2010)
4255 - start working on 7.20.1
4256
4257 Version 7.20.0 (9 Feb 2010)
4258
4259 Daniel Stenberg (9 Feb 2010)
4260 - spell and 7.20.0
4261
4262 - - When downloading compressed content over HTTP and the app as asked libcurl
4263     to automatically uncompress it with the CURLOPT_ENCODING option, libcurl
4264     could wrongly provide the callback with more data than what the maximum
4265     documented amount. An application could thus get tricked into badness if the
4266     maximum limit was trusted to be enforced by libcurl itself (as it is
4267     documented).
4268   
4269     This is further detailed and explained in the libcurl security advisory
4270     20100209 at
4271   
4272       http://curl.haxx.se/docs/adv_20100209.html
4273
4274 - set VERSIONINFO accordingly for the 7.20.0 release
4275
4276 Yang Tse (6 Feb 2010)
4277 - warning fix
4278
4279 - OOM handling fix
4280
4281 - OOM handling fix
4282
4283 - fix compiler warning
4284
4285 - fix compiler warning
4286
4287 - fix compiler warning
4288
4289 - Addes OOM handling for curl_easy_setopt() calls in test
4290
4291 - - avoid OpenSSL 0.9.8 ENGINE_by_id memory leak
4292   
4293   - cleanup parenthesis usage in return statements
4294
4295 - - attempt to workaround icc 9.1 optimizer issue
4296
4297 - fix printf-style format strings
4298
4299 - Validate server port argument
4300
4301 - Fix variable initialization
4302
4303 - Modified test case 557 to additionally verify libcurl's internal curl_m*printf()
4304   functions formatting functionality when handling signed and unsigned shorts.
4305
4306 - Added size check for 'short' data type
4307
4308 - Fix compiler warning: unused variable
4309
4310 - added an additional second to allow test to pass on heavily loaded servers
4311
4312 Dan Fandrich (3 Feb 2010)
4313 - Changed the Watcom makefiles to make them easier to keep in sync with
4314   Makefile.inc since that can't be included directly.
4315
4316 Daniel Stenberg (3 Feb 2010)
4317 - more symbols added in 7.20.0
4318
4319 Yang Tse (3 Feb 2010)
4320 - Fix OOM handling
4321
4322 - Fix progressmode Configurable struct member data type. Changed to
4323   'int' which fits better with existing CURL_PROGRESS_* definitions.
4324
4325 - Fix portability issue related with unaligned memory access
4326
4327 - Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data
4328
4329 - cookies with same path length might get sorted in different order when
4330   using different qsort implementations. In order to make this test give
4331   same results on different systems, paths now have different lengths.
4332
4333 - added an additional second to allow test to pass on heavily loaded servers
4334
4335 - Fix compiler warning: conditional expression is constant
4336
4337 - Fix compiler warning: local variable may be used without having been initialized.
4338
4339 - Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data
4340
4341 - Fix compiler warnings:
4342   
4343   (1) conversion from 'const int ' to 'unsigned char ', possible loss of data
4344   (2) conditional expression is constant
4345
4346 - mention a couple of changes back from November
4347
4348 - mention run time statistics options
4349
4350 - - Symbol CURL_FORMAT_OFF_T now obsoleted, will be removed in a future release,
4351     symbol will not be available when building with CURL_NO_OLDIES defined. Use
4352     of CURL_FORMAT_CURL_OFF_T is preferred since 7.19.0
4353
4354 - avoid possibility of using obsoleted stuff
4355
4356 - remove setup.h inclusion which is already done from test.h inclusion
4357
4358 Kamil Dudka (2 Feb 2010)
4359 - mention SOCKS related problems in the curl(1) man page
4360
4361 Yang Tse (2 Feb 2010)
4362 - Fix compiler warning: variable was set but never used
4363   
4364   Simplify preprocessor symbol checking
4365
4366 Daniel Stenberg (2 Feb 2010)
4367 - Julien Chaffraix pointed out a comment mistake, and I re-indented the code
4368   slightly while editing
4369
4370 Yang Tse (2 Feb 2010)
4371 - include headers
4372
4373 - Conroy added a check to the coded message size since the docs stipulate
4374   that each call will contain a full protocol packet.
4375
4376 - Conroy's fix to make the code match with the RTP documentation regarding
4377   writing out the whole header. The docs say it writes the whole header,
4378   but the code (before this patch) did not write out the leading $.
4379
4380 Daniel Stenberg (1 Feb 2010)
4381 - We introduce a loop in lib/multi.c around all calls to multi_runsingle() and
4382   simply check for CURLM_CALL_MULTI_PERFORM internally. This has the added
4383   benefit that this goes in line with my long-term wishes to get rid of the
4384   CURLM_CALL_MULTI_PERFORM all together from the public API.
4385
4386 Yang Tse (1 Feb 2010)
4387 - update rtsp server header field from SWS to RTSPD
4388
4389 - Test suite support for RTSP
4390
4391 - Make Curl_pop3_write() additionally truncate trailing POP3_EOB from received
4392   string buffer, otherwise Curl_client_write() call with zero size would write
4393   to the end of string buffer including matched POP3_EOB.
4394
4395 - WIN32 fix, _beginthreadex() may return either 0 or -1L upon failure
4396
4397 - fix errno usage for WIN32 builds
4398
4399 - fix printf-style format strings
4400
4401 - Chris Conroy fixed test #568 issues with carriage returns
4402
4403 - RTSP followup fix. Both the pipelined and non-pipelined case need to
4404   check for (excess > 0 && !k->ignorebody).
4405
4406 Daniel Stenberg (28 Jan 2010)
4407 - - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't
4408     check for broken connections like ares_process() did. Based on that, I
4409     merged the two functions into a single generic one with two front-ends.
4410
4411 Yang Tse (28 Jan 2010)
4412 - fix printf-style format strings
4413
4414 - Use 'size_t' for GETNAMEINFO_TYPE_ARG2 definition for VMS.
4415   
4416   http://curl.haxx.se/mail/lib-2009-12/0293.html
4417
4418 - portability fix
4419
4420 - fix printf-style format strings
4421
4422 - Known bug #64 fixed by Constantine Sapuntzakis and Joshua Kwan in 7.20.0
4423
4424 - Chris Conroy provided first RTSP tests
4425
4426 - RTSP tests disabled until test harness RTSP support is updated
4427
4428 - Chris Conroy's RTSP followup fixes
4429
4430 - mention asynchronous DNS lookups enhancements
4431
4432 - Restore normal operation:
4433   
4434     c-ares is only enabled when specifically requested.
4435   
4436     Consequently, c-ares default setting is disabled.
4437
4438 - fix c-ares assumed check being skipped
4439
4440 - fix compiler warning
4441
4442 - fix LDFLAGS preservation in CURL_CHECK_LIB_ARES
4443
4444 Daniel Stenberg (26 Jan 2010)
4445 - no need to take precautiono for how things were before 7.16.0 since that
4446   is now a very long time ago
4447
4448 - - Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the
4449     proxy that cannot be resolved when using c-ares. This matches the behaviour
4450     when not using c-ares.
4451
4452 Dan Fandrich (26 Jan 2010)
4453 - Added curl_threads.c to a few more non-configure build files
4454
4455 Yang Tse (26 Jan 2010)
4456 - minor fixes for --enable-ares configure option
4457
4458 Daniel Stenberg (26 Jan 2010)
4459 - Andre Guibert de Bruet improved the libssh2 error code translation
4460
4461 Yang Tse (26 Jan 2010)
4462 - resolver selection for non-configure Windows builds, default is threaded DNS
4463
4464 - add curl_threads.c to non-configure target build files
4465
4466 - onstantine Sapuntzakis threaded resolver enhancements
4467
4468 - Constantine Sapuntzakis threaded resolver enhancements
4469
4470 - Constantine Sapuntzakis provided initial thread abstraction layer
4471
4472 - make Curl_handler_*_proxy definition static
4473
4474 Dan Fandrich (25 Jan 2010)
4475 - Updated minimum library sizes
4476
4477 Yang Tse (25 Jan 2010)
4478 - fix compiler warning
4479
4480 Daniel Stenberg (24 Jan 2010)
4481 - Julien Chaffraix corrected bad #elif lines to silence warnings
4482
4483 Yang Tse (24 Jan 2010)
4484 - HAVE_GETADDRINFO_THREADSAFE definition for non-configure win32 builds
4485
4486 Bjorn Stenberg (23 Jan 2010)
4487 - Mention -J change
4488
4489 - Added -J/--remote-header-name.
4490
4491 Daniel Stenberg (23 Jan 2010)
4492 - "remove progress meter from libcurl" at next API break
4493
4494 Yang Tse (23 Jan 2010)
4495 - add inclusion of curl_memory.h
4496
4497 - adjust preprocessor symbol definition check relative to resolver specialty
4498
4499 - PKTSIZE might have been already defined in arpa/tftp.h
4500
4501 Dan Fandrich (23 Jan 2010)
4502 - Include "curl_memory.h" to get the strdup replacement when necessary
4503
4504 Daniel Stenberg (22 Jan 2010)
4505 - wrap long lines and do some indent policing
4506
4507 Yang Tse (22 Jan 2010)
4508 - Definitions of resolver specialty compile-time defines CURLRES_* moved
4509   from hostip.h to setup.h in order to allow proper inclusion in any file.
4510   
4511   This represents no functional change at all in which resolver is used,
4512   everything still works as usual, internally and externally there is no
4513   difference in behavior.
4514
4515 - adjust rtsp protocol support in curl-config and libcurl.pc when http is disabled
4516
4517 - deal with the possibility that CURL_DISABLE_RTSP may already be defined
4518
4519 - fix compiler warning: statement is unreachable
4520
4521 - fix compilation when http is disabled
4522
4523 - disabling of rtsp when http isn't enabled required here for non-configure systems
4524
4525 Daniel Stenberg (22 Jan 2010)
4526 - wrap long lines, remove (very old) attribution from code
4527
4528 - cleanups by Julien Chaffraix
4529
4530 - alphabetically sort the list of supported protocols
4531
4532 - In spite claiming to tbe disabled by default, RTSP is enabled and it now
4533   also says so. I also made the list of protocols get sorted.
4534
4535 - expanded to provide info about the newer protocols too
4536
4537 - s/RTPFUNCTION/INTERLEAVEFUNCTION/
4538   s/RTPDATA/INTERLEAVEDATA/
4539
4540 - keep lines shorter than 80 columns, and reduce/remove the use of the word
4541   'note' in most description as it is mostly useless.
4542
4543 Yang Tse (22 Jan 2010)
4544 - Julien Chaffraix adjusted "<name> section" line length
4545
4546 - Constantine Sapuntzakis refactoring of async callbacks, allowing
4547   removal of Curl_addrinfo_copy(), Curl_addrinfo6_callback(), and
4548   Curl_addrinfo4_callback()
4549
4550 Dan Fandrich (21 Jan 2010)
4551 - Added rtsp.c to the non-configure target build files
4552
4553 Yang Tse (21 Jan 2010)
4554 - fix compiler warning
4555
4556 - make tftp_translate_code() static, it is only used from within tftp.c
4557
4558 - fix warning triggered when debugging on cygwin
4559
4560 - allow exporting of exe_ext() sub
4561
4562 - improve displaylogcontent() sub fixing a warning
4563
4564 Daniel Stenberg (21 Jan 2010)
4565 - remove typedef we ended up not using
4566
4567 - Chris Conroy brought support for RTSP transfers, and with it comes 8(!) new
4568   libcurl options for controlling what to get and how to receive posssibly
4569   interleaved RTP data. Initial commit.
4570
4571 - Julien Chaffraix fixed line lengths
4572
4573 - Julien Chaffraix removed an old obsolete typedef
4574
4575 - Yun Fu pointed out a flaw in the loop that checks handles, and I indented
4576   the code more curl-style
4577
4578 - "5.3 Sort outgoing cookies" removed, we now sort them
4579
4580 Yang Tse (20 Jan 2010)
4581 - SIGTERM is the signal to trap here, SIGKILL can't be caught.
4582
4583 - Use killsockfilters() to kill sockfilter processes, this ensures that when
4584   killing a sockfilter process the actual PID from the pid file is used and
4585   not the one returned by open2() which might be different.
4586
4587 - Allow killsockfilters() to take a 5th optional parameter that when provided
4588   indicates that only one of the two possible sockfilter processes should be
4589   killed.  Valid values for this parameter are 'main' and 'data'.
4590
4591 - Use delete() to unset environment variables instead of assigning undef which
4592   generates warning 'Use of uninitialized value in scalar assignment' with perl
4593   versions older than 5.10
4594
4595 - Adjust valgrind logs file name detection.
4596   
4597   Adjust environment vars setting and restoring from test definition.
4598   
4599   Avoid using strftime in torture sub.
4600
4601 Daniel Stenberg (20 Jan 2010)
4602 - modified test case 8 to also make sure that we deal with cookies using
4603   identical names but different paths properly
4604
4605 - - As was pointed out on the http-state mailing list, the order of cookies in a
4606     HTTP Cookie: header _needs_ to be sorted on the path length in the cases
4607     where two cookies using the same name are set more than once using
4608     (overlapping) paths. Realizing this, identically named cookies must be
4609     sorted correctly. But detecting only identically named cookies and take care
4610     of them individually is harder than just to blindly and unconditionally sort
4611     all cookies based on their path lengths. All major browsers also already do
4612     this, so this makes our behavior one step closer to them in the cookie area.
4613   
4614     Test case 8 was the only one that broke due to this change and I updated it
4615     accordingly.
4616
4617 - oops, I forgot to cvs add this before my previous commit (Dan Fandrich
4618   pointed it out to me)
4619
4620 - - David McCreedy brought a fix and a new test case (129) to make libcurl work
4621     again when downloading files over FTP using ASCII and it turns out that the
4622     final size of the file is not the same as the initial size the server
4623     reported. This is very common since servers don't take the newline
4624     conversions into account.
4625
4626 - "260 - IMAP, POP3 and SMTP support" done!
4627
4628 - avoid "Use of uninitialized value $l in concatenation"
4629
4630 Yang Tse (19 Jan 2010)
4631 - Fail harder when curl coredumps trying to verify http and ftp servers.
4632   
4633   Add some debug messages to see what's going on with valgrind logs.
4634
4635 - prevent %runcert hash growth when clearing items
4636
4637 - update copyright year notice
4638
4639 - Constantine Sapuntzakis enhancements to make memory tracking log file writing
4640   of messages atomic, on systems where an fwrite of a memory buffer is atomic.
4641
4642 Dan Fandrich (18 Jan 2010)
4643 - Added PEM certificate keyword
4644
4645 Yang Tse (18 Jan 2010)
4646 - fix warnings
4647
4648 - Stop ssl running server when cert file currently used by server is
4649   different than the one specified in test definition for same server
4650
4651 - fix warnings
4652
4653 - - Remove QD restarting of https servers. Proper fixing required.
4654     This will make tests 310 311 and 312 fail while fixing.
4655   
4656   - Remove some debug messages
4657
4658 - make verifyhttp use different file names depending on server characteristics
4659
4660 - add serverfactors() sub which returns server characterization factors
4661
4662 - fix warnings
4663
4664 - fix warnings
4665
4666 - fix warnings
4667
4668 - add some debug messages
4669
4670 - use servername_id() from serverhelp.pm
4671
4672 - refactored stopping of test harness servers
4673
4674 - Store now this file in CVS with unix line endings.
4675   
4676   maketgz already converts this file to DOS style with an awk filter.
4677
4678 - Declaration of $sshdlog is done in sshhelp.pm
4679
4680 - Start using the centralized pidfile and logfile name generation
4681   subroutines for ssh and socks test suite servers.
4682
4683 Dan Fandrich (15 Jan 2010)
4684 - Added the new protocol source files to the non-autoconf build files
4685
4686 Yang Tse (14 Jan 2010)
4687 - Squeeze slack time when killing more than one server from
4688   the <killserver> section of test harness definition files.
4689
4690 Kamil Dudka (14 Jan 2010)
4691 - - Suppressed side effect of OpenSSL configure checks, which prevented NSS from
4692     being properly detected under certain circumstances. It had been caused by
4693     strange behavior of pkg-config when handling PKG_CONFIG_LIBDIR. pkg-config
4694     distinguishes among empty and non-existent environment variable in that case.
4695
4696 Yang Tse (13 Jan 2010)
4697 - Give the test a bit mote time to run so it passes on slow machines
4698
4699 Kamil Dudka (13 Jan 2010)
4700 - remove trailing spaces from configure.ac
4701
4702 Yang Tse (12 Jan 2010)
4703 - Added test case #1112 which does an FTPS download with strict timeout
4704   and slow data transfer in a similar way as test case #1086 does for FTP.
4705   
4706   This also exercises <killserver> section for the FTPS server.
4707
4708 - Make runtests.pl actually support any (valid) server specification
4709   for the <killserver> section of test harness definition files.
4710
4711 - Fix tftp and sftp supported protocols in servername_str()
4712
4713 - Make sockfilter kill messages look alike server ones