ddcd07e6e48abaa9a9b4ba1c3de0347f1007172c
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Version 7.40.0 (7 Jan 2015)
10
11 Daniel Stenberg (7 Jan 2015)
12 - RELEASE-NOTES: version 7.40.0
13
14 - darwinssl: fix session ID keys to only reuse identical sessions
15   
16   ...to avoid a session ID getting cached without certificate checking and
17   then after a subsequent _enabling_ of the check libcurl could still
18   re-use the session done without cert checks.
19   
20   Bug: http://curl.haxx.se/docs/adv_20150108A.html
21   Reported-by: Marc Hesse
22
23 - tests: make sure CRLFs can't be used in URLs passed to proxy
24   
25   Bug: http://curl.haxx.se/docs/adv_20150108B.html
26
27 - url-parsing: reject CRLFs within URLs
28   
29   Bug: http://curl.haxx.se/docs/adv_20150108B.html
30   Reported-by: Andrey Labunets
31
32 Steve Holme (7 Jan 2015)
33 - ldap: Convert attribute output to UTF-8 when Unicode
34
35 - ldap: Convert DN output to UTF-8 when Unicode
36
37 Daniel Stenberg (7 Jan 2015)
38 - hostip: remove 'stale' argument from Curl_fetch_addr proto
39   
40   Also, remove the log output of the resolved name is NOT in the cache in
41   the spirit of only telling when something is actually happening.
42
43 Steve Holme (7 Jan 2015)
44 - ldap/imap: Fixed spelling mistake in comments and variable names
45   
46   Reported-by: Michael Osipov
47
48 Daniel Stenberg (7 Jan 2015)
49 - RELEASE-NOTES: updated with ./contributors.sh output
50
51 Dan Fandrich (5 Jan 2015)
52 - curl_multibyte.h: Eliminated some trailing whitespace
53
54 Steve Holme (4 Jan 2015)
55 - RELEASE-NOTES: Synced with ea93252ef1
56
57 - ldap: Fixed Unicode usage for all Win32 builds
58   
59   Otherwise, the fixes in the previous commits would only be applicable
60   to IDN and SSPI based builds and not others such as OpenSSL with LDAP
61   enabled.
62
63 - ldap: Fixed memory leak from commit efb64fdf80
64
65 - ldap: Fix memory leak from commit 3a805c5cc1
66
67 - ldap: Fixed attribute variable warnings when Unicode is enabled
68   
69   Use 'TCHAR *' for local attribute variable rather than 'char *'.
70
71 - ldap: Fixed DN variable warnings when Unicode is enabled
72   
73   Use 'TCHAR *' for local DN variable rather than 'char *'.
74
75 - ldap: Remove the unescape_elements() function
76   
77   Due to the recent modifications this function is no longer used.
78
79 - ldap.c: Fixed compilation warning
80   
81   ldap.c:98: warning: extra tokens at end of #endif directive
82
83 - ldap: Fixed support for Unicode filter in Win32 search call
84
85 - ldap.c: Fixed compilation warning
86   
87   ldap.c:802: warning: comparison between signed and unsigned integer
88               expressions
89
90 - ldap: Fixed support for Unicode attributes in Win32 search call
91
92 - ldap: Fixed memory leak from commit efb64fdf80
93   
94   The unescapped DN was not freed after a successful character conversion.
95
96 - ldap.c: Fixed compilation error
97   
98   ldap.c:738: error: macro "LDAP_TRACE" passed 2 arguments, but takes
99               just 1
100
101 - ldap.c: Fixed compilation warning
102   
103   ldap.c:89: warning: extra tokens at end of #endif directive
104
105 - ldap: Fixed support for Unicode DN in Win32 search call
106
107 - ldap: Fixed Unicode user and password in Win32 bind calls
108
109 - ldap: Fixed Unicode host name in Win32 initialisation calls
110
111 - ldap: Use host.dispname for infof() connection failure messages
112   
113   As host.name may be encoded use dispname for infof() failure messages.
114
115 - ldap: Prefer 'CURLcode result' for curl result codes
116
117 - ldap: Pass write length in all Curl_client_write() calls
118   
119   As we get the length for the DN and attribute variables, and we know
120   the length for the line terminator, pass the length values rather than
121   zero as this will save Curl_client_write() from having to perform an
122   additional strlen() call.
123
124 - ldap: Fixed attribute memory leaks on failed client write
125   
126   Fixed memory leaks from commit 086ad79970 as was noted in the commit
127   comments.
128
129 - ldap: Fixed DN memory leaks on failed client write
130   
131   Fixed memory leaks from commit 086ad79970 as was noted in the commit
132   comments.
133
134 - curl_ntlm_core.c: Fixed compilation warning from commit 1cb17b2a5d
135   
136   curl_ntlm_core.c:146: warning: passing 'DES_cblock' (aka 'unsigned char
137                         [8]') to parameter of type 'char *' converts
138                         between pointers to integer types with different
139                         sign
140
141 - ntlm: Use extend_key_56_to_64() for all cryptography engines
142   
143   Rather than duplicate the code in setup_des_key() for OpenSSL and in
144   extend_key_56_to_64() for non-OpenSSL based crypto engines, as it is
145   the same, use extend_key_56_to_64() for all engines.
146
147 - RELEASE-NOTES: Synced with 34f0bd110f
148
149 - curl_ntlm_core.c: Fixed compilation warning
150   
151   curl_ntlm_core.c:458: warning: 'ascii_uppercase_to_unicode_le' defined
152                         but not used
153
154 - endian: Fixed bit-shift in 64-bit integer read functions
155   
156   From commit 43792592ca and 4bb5a351b2.
157   
158   Reported-by: Michael Osipov
159
160 - smb: Use endian functions for reading NBT and message size values
161
162 - endian: Added big endian read functions
163
164 - endian: Added 64-bit integer read function
165
166 - COPYING: Bumped copyright year to 2015
167
168 - version: Bump copyright year to 2015
169
170 - smb.c: Fixed compilation warnings
171   
172   smb.c:780: warning: passing 'char *' to parameter of type 'unsigned
173              char *' converts between pointers to integer types with
174              different sign
175   smb.c:781: warning: passing 'char *' to parameter of type 'unsigned
176              char *' converts between pointers to integer types with
177              different sign
178   smb.c:804: warning: passing 'char *' to parameter of type 'unsigned
179              char *' converts between pointers to integer types with
180              different sign
181
182 - smb: Use endian functions for reading length and offset values
183
184 - endian: Added 16-bit integer write function
185
186 - endian: Fixed Linux compilation issues
187   
188   Having files named endian.[c|h] seemed to cause issues under Linux so
189   renamed them both to have the curl_ prefix in the filenames.
190
191 - [Julien Nabet brought this change]
192
193   lib1900.c: Fixed cppcheck error
194   
195   lib1900.c:182: (style) Array index 'handlenum' is used before limits
196                  check
197   
198   Bug: https://github.com/bagder/curl/pull/133
199
200 - endian: Added standard function descriptions
201
202 - endian: Renamed functions for curl API naming convention
203
204 - endian: Moved write functions to new module
205
206 - endian: Moved read functions to new module
207
208 - endian: Introduced endian module
209   
210   To allow the little endian functions, currently used in two of the NTLM
211   source files, to be used by other modules such as the SMB module.
212
213 - sepheaders.c: Applied curl oding standards
214
215 - [Julien Nabet brought this change]
216
217   sepheaders.c: Fixed resource leak on failure
218
219 - vtls: Use '(void) arg' for unused parameters
220   
221   Prefer void for unused parameters, rather than assigning an argument to
222   itself as a) unintelligent compilers won't optimize it out, b) it can't
223   be used for const parameters, c) it will cause compilation warnings for
224   clang with -Wself-assign and d) is inconsistent with other areas of the
225   curl source code.
226
227 - smb.c: Fixed compilation warning
228   
229   smb.c:586: warning: conversion to 'short unsigned int' from 'int' may
230              alter its value
231
232 - [Bill Nagel brought this change]
233
234   smb: Use the connection's upload buffer
235   
236   Use the connection's upload buffer instead of allocating our own send
237   buffer.
238
239 - RELEASE-NOTES: Synced with 1933f9d33c
240
241 - schannel: Moved the ISC return flag definitions to the SSPI module
242   
243   Moved our Initialize Security Context return attribute definitions to
244   the SSPI module, as a) these can be used by other SSPI based providers
245   and b) the ISC required attributes are defined there.
246
247 - [Bill Nagel brought this change]
248
249   smb: Close the connection after a failed client write
250
251 - darwinssl: Fixed compilation warning
252   
253   vtls.c:683:43: warning: unused parameter 'data'
254
255 - sockfilt.c: Fixed compilation warnings
256   
257   sockfilt.c:288: warning: conversion to 'DWORD' from 'size_t' may alter
258                   its value
259   sockfilt.c:291: warning: conversion to 'DWORD' from 'size_t' may alter
260                   its value
261   sockfilt.c:323: warning: conversion to 'DWORD' from 'size_t' may alter
262                   its value
263   sockfilt.c:326: warning: conversion to 'DWORD' from 'size_t' may alter
264                   its value
265
266 - test1509: Fixed compilation warning
267   
268   lib1509.c:93:18: warning: conversion to 'long int' from 'size_t' may
269                    alter its value
270
271 - test556: Fixed compilation warning
272   
273   lib556.c:90: warning: conversion to 'unsigned int' from 'size_t' may
274                alter its value
275
276 - sasl_gssapi: Fixed use of dummy username with real username
277
278 - vtls: Fixed compilation warning and an ignored return code
279   
280   curl_schannel.h:123: warning: right-hand operand of comma expression
281                        has no effect
282   
283   Some instances of the curlssl_close_all() function were declared with a
284   void return type whilst others as int. The schannel version returned
285   CURLE_NOT_BUILT_IN and others simply returned zero, but in all cases the
286   return code was ignored by the calling function Curl_ssl_close_all().
287   
288   For the time being and to keep the internal API consistent, changed all
289   declarations to use a void return type.
290   
291   To reduce code we might want to consider removing the unimplemented
292   versions and use a void #define like schannel does.
293
294 Daniel Stenberg (28 Dec 2014)
295 - TODO: 2.3 Better support for same name resolves
296
297 Steve Holme (28 Dec 2014)
298 - test1520: Fixed initial teething problems
299   
300   * Missing initialisation of upload status caused a seg fault
301   * Missing data termination caused corrupt data to be uploaded
302   * Data verification should be performed in <upload> element
303   * Added missing recipient list cleanup
304
305 - test1520: Fixed compilation errors
306
307 - tests: Added test for bug #1456
308
309 - checksrc.bat: Fixed a problem opening files with spaces in the filename
310
311 - openldap: Prefer use of 'CURLcode result'
312
313 - openldap: Use 'LDAPMessage *msg' for messages
314   
315   This frees up the 'result' variable for CURLcode based result codes.
316
317 - nss: Don't ignore Curl_extract_certinfo() OOM failure
318
319 - nss: Don't ignore Curl_ssl_init_certinfo() OOM failure
320
321 - nss: Use 'CURLcode result' for curl result codes
322   
323   ...and don't use CURLE_OK in failure/success comparisons.
324
325 - getinfo: Code style policing
326
327 - getinfo: Use 'CURLcode result' for curl result codes
328
329 - darwinssl: Use 'CURLcode result' for curl result codes
330
331 - polarssl: Use 'CURLcode result' for curl result codes
332
333 - docs: Updated following the addition of SASL GSSAPI via GSS-API libraries
334   
335   As this feature has been implemented for 7.40.0.
336
337 - asiohiper.cpp: No need to initialise members of ConnInfo
338   
339   ...as calloc() automatically clears the area of memory with zeros.
340
341 - asiohiper.cpp: Updated for curl coding standards
342   
343   ...with the exception of the start of block statement curly brackets.
344
345 - code/docs: Use correct case for IPv4 and IPv6
346   
347   For consistency, as we seem to have a bit of a mixed bag, changed all
348   instances of ipv4 and ipv6 in comments and documentations to use the
349   correct case.
350
351 - runtests: Fixed detection of Unix Sockets feature
352   
353   ...following change in curl --version output.
354
355 - code/docs: Use Unix rather than UNIX to avoid use of the trademark
356   
357   Use Unix when generically writing about Unix based systems as UNIX is
358   the trademark and should only be used in a particular product's name.
359
360 - ip2ip.c: Fixed compilation warning when IPv6 Scope ID not supported
361   
362   if2ip.c:119: warning: unused parameter 'remote_scope_id'
363   
364   ...and some minor code style policing in the same function.
365
366 - vtls: Don't set cert info count until memory allocation is successful
367   
368   Otherwise Curl_ssl_init_certinfo() can fail and set the num_of_certs
369   member variable to the requested count, which could then be used
370   incorrectly as libcurl closes down.
371
372 - vtls: Use CURLcode for Curl_ssl_init_certinfo() return type
373   
374   The return type for this function was 0 on success and 1 on error. This
375   was then examined by the calling functions and, in most cases, used to
376   return CURLE_OUT_OF_MEMORY.
377   
378   Instead use CURLcode for the return type and return the out of memory
379   error directly, propagating it up the call stack.
380
381 - configure: Use camel case for UNIX sockets feature output
382   
383   To match the curl --version output.
384
385 Marc Hoersken (26 Dec 2014)
386 - sockfilt.c: Reduce the number of individual memory allocations
387   
388   Merge multiple internal arrays into one, even if some variables
389   will not not be used. They are all created with the number of
390   file descriptors as their size.
391   
392   Also fix possible thread handle leak in CloseHandle-loop.
393
394 - sockfilt.c: Replace 100ms sleep with thread throttle
395   
396   Improves performance of test cases 574 and 575 by 50%.
397   
398   A value of zero causes the thread to relinquish the remainder
399   of its time slice to any other thread of equal priority that is
400   ready to run. If there are no other threads of equal priority
401   ready to run, the function returns immediately, and the thread
402   continues execution.
403   
404   http://msdn.microsoft.com/library/windows/desktop/ms686307.aspx
405
406 Steve Holme (25 Dec 2014)
407 - tool_help: Use camel case for UNIX sockets feature output
408   
409   In line with the other features listed in the --version output,
410   capitalise the UNIX socket feature.
411
412 - vtls: Use bool for Curl_ssl_getsessionid() return type
413   
414   The return type of this function is a boolean value, and even uses a
415   bool internally, so use bool in the function declaration as well as
416   the variables that store the return value, to avoid any confusion.
417
418 - schannel: Minor code style policing for casts
419
420 - schannel: Prefer 'CURLcode result' for curl result codes
421
422 - cyassl: Prefer 'CURLcode result' for curl result codes
423
424 - tool_xattr: Use 'CURLcode result' for curl result codes
425
426 - curl_ntlm_core.c: Fixed compilation warnings
427   
428   curl_ntlm_core.c:301: warning: pointer targets in passing argument 2 of
429                         'CryptImportKey' differ in signedness
430   curl_ntlm_core.c:310: warning: passing argument 6 of 'CryptEncrypt' from
431                         incompatible pointer type
432   curl_ntlm_core.c:540: warning: passing argument 4 of 'CryptGetHashParam'
433                         from incompatible pointer type
434
435 - RELEASE-NOTES: Synced with 8830df8b66
436
437 - gtls: Use preferred 'CURLcode result'
438
439 - openldap: Use standard naming for setup connection function
440   
441   Renamed ldap_setup() to ldap_setup_connection() to follow more widely
442   used function naming.
443
444 - rtmp: Use standard naming for setup connection function
445   
446   Renamed rtmp_setup() to rtmp_setup_connection() to follow more widely
447   used function naming.
448
449 - smb: Use standard naming for setup connection function
450   
451   Renamed smb_setup() to smb_setup_connection() to follow more widely
452   used function naming.
453
454 - config-win32.h: Fixed line length > 79 columns
455
456 - openssl: Prefer we don't use NULL in comparisons
457
458 - build: Removed WIN32 definition from the Visual Studio projects
459   
460   As this pre-processor definition is defined in curl_setup.h there is no
461   need to include it in the Visual Studio project files.
462
463 - build: Removed WIN64 definition from the libcurl Visual Studio projects
464   
465   Removed the WIN64 pre-processor definition from the libcurl project
466   files as:
467   
468   * WIN64 is not used in our source code
469   * The curl projects files don't define it
470   * It isn't required by or used in the platform SDK
471   * For backwards compatability curl_setup.h defines WIN32
472   * The compiler automatically defines _WIN64 for x64 builds
473   
474   Historically Visual Studio projects have defined WIN32, in addition to
475   the compiler defined _WIN32 definition, and I had incorrectly changed
476   that to WIN64 for the x64 libcurl builds but not in the curl projects.
477   
478   As such, it is questionable whether this should be defined or not. For
479   more information see the following cache of a discussion that took
480   place on the microsoft.public.vc.mfc newsgroup:
481   
482   http://www.tech-archive.net/Archive/VC/microsoft.public.vc.mfc/2008-06/msg00074.html
483
484 - openssl.c Fix for compilation errors with older versions of OpenSSL
485   
486   openssl.c:1408: error: 'TLS1_1_VERSION' undeclared
487   openssl.c:1411: error: 'TLS1_2_VERSION' undeclared
488
489 Daniel Stenberg (22 Dec 2014)
490 - [John Malmberg brought this change]
491
492   Fix comment edit in vms/backup_gnv_curl_src.com
493   
494   packages/vms/backup_gnv_curl_src.com: Originally copied from Bash port.
495
496 - curl: show size of inhibited data when using -v
497   
498   To offer some more info and yet it doesn't use more lines.
499
500 - openssl: fix SSL/TLS versions in verbose output
501
502 - openssl: make it compile against openssl 1.1.0-DEV master branch
503
504 Marc Hoersken (22 Dec 2014)
505 - sshserver.pl: clarify and streamline variable names
506
507 Daniel Stenberg (21 Dec 2014)
508 - openssl: warn for SRP set if SSLv3 is used, not for TLS version
509   
510   ... as it requires TLS and it was was left to warn on the default from
511   when default was SSL...
512
513 - smb: use memcpy() instead of strncpy()
514   
515   ... as it never copies the trailing zero anyway and always just the four
516   bytes so let's not mislead anyone into thinking it is actually treated
517   as a string.
518   
519   Coverity CID: 1260214
520
521 - [John E. Malmberg brought this change]
522
523   VMS: Updates for 0740-0D1220
524   
525   lib/setup-vms.h : VAX HP OpenSSL port is ancient, needs help.
526                     More defines to set symbols to uppercase.
527   
528   src/tool_main.c : Fix parameter to vms_special_exit() call.
529   
530   packages/vms/ :
531     backup_gnv_curl_src.com : Fix the error message to have the correct package.
532   
533     build_curl-config_script.com : Rewrite to be more accurate.
534   
535     build_libcurl_pc.com : Use tool_version.h now.
536   
537     build_vms.com : Fix to handle lib/vtls directory.
538   
539     curl_gnv_build_steps.txt : Updated build procedure documentation.
540   
541     generate_config_vms_h_curl.com :
542          * VAX does not support 64 bit ints, so no NTLM support for now.
543          * VAX HP SSL port is ancient, needs some help.
544          * Disable NGHTTP2 for now, not ported to VMS.
545          * Disable UNIX_SOCKETS, not available on VMS yet.
546          * HP GSSAPI port does not have gss_nt_service_name.
547   
548     gnv_link_curl.com : Update for new curl structure.
549   
550     pcsi_product_gnv_curl.com : Set up to optionally do a complete build.
551
552 Marc Hoersken (21 Dec 2014)
553 - sockfilt.c: use non-Ex functions that are available before WinXP
554   
555   It was initially reported by Guenter that GetFileSizeEx
556   requires (_WIN32_WINNT >= 0x0500) to be true.
557
558 - tests: use Cygwin-style paths in SSH, SSHD and SFTP config files
559   
560   Second patch to enable Windows support using Cygwin-based OpenSSH.
561   
562   Tested with CopSSH 5.0.0 free edition using an msys shell on Windows 7.
563
564 - tests: support spaces in paths to SSH, SSHD and SFTP binaries
565   
566   First patch to enable Windows support using Cygwin-based OpenSSH.
567
568 Steve Holme (20 Dec 2014)
569 - non-ascii: Reduce variable usage
570   
571   Removed 'next' variable in Curl_convert_form(). Rather than setting it
572   from 'form->next' and using that to set 'form' after the conversion
573   just use 'form = form->next' instead.
574
575 - non-ascii: Prefer while loop rather than a do loop
576   
577   This also removes the need to check that the 'form' argument is valid.
578
579 - non-ascii: Reduce variable scope
580   
581   As 'result' isn't used out side the conversion callback code and
582   previously caused variable shadowing in the libiconv based code.
583
584 - non-ascii: We prefer 'CURLcode result'
585   
586   This also fixes a variable shadowing issue when HAVE_ICONV is defined
587   as rc was declared for the result code of libiconv based functions.
588
589 Marc Hoersken (19 Dec 2014)
590 - secureserver.pl: clean up formatting of config and fix verbose output
591   
592   Verbose output was not matching the actual configuration file,
593   because FIPS and Windows conditions were ignored.
594
595 - secureserver.pl: update Windows detection and fix path conversion
596
597 - secureserver.pl: make OpenSSL CApath and cert absolute path values
598   
599   Recent stunnel versions (5.08) seem to have trouble with relative
600   paths on Windows. This turns the relative paths into absolute ones.
601
602 Patrick Monnerat (18 Dec 2014)
603 - if2ip: dummy scope parameter for Curl_if2ip() call in SIOCGIFADDR-enabled code.
604
605 - [Kyle J. McKay brought this change]
606
607   parseurlandfillconn(): fix improper non-numeric scope_id stripping.
608   Fixes SF bug 1149: http://sourceforge.net/p/curl/bugs/1449/
609
610 - IPV6: address scope != scope id
611   There was a confusion between these: this commit tries to disambiguate them.
612   - Scope can be computed from the address itself.
613   - Scope id is scope dependent: it is currently defined as 1-based local
614     interface index for link-local scoped addresses, and as a site index(?) for
615     (obsolete) site-local addresses. Linux only supports it for link-local
616     addresses.
617   The URL parser properly parses a scope id as an interface index, but stores it
618   in a field named "scope": confusion. The field has been renamed into "scope_id".
619   Curl_if2ip() used the scope id as it was a scope. This caused failures
620   to bind to an interface.
621   Scope is now computed from the addresses and Curl_if2ip() matches them.
622   If redundantly specified in the URL, scope id is check for mismatch with
623   the interface index.
624   
625   This commit should fix SF bug #1451.
626
627 - connect: singleipconnect(): properly try other address families after failure
628
629 Daniel Stenberg (16 Dec 2014)
630 - SFTP: work-around servers that return zero size on STAT
631   
632   Bug: http://curl.haxx.se/mail/lib-2014-12/0103.html
633   Pathed-by: Marc Renault
634
635 - glob_next_url: make the loop count upwards
636   
637   As the former contruct apparently caused a compiler warning, mentioned
638   in d8efde07e556c.
639
640 - tool_operate: we prefer 'CURLcode result'
641
642 - tool_urlglob: unify return codes to use CURLcode
643   
644   There was a mix of GlobCode, CURLcode and ints and they were mostly
645   passing around CURLcode errors. This change makes the functions use only
646   CURLcode and removes the GlobCode type completely.
647
648 - tool_urlglob.c: partly reverse dc19789444
649   
650   The loop in glob_next_url() needs to be done backwards to maintain the
651   logic. dc19789444 caused test 1235 to fail.
652
653 - KNOWN_BUGS: the SFTP code doesn't support CURLINFO_FILETIME
654
655 - [Jay Satiro brought this change]
656
657   opts: Warn CURLOPT_TIMEOUT overrides when set after CURLOPT_TIMEOUT_MS
658   
659   Change CURLOPT_TIMEOUT doc to warn that if CURLOPT_TIMEOUT and
660   CURLOPT_TIMEOUT_MS are both set whichever one is set last is the one
661   that will be used.
662   
663   Prior to this change that behavior was only noted in the
664   CURLOPT_TIMEOUT_MS doc.
665
666 Nick Zitzmann (15 Dec 2014)
667 - darwinssl: fix incorrect usage of aprintf()
668   
669   Commit b13923f changed an snprintf() to use aprintf(), but the API usage
670   wasn't correct, and was causing a crash to occur. This fixes it.
671
672 Steve Holme (14 Dec 2014)
673 - copyright: Updated the copyright year following recent updates
674
675 Daniel Stenberg (14 Dec 2014)
676 - tool_urlglob.c: reverse two loops
677   
678   By counting from 0 and up instead of backwards like before, we remove
679   the need for the "funny" check of the unsigned variable when decreased
680   passed zero. Easier to read and less risk for compiler warnings.
681
682 Marc Hoersken (14 Dec 2014)
683 - tool_urlglob.c: Added braces to clarify the conditions
684
685 - tool_urlglob.c: Silence warning C6293: Ill-defined for-loop
686   
687   The >= 0 is actually not required, since i underflows and
688   the for-loop is stopped using the < condition, but this
689   makes the VS2012 compiler and code analysis happy.
690
691 - tool_binmode.c: Explicitly ignore the return code of setmode
692   
693   Fixes code analysis warning C6031:
694   return value ignored: <function> could return unexpected value
695
696 - lib: Fixed multiple code analysis warnings if SAL are available
697   
698   warning C28252: Inconsistent annotation for function:
699   parameter has another annotation on this instance
700
701 Steve Holme (14 Dec 2014)
702 - smb.c: Fixed code analysis warning
703   
704   smb.c:320: warning C6297: Arithmetic overflow: 32-bit value is shifted,
705              then cast to 64-bit value. Result may not be an expected
706              value
707
708 Marc Hoersken (14 Dec 2014)
709 - tool_util.c: Use GetTickCount64 if it is available
710
711 Steve Holme (14 Dec 2014)
712 - smb: Use HAVE_PROCESS_H for process.h inclusion
713   
714   Rather than testing against _WIN32 use the preferred HAVE_PROCESS_H
715   pre-processor define when including process.h.
716
717 Daniel Stenberg (14 Dec 2014)
718 - darwinssl: aprintf() to allocate the session key
719   
720   ... to avoid using a fixed memory size that risks being too large or too
721   small.
722
723 Marc Hoersken (14 Dec 2014)
724 - curl_schannel: Improvements to memory re-allocation strategy
725   
726   - do not grow memory by doubling its size
727   - do not leak previously allocated memory if reallocation fails
728   - replace while-loop with a single check to make sure
729     that the requested amount of data fits into the buffer
730   
731   Bug: http://curl.haxx.se/bug/view.cgi?id=1450
732   Reported-by: Warren Menzer
733
734 Steve Holme (14 Dec 2014)
735 - asyn-ares: We prefer use of 'CURLcode result'
736
737 Marc Hoersken (14 Dec 2014)
738 - curl_schannel.c: Data may be available before connection shutdown
739
740 Steve Holme (14 Dec 2014)
741 - http2: Use 'CURLcode result' for curl result codes
742
743 - asyn-thread:  We prefer 'CURLcode result'
744
745 - smb: Fixed unnecessary initialisation of struct member variables
746   
747   There is no need to set the 'state' and 'result' member variables to
748   SMB_REQUESTING (0) and CURLE_OK (0) after the allocation via calloc()
749   as calloc() initialises the contents to zero.
750
751 - ntlm: Fixed return code for bad type-2 Target Info
752   
753   Use CURLE_BAD_CONTENT_ENCODING for bad type-2 Target Info security
754   buffers just like we do for bad decodes.
755
756 - ntlm: Remove unnecessary casts in readshort_le()
757   
758   I don't think both of my fix ups from yesterday were needed to fix the
759   compilation warning, so remove the one that I think is unnecessary and
760   let the next Android autobuild prove/disprove it.
761
762 - curl_ntlm_msgs.c: Another attempt to fix compilation warning
763   
764   curl_ntlm_msgs.c:170: warning: conversion to 'short unsigned int' from
765                         'int' may alter its value
766
767 Guenter Knauf (13 Dec 2014)
768 - synctime.c: added own user-agent string.
769
770 Steve Holme (13 Dec 2014)
771 - smb.c: Fixed line longer than 79 columns
772
773 - curl_ntlm_msgs.c: Fixed compilation warning from commit 783b5c3b11
774   
775   curl_ntlm_msgs.c:169: warning: conversion to 'short unsigned int' from
776                         'int' may alter its value
777
778 Guenter Knauf (13 Dec 2014)
779 - mk-ca-bundle.pl: restored forced run again.
780
781 - synctime.c: removed another timeserver URL.
782   
783   worldtimeserver.com seems also no longer available.
784
785 - synctime.c: fixed timeserver URLs.
786   
787   For getting the date header its not necessary to access special
788   pages or even CGI scripts - all pages including the main index
789   reply with the date header, therefore shortened URLs to domain.
790   Removed worldtime.com; added pool.ntp.org.
791
792 Steve Holme (13 Dec 2014)
793 - ftp.c: Fixed compilation warning when no verbose string support
794   
795   ftp.c:819: warning: unused parameter 'lineno'
796
797 - smb: Added state change functions to assist with debugging
798   
799   For debugging purposes, and as per other protocols within curl, added
800   state change functions rather than changing the states directly.
801
802 - ntlm: Use short integer when decoding 16-bit values
803
804 - RELEASE-NOTES: Synced with 6291a16b20
805
806 - smtp.c: Fixed compilation warnings
807   
808   smtp.c:2357 warning: adding 'size_t' (aka 'unsigned long') to a string
809               does not append to the string
810   smtp.c:2375 warning: adding 'size_t' (aka 'unsigned long') to a string
811               does not append to the string
812   smtp.c:2386 warning: adding 'size_t' (aka 'unsigned long') to a string
813               does not append to the string
814   
815   Used array index notation instead.
816
817 - smb: Disable SMB when 64-bit integers are not supported
818   
819   This fixes compilation issues with compilers that don't support 64-bit
820   integers through long long or __int64.
821
822 - ntlm: Disable NTLM v2 when 64-bit integers are not supported
823   
824   This fixes compilation issues with compilers that don't support 64-bit
825   integers through long long or __int64 which was introduced in commit
826   07b66cbfa4.
827
828 - ntlm: Allow NTLM2Session messages when USE_NTRESPONSES manually defined
829   
830   Previously USE_NTLM2SESSION would only be defined automatically when
831   USE_NTRESPONSES wasn't already defined. Separated the two definitions
832   so that the user can manually set USE_NTRESPONSES themselves but
833   USE_NTLM2SESSION is defined automatically if they don't define it.
834
835 - smtp.c: Fixed line longer than 79 columns
836
837 - config-win32.h: Don't enable Windows Crypt API if using OpenSSL
838   
839   As the OpenSSL and NSS Crypto engines are prefered by the core NTLM
840   routines, to the Windows Crypt API, don't define USE_WIN32_CRYPT
841   automatically when either OpenSSL or NSS are in use - doing so would
842   disable NTLM2Session responses in NTLM type-3 messages.
843
844 - smtp: Fixed inappropriate free of the scratch buffer
845   
846   If the scratch buffer was allocated in a previous call to
847   Curl_smtp_escape_eob(), a new buffer not allocated in the subsequent
848   call and no action taken by that call, then an attempt would be made to
849   try and free the buffer which, by now, would be part of the data->state
850   structure.
851   
852   This bug was introduced in commit 4bd860a001.
853
854 - smtp: Fixed dot stuffing when EOL characters were at end of input buffers
855   
856   Fixed a problem with the CRLF. detection when multiple buffers were
857   used to upload an email to libcurl and the line ending character(s)
858   appeared at the end of each buffer. This meant any lines which started
859   with . would not be escaped into .. and could be interpreted as the end
860   of transmission string instead.
861   
862   This only affected libcurl based applications that used a read function
863   and wasn't reproducible with the curl command-line tool.
864   
865   Bug: http://curl.haxx.se/bug/view.cgi?id=1456
866   Assisted-by: Patrick Monnerat
867
868 Daniel Stenberg (11 Dec 2014)
869 - telnet: fix "cast increases required alignment of target type"
870
871 - ntlm_wb_response: fix "statement not reached"
872   
873   ... and I could use a break instead of a goto to end the loop.
874   
875   Bug: http://curl.haxx.se/mail/lib-2014-12/0089.html
876   Reported-by: Tor Arntsen
877
878 Steve Holme (10 Dec 2014)
879 - RELEASE-NOTES: Synced with 1cc5194337
880   
881   Added some bug fixes that I had missed in previous synchronisations.
882
883 Daniel Stenberg (10 Dec 2014)
884 - Curl_unix2addr: avoid using the variable name 'sun'
885   
886   I suspect this causes compile failures on Solaris:
887   
888   Bug: http://curl.haxx.se/mail/lib-2014-12/0081.html
889
890 Steve Holme (10 Dec 2014)
891 - url.c: Fixed compilation warning when USE_NTLM is not defined
892   
893   url.c:3078: warning: variable 'credentialsMatch' set but not used
894
895 - parsedate.c: Fixed compilation warning
896   
897   parsedate.c:548: warning: 'parsed' may be used uninitialized in this
898                    function
899   
900   As curl_getdate() returns -1 when parsedate() fails we can initialise
901   parsed to -1.
902
903 Daniel Stenberg (10 Dec 2014)
904 - TODO: Cache negative name resolves
905   
906   Worth exploring
907
908 - ldap: check Curl_client_write() return codes
909   
910   There might be one or two memory leaks left in the error paths.
911
912 - ldap: rename variables to comply to curl standards
913
914 Dan Fandrich (10 Dec 2014)
915 - sws.c: Fixed 'rc' may be used uninitialized warning
916
917 - cookies: Improved OOM handling in cookies
918   
919   This fixes the test 506 torture test. The internal cookie API really
920   ought to be improved to separate cookie parsing errors (which may be
921   ignored) with OOM errors (which should be fatal).
922
923 Guenter Knauf (9 Dec 2014)
924 - synctime.c: fixed user-agent setting.
925   
926   Some websites meanwhile refuse to reply to requests from ancient
927   browsers like IE6, therefore I've comment out this setting, but
928   also fixed the string to now fake IE8 if someone enables it.
929
930 Daniel Stenberg (9 Dec 2014)
931 - smb: fix unused return code warning
932
933 Patrick Monnerat (9 Dec 2014)
934 - Curl_client_write() & al.: chop long data, convert data only once.
935
936 Guenter Knauf (9 Dec 2014)
937 - VC build: added sspi define for winssl-zlib builds.
938
939 Daniel Stenberg (9 Dec 2014)
940 - schannel_recv: return the correct code
941   
942   Bug: http://curl.haxx.se/bug/view.cgi?id=1462
943   Reported-by: Tae Hyoung Ahn
944
945 - http2: avoid logging neg "failure" if h2 was not requested
946
947 - openldap: do not ignore Curl_client_write() return codes
948
949 - compile: warn on unused return code from Curl_client_write()
950
951 Patrick Monnerat (8 Dec 2014)
952 - SMB: Fix a data size mismatch that broke SMB on big-endian platforms
953
954 Steve Holme (7 Dec 2014)
955 - smb: Fixed Windows autoconf builds following commit eb88d778e7
956   
957   As Windows based autoconf builds don't yet define USE_WIN32_CRYPTO
958   either explicitly through --enable-win32-cypto or automatically on
959   _WIN32 based platforms, subsequent builds broke with the following
960   error message:
961   
962   "Can't compile NTLM support without a crypto library."
963
964 - RELEASE-NOTES: Synced with 526603ff05
965
966 - [Bill Nagel brought this change]
967
968   smb: Build with SSPI enabled
969   
970   Build SMB/CIFS protocol support when SSPI is enabled.
971
972 - [Bill Nagel brought this change]
973
974   ntlm: Use Windows Crypt API
975   
976   Allow the use of the Windows Crypt API for NTLMv1 functions.
977
978 Dan Fandrich (7 Dec 2014)
979 - cookie.c: Refactored cleanup code to simplify
980   
981   Also, fixed the outdated comments on the cookie API.
982
983 - get_url_file_name: Fixed crash on OOM on debug build
984   
985   This caused a null-pointer dereference which caused a few dozen
986   torture tests to fail.
987
988 Steve Holme (6 Dec 2014)
989 - sws.c: Fixed compilation warning
990   
991   sws.c:2191 warning: 'rc' may be used uninitialized in this function
992
993 - ftp.c: Fixed compilation warnings when proxy support disabled
994   
995   ftp.c:1827 warning: unused parameter 'newhost'
996   ftp.c:1827 warning: unused parameter 'newport'
997
998 - smb: Fixed a problem with large file transfers
999   
1000   Fixed an issue with the message size calculation where the raw bytes
1001   from the buffer were interpreted as signed values rather than unsigned
1002   values.
1003   
1004   Reported-by: Gisle Vanem
1005   Assisted-by: Bill Nagel
1006
1007 - smb: Moved the URL decoding into a separate function
1008
1009 - smb: Fixed URL encoded URLs not working
1010
1011 - Makefile.inc: Added our standard header and updated file formatting
1012
1013 - Makefile.inc: Updated file formatting
1014   
1015   Aligned continuation character and used space as the separator
1016   character as per other makefile files.
1017
1018 - curl_md4.h: Updated copyright year following recent edit
1019   
1020   ...and minor layout adjustment.
1021
1022 Patrick Monnerat (5 Dec 2014)
1023 - SMB: Fix big endian problems. Make it OS/400 aware.
1024
1025 - OS400: enable NTLM authentication
1026
1027 Steve Holme (5 Dec 2014)
1028 - multi.c: Fixed compilation warning
1029   
1030   multi.c:2695: warning: declaration of `exp' shadows a global declaration
1031
1032 Guenter Knauf (5 Dec 2014)
1033 - build: updated dependencies in makefiles.
1034
1035 Steve Holme (5 Dec 2014)
1036 - sasl: Corrected formatting of function descriptions
1037
1038 - sasl_gssapi: Added missing function description
1039
1040 - RELEASE-NOTES: Provided better descriptions
1041   
1042   As it is often difficult to choose the best description for a single
1043   feature when it spans many commits, updated the descriptions for the
1044   recent SMB/CIFS protocol and GSS-API additions.
1045
1046 - sasl_sspi: Corrected some typos
1047
1048 - sasl_sspi: Don't use hard coded sizes in Kerberos V5 security data
1049   
1050   Don't use a hard coded size of 4 for the security layer and buffer size
1051   in Curl_sasl_create_gssapi_security_message(), instead, use sizeof() as
1052   we have done in the sasl_gssapi module.
1053
1054 - sasl_sspi: Free the Kerberos V5 challenge as soon as we're done with it
1055   
1056   Reduced the amount of free's required for the decoded challenge message
1057   in Curl_sasl_create_gssapi_security_message() as a result of coding it
1058   differently in the sasl_gssapi module.
1059
1060 - gssapi: Corrected typo in comments
1061
1062 - sasl_gssapi: Added body to Curl_sasl_create_gssapi_security_message()
1063
1064 Daniel Stenberg (4 Dec 2014)
1065 - [Stefan Bühler brought this change]
1066
1067   http_perhapsrewind: don't abort CONNECT requests
1068   
1069   ...they never have a body
1070
1071 - [Stefan Bühler brought this change]
1072
1073   HTTP: Free (proxy)userpwd for NTLM/Negotiate after sending a request
1074   
1075   Sending NTLM/Negotiate header again after successful authentication
1076   breaks the connection with certain Proxies and request types (POST to MS
1077   Forefront).
1078
1079 - [Stefan Bühler brought this change]
1080
1081   HTTP: don't abort connections with pending Negotiate authentication
1082   
1083   ... similarly to how NTLM works as Negotiate is in fact often NTLM with
1084   another name.
1085
1086 - [Stefan Bühler brought this change]
1087
1088   fix gdb libtool invocation path
1089
1090 Steve Holme (4 Dec 2014)
1091 - sasl_gssapi: Fixed missing include from commit d3cca934ee
1092
1093 Daniel Stenberg (4 Dec 2014)
1094 - [Jay Satiro brought this change]
1095
1096   examples: remove sony.com from 10-at-a-time
1097   
1098   Prior to this change the 10-at-a-time example showed CURLE_RECV_ERROR
1099   for the sony website because it ends the connection when the request is
1100   missing a user agent.
1101
1102 Steve Holme (4 Dec 2014)
1103 - sasl_gssapi: Fixed missing decoding debug failure message
1104
1105 - sasl_gssapi: Fixed honouring of no mutual authentication
1106
1107 - sasl_sspi: Added more Kerberos V5 decoding debug failure messages
1108
1109 Daniel Stenberg (4 Dec 2014)
1110 - [Anthon Pang brought this change]
1111
1112   docs: Fix FAILONERROR typos
1113   
1114   It returns error for >= 400 HTTP responses.
1115   
1116   Bug: https://github.com/bagder/curl/pull/129
1117
1118 - [Peter Wu brought this change]
1119
1120   tool: fix CURLOPT_UNIX_SOCKET_PATH in --libcurl output
1121   
1122   Mark CURLOPT_UNIX_SOCKET_PATH as string to ensure that it ends up as
1123   option in the file generated by --libcurl.
1124   
1125   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1126
1127 - [Peter Wu brought this change]
1128
1129   opts: fix CURLOPT_UNIX_SOCKET_PATH formatting
1130   
1131   Add .nf and .fi such that the code gets wrapped in a pre on the web.
1132   Fixed grammar, fixed formatting of the "See also" items.
1133   
1134   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1135
1136 Patrick Monnerat (4 Dec 2014)
1137 - OS400: enable Unix sockets.
1138
1139 Daniel Stenberg (3 Dec 2014)
1140 - RELEASE-NOTES: synced with b216427e73b5e9
1141
1142 - opts: added CURLOPT_UNIX_SOCKET_PATH to Makefile.am
1143
1144 - updateconninfo: clear destination struct before getsockname()
1145   
1146   Otherwise we may read uninitialized bytes later in the unix-domain
1147   sockets case.
1148
1149 - curl.1: added --unix-socket
1150
1151 - [Peter Wu brought this change]
1152
1153   tool: add --unix-socket option
1154   
1155   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1156
1157 - [Peter Wu brought this change]
1158
1159   libcurl: add UNIX domain sockets support
1160   
1161   The ability to do HTTP requests over a UNIX domain socket has been
1162   requested before, in Apr 2008 [0][1] and Sep 2010 [2]. While a
1163   discussion happened, no patch seems to get through. I decided to give it
1164   a go since I need to test a nginx HTTP server which listens on a UNIX
1165   domain socket.
1166   
1167   One patch [3] seems to make it possible to use the
1168   CURLOPT_OPENSOCKETFUNCTION function to gain a UNIX domain socket.
1169   Another person wrote a Go program which can do HTTP over a UNIX socket
1170   for Docker[4] which uses a special URL scheme (though the name contains
1171   cURL, it has no relation to the cURL library).
1172   
1173   This patch considers support for UNIX domain sockets at the same level
1174   as HTTP proxies / IPv6, it acts as an intermediate socket provider and
1175   not as a separate protocol. Since this feature affects network
1176   operations, a new feature flag was added ("unix-sockets") with a
1177   corresponding CURL_VERSION_UNIX_SOCKETS macro.
1178   
1179   A new CURLOPT_UNIX_SOCKET_PATH option is added and documented. This
1180   option enables UNIX domain sockets support for all requests on the
1181   handle (replacing IP sockets and skipping proxies).
1182   
1183   A new configure option (--enable-unix-sockets) and CMake option
1184   (ENABLE_UNIX_SOCKETS) can disable this optional feature. Note that I
1185   deliberately did not mark this feature as advanced, this is a
1186   feature/component that should easily be available.
1187   
1188    [0]: http://curl.haxx.se/mail/lib-2008-04/0279.html
1189    [1]: http://daniel.haxx.se/blog/2008/04/14/http-over-unix-domain-sockets/
1190    [2]: http://sourceforge.net/p/curl/feature-requests/53/
1191    [3]: http://curl.haxx.se/mail/lib-2008-04/0361.html
1192    [4]: https://github.com/Soulou/curl-unix-socket
1193   
1194   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1195
1196 - [Peter Wu brought this change]
1197
1198   tests: add two HTTP over UNIX socket tests
1199   
1200   test1435: a simple test that checks whether a HTTP request can be
1201   performed over the UNIX socket. The hostname/port are interpreted
1202   by sws and should be ignored by cURL.
1203   
1204   test1436: test for the ability to do two requests to the same host,
1205   interleaved with one to a different hostname.
1206   
1207   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1208
1209 - [Peter Wu brought this change]
1210
1211   tests: add HTTP UNIX socket server testing support
1212   
1213   The variable `$ipvnum` can now contain "unix" besides the integers 4
1214   and 6 since the variable. Functions which receive this parameter
1215   have their `$port` parameter renamed to `$port_or_path` to support a
1216   path to the UNIX domain socket (as a "port" is only meaningful for TCP).
1217   
1218   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1219
1220 - [Peter Wu brought this change]
1221
1222   sws: try to remove socket and retry bind
1223   
1224   If sws is killed it might leave a stale socket file on the filesystem
1225   which would cause an EADDRINUSE error. After this patch, it is checked
1226   whether the socket is really stale and if so, the socket file gets
1227   removed and another bind is executed.
1228   
1229   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1230
1231 - [Peter Wu brought this change]
1232
1233   sws: add UNIX domain socket support
1234   
1235   This extends sws with a --unix-socket option which causes the port to
1236   be ignored (as the server now listens on the path specified by
1237   --unix-socket). This feature will be available in the following patch
1238   that enables checking for UNIX domain socket support.
1239   
1240   Proxy support (CONNECT) is not considered nor tested. It does not make
1241   sense anyway, first connecting through a TCP proxy, then let that TCP
1242   proxy connect to a UNIX socket.
1243   
1244   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1245
1246 - [Peter Wu brought this change]
1247
1248   sws: restrict TCP_NODELAY to IP sockets
1249   
1250   TCP_NODELAY does not make sense for Unix sockets, so enable it only if
1251   the socket is using IP.
1252   
1253   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1254
1255 Dan Fandrich (3 Dec 2014)
1256 - [Dave Reisner brought this change]
1257
1258   curl.1: fix trivial typo
1259
1260 Steve Holme (3 Dec 2014)
1261 - sasl_gssapi: Added body to Curl_sasl_create_gssapi_user_message()
1262
1263 - sasl_gssapi: Added body to Curl_sasl_gssapi_cleanup()
1264
1265 - sasl_gssapi: Added Curl_sasl_build_gssapi_spn() function
1266   
1267   Added helper function for returning a GSS-API compatible SPN.
1268
1269 Daniel Stenberg (3 Dec 2014)
1270 - NSS: enable the CAPATH option
1271   
1272   Bug: http://curl.haxx.se/bug/view.cgi?id=1457
1273   Patch-by: Tomasz Kojm
1274
1275 Steve Holme (3 Dec 2014)
1276 - sasl_gssapi: Enable USE_KERBEROS5 for GSS-API based builds
1277
1278 - sasl_gssapi: Added GSS-API based Kerberos V5 variables
1279
1280 - sws.c: Fixed compilation warning when IPv6 is disabled
1281   
1282   sws.c:69: warning: comma at end of enumerator list
1283
1284 - sasl_gssapi: Made log_gss_error() a common GSS-API function
1285   
1286   Made log_gss_error() a common function so that it can be used in both
1287   the http_negotiate code as well as the curl_sasl_gssapi code.
1288
1289 - sasl_gssapi: Introduced GSS-API based SASL module
1290   
1291   Added the initial version of curl_sasl_gssapi.c and updated the project
1292   files in preparation for adding GSS-API based Kerberos V5 support.
1293
1294 - smb: Don't try to connect with empty credentials
1295   
1296   On some platforms curl would crash if no credentials were used. As such
1297   added detection of such a use case to prevent this from happening.
1298   
1299   Reported-by: Gisle Vanem
1300
1301 - smb.c: Coding policing of pointer usage
1302
1303 - configure: Fixed inclusion of SMB when no crypto engines available
1304
1305 Guenter Knauf (1 Dec 2014)
1306 - build: in Makefile.m32 simplified autodetection.
1307
1308 Daniel Stenberg (30 Nov 2014)
1309 - [Peter Wu brought this change]
1310
1311   sws: move away from IPv4/IPv4-only assumption
1312   
1313   Instead of depending the socket domain type on use_ipv6, specify the
1314   domain type (AF_INET / AF_INET6) as variable. An enum is used here with
1315   switch to avoid compiler warnings in connect_to, complaining that rc
1316   is possibly undefined (which is not possible as socket_domain is
1317   always set).
1318   
1319   Besides abstracting the socket type, make the debugging messages be
1320   independent on IP (introduce location_str which points to "port XXXXX").
1321   Rename "ipv_inuse" to "socket_type" and tighten the scope (main).
1322   
1323   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1324
1325 - [Peter Wu brought this change]
1326
1327   lib/connect: restrict IP/TCP options to said sockets
1328   
1329   This patch prepares for adding UNIX domain sockets support.
1330   
1331   TCP_NODELAY and TCP_KEEPALIVE are specific to TCP/IP sockets, so do not
1332   apply these to other socket types. bindlocal only works for IP sockets
1333   (independent of TCP/UDP), so filter that out too for other types.
1334   
1335   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1336
1337 - smb.c: use size_t as input argument types for msg sizes
1338   
1339   This fixes warnings about conversions to int
1340
1341 Steve Holme (30 Nov 2014)
1342 - version: The next release will become 7.40.0
1343
1344 - [Bill Nagel brought this change]
1345
1346   docs: Updated for the SMB protocol
1347   
1348   This patch updates the documentation for the SMB/CIFS protocol.
1349
1350 - curl tool: Exclude SMB from the protocol redirect
1351   
1352   As local files could be accessed through \\localhost\c$.
1353
1354 - [Bill Nagel brought this change]
1355
1356   curl tool: Enable support for the SMB protocol
1357   
1358   This patch enables SMB/CIFS support in the curl command-line tool.
1359
1360 - smb.c: Fixed compilation warnings
1361   
1362   smb.c:398: warning: comparison of integers of different signs:
1363              'ssize_t' (aka 'long') and 'unsigned long'
1364   smb.c:443: warning: comparison of integers of different signs:
1365              'ssize_t' (aka 'long') and 'unsigned long'
1366
1367 - libcurl: Exclude SMB from the protocol redirect
1368   
1369   As local files could be accessed through \\localhost\c$.
1370
1371 - [Bill Nagel brought this change]
1372
1373   libcurl: Enable support for the SMB protocol
1374   
1375   This patch enables SMB/CIFS support in libcurl.
1376
1377 - smb.c: Fixed compilation warnings
1378   
1379   smb.c:322: warning: conversion to 'short unsigned int' from 'unsigned
1380              int' may alter its value
1381   smb.c:323: warning: conversion to 'short unsigned int' from 'unsigned
1382              int' may alter its value
1383   smb.c:482: warning: conversion to 'short unsigned int' from 'int' may
1384              alter its value
1385   smb.c:521: warning: conversion to 'unsigned int' from 'curl_off_t' may
1386              alter its value
1387   smb.c:549: warning: conversion to 'unsigned int' from 'curl_off_t' may
1388              alter its value
1389   smb.c:550: warning: conversion to 'short unsigned int' from 'int' may
1390              alter its value
1391
1392 - smb.c: Renamed SMB command message variables to avoid compiler warnings
1393   
1394   smb.c:489: warning: declaration of 'close' shadows a global declaration
1395   smb.c:511: warning: declaration of 'read' shadows a global declaration
1396   smb.c:528: warning: declaration of 'write' shadows a global declaration
1397
1398 - smb.c: Fixed compilation warnings
1399   
1400   smb.c:212: warning: unused parameter 'done'
1401   smb.c:380: warning: ISO C does not allow extra ';' outside of a function
1402   smb.c:812: warning: unused parameter 'premature'
1403   smb.c:822: warning: unused parameter 'dead'
1404
1405 - smb.c: Fixed compilation warnings
1406   
1407   smb.c:311: warning: conversion from 'unsigned __int64' to 'u_short',
1408              possible loss of data
1409   smb.c:425: warning: conversion from '__int64' to 'unsigned short',
1410              possible loss of data
1411   smb.c:452: warning: conversion from '__int64' to 'unsigned short',
1412              possible loss of data
1413
1414 - smb.c: Fixed compilation warnings
1415   
1416   smb.c:162: error: comma at end of enumerator list
1417   smb.c:469: warning: conversion from 'size_t' to 'unsigned short',
1418              possible loss of data
1419   smb.c:517: warning: conversion from 'curl_off_t' to 'unsigned int',
1420              possible loss of data
1421   smb.c:545: warning: conversion from 'curl_off_t' to 'unsigned int',
1422              possible loss of data
1423
1424 - [Bill Nagel brought this change]
1425
1426   smb: Added initial SMB functionality
1427   
1428   Initial implementation of the SMB/CIFS protocol.
1429
1430 - [Bill Nagel brought this change]
1431
1432   smb: Added SMB handler interfaces
1433   
1434   Added the SMB and SMBS handler interface structures and associated
1435   functions required for SMB/CIFS operation.
1436
1437 - transfer: Code style policing
1438   
1439   Prefer ! rather than NULL in if statements, added comments and updated
1440   function spacing, argument spacing and line spacing to be more readble.
1441
1442 - transfer: Fixed existing scratch buffer being checked for NULL twice
1443   
1444   If the scratch buffer already existed when the CRLF conversion was
1445   performed then the buffer pointer would be checked twice for NULL. This
1446   second check is only necessary if the call to malloc() was performed by
1447   the first check.
1448
1449 - smtp: Fixed dot stuffing being performed when no new data read
1450   
1451   Whilst I had moved the dot stuffing code from being performed before
1452   CRLF conversion takes place to after it, in commit 4bd860a001, I had
1453   moved it outside the 'when something read' block of code when meant
1454   it could perform the dot stuffing twice on partial send if nread
1455   happened to contain the right values. It also meant the function could
1456   potentially read past the end of buffer. This was highlighted by the
1457   following warning:
1458   
1459   warning: `nread' might be used uninitialized in this function
1460
1461 Daniel Stenberg (29 Nov 2014)
1462 - smb.h: fixed picky compiler warning
1463   
1464   smb.h:30:16: error: comma at end of enumerator list [-Werror=pedantic]
1465
1466 Steve Holme (29 Nov 2014)
1467 - tests: Disable test 1013 until SMB is fully added
1468
1469 - [Bill Nagel brought this change]
1470
1471   smb: Added SMB protocol and port definitions
1472   
1473   Added the necessary protocol and port definitions in order to support
1474   SMB/CIFS.
1475
1476 - [Bill Nagel brought this change]
1477
1478   smb: Added internal SMB definitions and structures
1479   
1480   Added the internal definitions and structures necessary for SMB/CIFS
1481   support.
1482
1483 - [Bill Nagel brought this change]
1484
1485   smb: Added SMB connection structure
1486   
1487   Added the connection structure that will be required in urldata.h for
1488   SMB/CIFS based connections.
1489
1490 - [Bill Nagel brought this change]
1491
1492   smb: Added initial source files for SMB
1493   
1494   Added the initial source files and updated the relevant project files in
1495   order to support SMB/CIFS.
1496
1497 - [Bill Nagel brought this change]
1498
1499   smb: Added configuration options for SMB
1500   
1501   Added --enable-smb and --disable-smb configuration options for the
1502   upcoming SMB/CIFS protocol support.
1503
1504 Daniel Stenberg (28 Nov 2014)
1505 - [Peter Wu brought this change]
1506
1507   runtests.pl: fix startup of IPv6 servers
1508   
1509   Commit curl-7_23_1-143-g8218064 changed the parameter of
1510   responsive_http_server to accept types other than IPv6 (converting
1511   from a boolean to a string), but only considered the lower-case "ipv6"
1512   and not the "IPv6" variant. This caused all servers to start in IPv4
1513   mode instead.
1514   
1515   This patch converts the remaining cases to "ipv6". While not strictly
1516   necessary for the run*server variants, these got also converted for
1517   consistency and to prevent future errors.
1518   
1519   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1520
1521 - [Peter Wu brought this change]
1522
1523   runtests.pl: fix warning message, remove duplicate value
1524   
1525   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1526
1527 Steve Holme (27 Nov 2014)
1528 - http.c: Fixed compilation warnings from features being disabled
1529   
1530   warning: unused variable 'data'
1531   warning: variable 'addcookies' set but not used
1532   
1533   ...and some very minor coding style policing.
1534
1535 - RELEASE-NOTES: Synced with c5399c827d
1536
1537 - tests: Added SMTP with --crlf test case
1538
1539 - docs: Updated for commit 4bd860a001 and SMTP Unix line ending conversion
1540
1541 - smtp: Fixed const'ness of nread parameter in Curl_smtp_escape_eob()
1542   
1543   ...and some comment typos!
1544
1545 - smtp: Added support for the conversion of Unix newlines during mail send
1546   
1547   Added support for the automatic conversion of Unix newlines to CRLF
1548   during mail uploads.
1549   
1550   Feature: http://curl.haxx.se/bug/view.cgi?id=1456
1551
1552 - CURLOPT_CRLF.3: Fixed inclusion of SMTP in listed protocols
1553
1554 Daniel Stenberg (25 Nov 2014)
1555 - curl*3: added small examples
1556   
1557   and some minor edits
1558
1559 - libcurl.3: fix formatting
1560   
1561   refer to functions with the man page section properly
1562
1563 - man pages: SEE ALSO curl_multi_wait
1564
1565 - curl_multi_wait.3: clarify numfds being used if not NULL
1566
1567 - multi-single.c: switch to use curl_multi_wait
1568   
1569   Makes the example much easier and straight-forward!
1570
1571 - testcurl: bump the version of this script!
1572
1573 - testcurl: skip reading the setup file if given enough cmdline info
1574   
1575   This makes it much easier to run multiple tests in the same directory,
1576   just altering the command lines used.
1577
1578 - select.c: fix compilation for VxWorks
1579   
1580   Reported-by: Brian
1581   Bug: http://curl.haxx.se/bug/view.cgi?id=1455
1582
1583 Patrick Monnerat (24 Nov 2014)
1584 - [moparisthebest brought this change]
1585
1586   SSL: Add PEM format support for public key pinning
1587
1588 Kamil Dudka (24 Nov 2014)
1589 - Revert "repository: ignore patch files generated by git"
1590   
1591   This reverts commit 217024a687ce86eb6d2317822ed81c7e5abc4b61.
1592   
1593   Bug: https://github.com/bagder/curl/commit/217024a6#commitcomment-8693738
1594
1595 Steve Holme (23 Nov 2014)
1596 - multi.c: Fixed compilation warnings when no verbose string support
1597   
1598   warning: variable 'connection_id' set but not used
1599   warning: unused parameter 'lineno'
1600
1601 - RELEASE-NOTES: Synced with 1450712e76
1602
1603 - sasl: Tidied up some parameter comments
1604
1605 - sasl: Reduced the need for two sets of NTLM functions
1606
1607 - ntlm: Moved NSS initialisation to base decode function
1608
1609 - http_ntlm: Fixed additional NSS initialisation call when decoding type-2
1610   
1611   After commit 48d19acb7c the HTTP code would call Curl_nss_force_init()
1612   twice when decoding a NTLM type-2 message, once directly and the other
1613   through the call to Curl_sasl_decode_ntlm_type2_message().
1614
1615 - ntlm: Fixed static'ness of local decode function
1616
1617 - ntlm: Corrected some parameter names and comments
1618
1619 - runtests.pl: Re-aligned feature support comments
1620
1621 - runtests.pl: Use Kerberos and SPNEGO as proxies for the crypto feature
1622   
1623   In addition to NTLM, use Kerberos and SPNEGO as proxies to the crypto
1624   feature.
1625   
1626   ...and converted tab characters, from commit 4b4e8a5853, to spaces.
1627
1628 - runtests.pl: Added support for SPNEGO
1629
1630 - runtests.pl: Added Kerberos detection
1631
1632 - runtests.pl: Added GSS-API detection
1633
1634 - FILEFORMAT: Added SSPI, GSS-API and Kerberos to the features list
1635
1636 - FILEFORMAT: Added test requires feature not present information
1637   
1638   Such as !SSPI as we do for the NTLM and Digest tests.
1639
1640 Daniel Stenberg (20 Nov 2014)
1641 - http.c: log if it notices HTTP 1.1 after a upgrade to http2
1642
1643 - test1801: first real http2 test case
1644
1645 - sws: initial tiny steps toward http2 support
1646
1647 - FILEFORMAT: mention the new upgrade support
1648
1649 - test1800: first plain-text http2 test case
1650   
1651   Verifies the upgrade request, but gets a plain 1.1 response
1652
1653 - [Tatsuhiro Tsujikawa brought this change]
1654
1655   http: Disable pipelining for HTTP/2 and upgraded connections
1656   
1657   This commit disables pipelining for HTTP/2 or upgraded connections.  For
1658   HTTP/2, we do not support multiplexing.  In general, requests cannot be
1659   pipelined in an upgraded connection, since it is now different protocol.
1660
1661 - [Brad Harder brought this change]
1662
1663   CURLOPT_POSTFIELDS.3: mention the COPYPOSTFIELDS option
1664
1665 Steve Holme (19 Nov 2014)
1666 - multi-uv.c: Updated for curl coding standards
1667
1668 - conncache: Fixed specifiers in infof() for long and size_t variables
1669
1670 - [Peter Wu brought this change]
1671
1672   cmake: add Kerberos to the supported features
1673   
1674   Updated following commit eda919f and a4b7f71.
1675   
1676   Acked-by: Brad King <brad.king@kitware.com>
1677   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1678
1679 - [Peter Wu brought this change]
1680
1681   cmake: fix NTLM detection when CURL_DISABLE_HTTP defined
1682   
1683   Updated following changes in commit f0d860d.
1684   
1685   Acked-by: Brad King <brad.king@kitware.com>
1686   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1687
1688 Daniel Stenberg (19 Nov 2014)
1689 - RELEASE-NOTES: synced with cb13fad733e
1690
1691 - [Jay Satiro brought this change]
1692
1693   examples: Wait recommended 100ms when no file descriptors are ready
1694   
1695   Prior to this change when no file descriptors were ready on platforms
1696   other than Windows the multi examples would sleep whatever was in
1697   timeout, which may or may not have been less than the minimum
1698   recommended value [1] of 100ms.
1699   
1700   [1]: http://curl.haxx.se/libcurl/c/curl_multi_fdset.html
1701
1702 - [Waldek Kozba brought this change]
1703
1704   multi-uv.c: close the file handle after download
1705
1706 - [Jon Spencer brought this change]
1707
1708   multi: inform about closed sockets before they are closed
1709   
1710   When the connection code decides to close a socket it informs the multi
1711   system via the Curl_multi_closed function. The multi system may, in
1712   turn, invoke the CURLMOPT_SOCKETFUNCTION function with
1713   CURL_POLL_REMOVE. This happens after the socket has already been
1714   closed. Reorder the code so that CURL_POLL_REMOVE is called before the
1715   socket is closed.
1716
1717 Guenter Knauf (19 Nov 2014)
1718 - build: in Makefile.m32 moved target autodetection.
1719   
1720   Moved target autodetection block after defining CC macro.
1721
1722 - build: in Makefile.m32 simplify platform flags.
1723
1724 - build: in Makefile.m32 try to detect 64bit target.
1725
1726 Daniel Stenberg (19 Nov 2014)
1727 - [Brad King brought this change]
1728
1729   CMake: Simplify if() conditions on check result variables
1730   
1731   Remove use of an old hack that takes advantage of the auto-dereference
1732   behavior of the if() command to detect if a variable is defined.  The
1733   hack has the form:
1734   
1735    if("${VAR} MATCHES "^${VAR}$")
1736   
1737   where "${VAR}" is a macro argument reference.  Use if(DEFINED) instead.
1738   This also avoids warnings for CMake Policy CMP0054 in CMake 3.1.
1739
1740 - TODO-RELEASE: removed
1741
1742 - [Carlo Wood brought this change]
1743
1744   debug: added new connection cache output, plus fixups
1745   
1746   Debug output 'typo' fix.
1747   
1748   Don't print an extra "0x" in
1749     * Pipe broke: handle 0x0x2546d88, url = /
1750   
1751   Add debug output.
1752   Print the number of connections in the connection cache when
1753     adding one, and not only when one is removed.
1754   
1755   Fix typos in comments.
1756
1757 - multi: move the ending condition into the loop as well
1758   
1759   ... as it was before I changed the loop in commit e04ccbd50. It caused
1760   test 2030 and 2032 to fail.
1761
1762 Steve Holme (18 Nov 2014)
1763 - multi: Prefer we don't use CURLE_OK and NULL in comparisons
1764
1765 Daniel Stenberg (18 Nov 2014)
1766 - multi_runsingle: use 'result' for local CURLcode storage
1767   
1768   ... and assign data->result only at the end. Makes the code more compact
1769   (easier to read) and more similar to other code.
1770
1771 - multi_runsingle: rename result to rc
1772   
1773   save 'result' for CURLcode types
1774
1775 - multi: make multi_runsingle loop internally
1776   
1777   simplifies the use of this function at little cost.
1778
1779 - [Carlo Wood brought this change]
1780
1781   multi: when leaving for timeout, close accordingly
1782   
1783   Fixes the problem when a transfer in a pipeline times out.
1784
1785 Guenter Knauf (18 Nov 2014)
1786 - build: in Makefile.m32 add -m32 flag for 32bit.
1787
1788 - mk-ca-bundle.vbs: update copyright year.
1789
1790 - build: in Makefile.m32 pass -F flag to windres.
1791
1792 Steve Holme (17 Nov 2014)
1793 - config-win32: Fixed build targets for the VS2012+ Windows XP toolset
1794   
1795   Even though commit 23e70e1cc6 mentioned the v110_xp toolset, I had
1796   forgotten to include the relevant pre-processor definitions.
1797
1798 - sasl_sspi: Removed note about the NTLM functions being a wrapper
1799
1800 - connect.c: Fixed compilation warning when no verbose string support
1801   
1802   warning: unused parameter 'reason'
1803
1804 - easy.c: Fixed compilation warning when no verbose string support
1805   
1806   warning: unused parameter 'easy'
1807
1808 - win32: Updated some legacy APIs to use the newer extended versions
1809   
1810   Updated the usage of some legacy APIs, that are preventing curl from
1811   compiling for Windows Store and Windows Phone build targets.
1812   
1813   Suggested-by: Stefan Neis
1814   Feature: http://sourceforge.net/p/curl/feature-requests/82/
1815
1816 - config-win32: Introduce build targets for VS2012+
1817   
1818   Visual Studio 2012 introduced support for Windows Store apps as well as
1819   supporting Windows Phone 8. Introduced build targets that allow more
1820   modern APIs to be used as certain legacy ones are not available on these
1821   new platforms.
1822
1823 - sasl_sspi: Fixed compilation warnings when no verbose string support
1824
1825 - sasl_sspi: Added base64 decoding debug failure messages
1826   
1827   Just like in the NTLM code, added infof() failure messages for
1828   DIGEST-MD5 and GSSAPI authentication when base64 decoding fails.
1829
1830 - ntlm: Moved the SSPI based Type-3 message generation into the SASL module
1831
1832 - ntlm: Moved the SSPI based Type-2 message decoding into the SASL module
1833
1834 - ntlm: Moved the SSPI based Type-1 message generation into the SASL module
1835
1836 - [Michael Osipov brought this change]
1837
1838   kerberos: Use symbol qualified with _KERBEROS5
1839   
1840   For consistency renamed USE_KRB5 to USE_KERBEROS5.
1841
1842 Daniel Stenberg (15 Nov 2014)
1843 - [Jay Satiro brought this change]
1844
1845   examples: Don't call select() to sleep on windows
1846   
1847   Windows does not support using select() for sleeping without a dummy
1848   socket. Instead use Windows' Sleep() and sleep for 100ms which is the
1849   minimum suggested value in the curl_multi_fdset() doc.
1850   
1851   Prior to this change the multi examples would exit prematurely since
1852   select() would error instead of sleeping when called without an fd.
1853   
1854   Reported-by: Johan Lantz
1855   Bug: http://curl.haxx.se/mail/lib-2014-11/0221.html
1856
1857 - [Tatsuhiro Tsujikawa brought this change]
1858
1859   http2: Don't send Upgrade headers when we already do HTTP/2
1860
1861 Steve Holme (15 Nov 2014)
1862 - sasl: Corrected Curl_sasl_build_spn() function description
1863   
1864   There was a mismatch in function parameter names.
1865
1866 - tool: Removed krb4 from the supported features
1867   
1868   Although libcurl would never return CURL_VERSION_KERBEROS4 after 7.33,
1869   so would not be output with --version, removed krb4 from the supported
1870   features output.
1871
1872 - [Michael Osipov brought this change]
1873
1874   tool: Use Kerberos for supported features
1875
1876 - urldata: Don't define sec_complete when no GSS-API support present
1877   
1878   This variable is only used with HAVE_GSSAPI is defined by the FTP code
1879   so let's place the definition with the other GSS-API based variables.
1880
1881 - [Michael Osipov brought this change]
1882
1883   docs: Use consistent naming for Kerberos
1884
1885 - TODO: Lets support QOP options in GSSAPI authentication
1886
1887 - sasl_sspi: Corrected a couple of comment typos
1888
1889 - sasl: Moved Curl_sasl_gssapi_cleanup() definition into header file
1890   
1891   Rather than define the function as extern in the source files that use
1892   it, moved the function declaration into the SASL header file just like
1893   the Digest and NTLM clean-up functions.
1894   
1895   Additionally, added a function description comment block.
1896
1897 - sasl_sspi: Added missing RFC reference for HTTP Digest authentication
1898
1899 - ntlm: Clean-up and standardisation of base64 decoding
1900
1901 - ntlm: We prefer 'CURLcode result'
1902
1903 Daniel Stenberg (13 Nov 2014)
1904 - [Brad King brought this change]
1905
1906   CMake: Restore order-dependent library checks
1907   
1908   Revert commit 2257deb502 (Cmake: Avoid cycle directory dependencies,
1909   2014-08-22) and add a comment explaining the purpose of the original
1910   code.
1911   
1912   The check_library_exists_concat macro is intended to be called multiple
1913   times on a sequence of possibly dependent libraries.  Later libraries
1914   may depend on earlier libraries when they are static.  They cannot be
1915   safely linked in reverse order on some platforms.
1916   
1917   Signed-off-by: Brad King <brad.king@kitware.com>
1918
1919 - [Brad King brought this change]
1920
1921   CMake: Restore order-dependent header checks
1922   
1923   Revert commit 1269df2e3b (Cmake: Don't check for all headers each
1924   time, 2014-08-15) and add a comment explaining the purpose of the
1925   original code.
1926   
1927   The check_include_file_concat macro is intended to be called multiple
1928   times on a sequence of possibly dependent headers.  Later headers
1929   may depend on earlier headers to provide declarations.  They cannot
1930   be safely included independently on some platforms.
1931   
1932   For example, many POSIX APIs document including sys/types.h before some
1933   other headers.  Also on some OS X versions sys/socket.h must be included
1934   before net/if.h or the check for the latter will fail.
1935   
1936   Signed-off-by: Brad King <brad.king@kitware.com>
1937
1938 - [Peter Wu brought this change]
1939
1940   test22: expand a backtick command
1941   
1942   This is the only user of the backtick operator in the command. As the
1943   commands will soon not be executed by a shell anymore (but by perl),
1944   replace the command with its output.
1945   
1946   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1947
1948 - RELEASE-NOTES: synced with 2ee3c63b13
1949
1950 - http2: fix switched macro when http2 is not enabled
1951
1952 - [Tatsuhiro Tsujikawa brought this change]
1953
1954   http2: Deal with HTTP/2 data inside response header buffer
1955   
1956   Previously if HTTP/2 traffic is appended to HTTP Upgrade response header
1957   (thus they are in the same buffer), the trailing HTTP/2 traffic is not
1958   processed and lost.  The appended data is most likely SETTINGS frame.
1959   If it is lost, nghttp2 library complains server does not obey the HTTP/2
1960   protocol and issues GOAWAY frame and curl eventually drops connection.
1961   This commit fixes this problem and now trailing data is processed.
1962
1963 Steve Holme (11 Nov 2014)
1964 - configure: Fixed inclusion of krb5 when CURL_DISABLE_CRYPTO_AUTH is defined
1965   
1966   Commit fe0f8967bf fixed a problem with krb5 not being defined as a
1967   supported feature when HAVE_GSSAPI is defined, however, it should
1968   only be included if CURL_DISABLE_CRYPTO_AUTH is not set, like when
1969   SPNEGO is listed as a feature.
1970
1971 Daniel Stenberg (10 Nov 2014)
1972 - multi: removed Curl_multi_set_easy_connection
1973   
1974   It isn't used anywhere!
1975   
1976   Reported-by: Carlo Wood
1977
1978 - [Peter Wu brought this change]
1979
1980   symbol-scan.pl: do not require autotools
1981   
1982   Makes test1119 pass when building with cmake.
1983   
1984   configurehelp.pm is generated by configure (autotools). As cmake does
1985   not provide a separate variable for the C preprocessor, default to cpp.
1986   Before commit ef24ecde68a5f577a7f0f423a767620f09a0ab16 ("symbol-scan:
1987   use configure script knowledge about how to run the C preprocessor"),
1988   this tool would also use 'cpp'.
1989   
1990   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
1991
1992 - [Peter Wu brought this change]
1993
1994   cmake: add ENABLE_THREADED_RESOLVER, rename ARES
1995   
1996   Fix detection of the AsynchDNS feature which not just depends on
1997   pthreads support, but also on whether USE_POSIX_THREADS is set or not.
1998   Caught by test 1014.
1999   
2000   This patch adds a new ENABLE_THREADED_RESOLVER option (corresponding to
2001   --enable-threaded-resolver of autotools) which also needs a check for
2002   HAVE_PTHREAD_H.
2003   
2004   For symmetry with autotools, CURL_USE_ARES is renamed to ENABLE_ARES
2005   (--enable-ares). Checks that test for the availability actually use
2006   USE_ARES instead as that is the result of whether a-res is available or
2007   not (in practice this does not matter as CARES is marked as required
2008   package, but nevertheless it is better to write the intent).
2009   
2010   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2011
2012 - [Peter Wu brought this change]
2013
2014   cmake: build libhostname for test suite
2015   
2016   Used by some test cases via LD_PRELOAD in order to fake the host name.
2017   
2018   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2019
2020 - [Peter Wu brought this change]
2021
2022   cmake: fix HAVE_GETHOSTNAME definition
2023   
2024   Otherwise Curl_gethostname always fails. Windows has gethostname
2025   since Vista according to
2026   http://msdn.microsoft.com/en-us/library/ms738527%28VS.85%29.aspx, but
2027   accordings to byte_bucket's VC 2005 documentation, it is available even
2028   in Windows 95. (possibly after installing a Platform SDK, the
2029   Windows Server 2003 SP1 Platform SDK should be sufficient).
2030   
2031   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2032
2033 - [Peter Wu brought this change]
2034
2035   tests: fix libhostname visibility
2036   
2037   I noticed that a patched cmake build would pass tests with a fake local
2038   hostname, but the autotools build skips them:
2039   
2040       got unexpected host name back, LD_PRELOAD failed
2041   
2042   It turns out that -fvisibility=hidden hides the symbol, and since the
2043   tests are not part of libcurl, it fails too. Just remove the LIBCURL
2044   guard.
2045   
2046   Broken since cURL 7.30 (commit 83a42ee20ea7fc25abb61c0b7ef56ebe712d7093,
2047   "curl.h: stricter CURL_EXTERN linkage decorations logic").
2048   
2049   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2050
2051 - [Peter Wu brought this change]
2052
2053   tests: fix memleak in server/resolve.c
2054   
2055   This makes LeakSanitizer happy.
2056   
2057   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2058
2059 - configure: assume krb5 when gss-api works
2060   
2061   To please test 1014 while we work out if this is truly the a correct
2062   assumption.
2063
2064 Steve Holme (9 Nov 2014)
2065 - vtls.h: Fixed compiler warning when compiled without SSL
2066   
2067   vtls.c:185:46: warning: unused parameter 'data'
2068
2069 - RELEASE-NOTES: Synced with 2fbf23875f
2070
2071 - ntlm: Added separate SSPI based functions
2072   
2073   In preparation for moving the NTLM message code into the SASL module,
2074   and separating the native code from the SSPI code, added functions that
2075   simply call the functions in curl_ntlm_msg.c.
2076
2077 - http_ntlm: Use the SASL functions instead
2078   
2079   In preparation for moving the NTLM message code into the SASL module
2080   use the SASL functions in the HTTP code instead.
2081
2082 Daniel Stenberg (9 Nov 2014)
2083 - libssh2: detect features based on version, not configure checks
2084   
2085   ... so that non-configure builds get the correct functions too based on
2086   the libssh2 version used.
2087
2088 - [Nobuhiro Ban brought this change]
2089
2090   SSH: use the port number as well for known_known checks
2091   
2092   ... if the libssh2 version is new enough.
2093   
2094   Bug: http://curl.haxx.se/bug/view.cgi?id=1448
2095
2096 Steve Holme (9 Nov 2014)
2097 - INSTALL: Updated pre-processor references to the old VC6 project files
2098   
2099   Reworked the two sections that discuss modifying the Visual Studio pre-
2100   processor settings, and vc6libcurl.dsw/vc6libcurl.dsp, to remove the
2101   project files references as they have been superseded by a more thorough
2102   set of project files for VC6 through VC12, but to also give the correct
2103   reference to this setting in later versions of Visual Studio.
2104
2105 - INSTALL: Added email protocols to the "Disabling in Win32 builds" section
2106
2107 - configure: Fixed NTLM missing from features when CURL_DISABLE_HTTP defined
2108
2109 - build: Fixed no NTLM support for email when CURL_DISABLE_HTTP is defined
2110   
2111   USE_NTLM would only be defined if: HTTP support was enabled, NTLM and
2112   cryptography weren't disabled, and either a supporting cryptography
2113   library or Windows SSPI was being compiled against.
2114   
2115   This means it was not possible to build libcurl without HTTP support
2116   and use NTLM for other protocols such as IMAP, POP3 and SMTP. Rather
2117   than introduce a new SASL pre-processor definition, removed the HTTP
2118   prerequisite just like USE_SPNEGO and USE_KRB5.
2119   
2120   Note: Winbind support still needs to be dependent on CURL_DISABLE_HTTP
2121   as it is only available to HTTP at present.
2122   
2123   This bug dates back to August 2011 when I started to add support for
2124   NTLM to SMTP.
2125
2126 - ntlm: Removed an unnecessary free of native Target Info
2127   
2128   Due to commit 40ee1ba0dc the free in Curl_ntlm_decode_type2_target() is
2129   longer required.
2130
2131 - ntlm: Moved the native Target Info clean-up from HTTP specific function
2132
2133 - ntlm: Moved SSPI clean-up code into SASL module
2134
2135 - Makefile.dist: Added support for WinIDN
2136
2137 - Makefile.vc6: Added support for WinIDN
2138
2139 - Makefile.dist: Added some missing SSPI configurations
2140
2141 - Makefile.dist: Separated the groups of SSL configurations from each other
2142
2143 - Makefile.dist: Grouped the x64 configurations next to their x86 counterparts
2144
2145 - curl.h: Tidy up of CURL_VERSION_* flags
2146   
2147   As the list has gotten a little messy and hard to read, especially with
2148   the introduction of deprecated items, aligned the values and comments
2149   into clean columns and reworked some of the comments in the process.
2150
2151 - curl_tool: Added krb5 to the supported features
2152
2153 - configure: Added krb5 to the supported features
2154
2155 - version info: Added Kerberos V5 to the supported features
2156
2157 Guenter Knauf (7 Nov 2014)
2158 - mk-ca-bundle.vbs: switch to new certdata.txt url.
2159
2160 Steve Holme (7 Nov 2014)
2161 - RELEASE-NOTES: Synced with dcad09e125
2162
2163 - http_digest: Fixed some memory leaks introduced in commit 6f8d8131b1
2164   
2165   Fixed a couple of memory leaks as a result of moving code that used to
2166   populate allocuserpwd and relied on it's clean up.
2167
2168 - docs: Updated following the addition of SSPI based HTTP digest auth
2169
2170 - sasl_sspi: Tidy up of the existing digest code
2171   
2172   Following the addition of SSPI support for HTTP digest, synchronised
2173   elements of the email digest code with that of the new HTTP code.
2174
2175 - http_digest: Post SSPI support tidy up
2176   
2177   Post tidy up to ensure commonality of code style and variable names.
2178
2179 Dan Fandrich (6 Nov 2014)
2180 - test552: Don't run HTTP digest tests for SSPI based builds
2181   
2182   Technical difficulties prevented this from going into the
2183   previous commit.
2184
2185 Steve Holme (6 Nov 2014)
2186 - tests: Don't run HTTP digest tests for SSPI based builds
2187   
2188   Added !SSPI to the features list of the HTTP digest tests, as SSPI
2189   based builds now use the Windows SSPI messaging API rather than the
2190   internal functions, and we can't control the random numbers that get
2191   used as part of the digest.
2192
2193 Daniel Stenberg (6 Nov 2014)
2194 - curl.1: show zone index use in a URL
2195
2196 Steve Holme (6 Nov 2014)
2197 - http_digest: Fixed auth retry loop when SSPI based authentication fails
2198
2199 - http_digest: Reworked the SSPI based input token storage
2200   
2201   Reworked the input token (challenge message) storage as what is passed
2202   to the buf and desc in the response generation are typically blobs of
2203   data rather than strings, so this is more in keeping with other areas
2204   of the SSPI code, such as the NTLM message functions.
2205
2206 - sasl_sspi: Fixed compilation warning from commit 2d2a62e3d9
2207   
2208   Added void reference to unused 'data' parameter back to fix compilation
2209   warning.
2210
2211 - sspi: Align definition values to even columns as we use 2 char spacing
2212
2213 - sspi: Fixed missing definition of ISC_REQ_USE_HTTP_STYLE
2214   
2215   Some versions of Microsoft's sspi.h don't define this.
2216
2217 - sasl: Removed non-SSPI Digest functions and defines from SSPI based builds
2218   
2219   Introduced in commit 7e6d51a73c these functions and definitions are only
2220   required by the internal challenge-response functions now.
2221
2222 - sasl_sspi: Added HTTP digest response generation code
2223
2224 - http_digest: Added SSPI based challenge decoding code
2225
2226 - http_digest: Added SSPI based clean-up code
2227
2228 - http_digest: Added SSPI based authentication functions
2229   
2230   This temporarily breaks HTTP digest authentication in SSPI based builds,
2231   causing CURLE_NOT_BUILT_IN to be returned. A follow up commit will
2232   resume normal operation.
2233
2234 - http_digest: Added required SSPI based variables to digest structure
2235
2236 Daniel Stenberg (6 Nov 2014)
2237 - [Frank Gevaerts brought this change]
2238
2239   contributors.sh: --releasenotes reads in names from RELEASE-NOTES
2240   
2241   This is very handy when updating the RELEASE-NOTES as then we sometimes
2242   have names added manually in the existing list and we use this script to
2243   update the set.
2244
2245 - RELEASE-NOTES: synced with 68542e72a9
2246
2247 - curl_easy_setopt.3: add CURLOPT_PINNEDPUBLICKEY
2248   
2249   Reported-by: Christian Hägele
2250   Bug: http://curl.haxx.se/mail/lib-2014-11/0078.html
2251
2252 Steve Holme (5 Nov 2014)
2253 - build: Fixed Visual Studio project file generation of strdup.[c|h]
2254   
2255   As the curl command-line tool now includes it's own version of strdup(),
2256   for platforms that don't have it, fixed up the git respository Visual
2257   Studio project file generator to not include the version from lib in the
2258   tool project files, rather than having both lib\strdup.[c|h] and
2259   src\tool_strdup.[c|h] present.
2260
2261 Daniel Stenberg (5 Nov 2014)
2262 - tool_strdup.c: include the tool strdup.h
2263   
2264   ... not the lib/ one that the tool no longer uses!
2265
2266 - THANKS-filter: added another MichaÅ‚ Górny version we've used
2267
2268 - contributors.sh: split lists using " and "
2269   
2270   ... and require the space after the filtering to make the filter able to
2271   remove names.
2272
2273 Steve Holme (5 Nov 2014)
2274 - http_digest: Fixed memory leaks from commit 6f8d8131b1
2275
2276 - sasl: Fixed compilation warning from commit 25264131e2
2277   
2278   Added forward declaration of digestdata to overcome the following
2279   compilation warning:
2280   
2281   warning: 'struct digestdata' declared inside parameter list
2282   
2283   Additionally made the ntlmdata forward declaration dependent on
2284   USE_NTLM similar to how digestdata and kerberosdata are.
2285
2286 - sasl: Fixed HTTP digest challenges with spaces between auth parameters
2287   
2288   Broken as part of the rework, in commit 7e6d51a73c, to assist with the
2289   addition of HTTP digest via Windows SSPI.
2290
2291 - http_digest: Fixed compilation errors from commit 6f8d8131b1
2292   
2293   error: invalid operands to binary
2294   warning: pointer targets in assignment differ in signedness
2295
2296 - http_digest: Moved response generation into SASL module
2297
2298 - http_digest: Moved challenge decoding into SASL module
2299
2300 - http_digest: Moved clean-up function into SASL module
2301
2302 - http_digest: Moved algorithm definitions to SASL module
2303
2304 - [Gisle Vanem brought this change]
2305
2306   ssh: Fixed build on platforms where R_OK is not defined
2307   
2308   Bug: http://curl.haxx.se/mail/lib-2014-11/0035.html
2309   Reported-by: Jan Ehrhardt
2310
2311 - strdup: Removed irrelevant comment
2312   
2313   ...as Curl_memdup() duplicates an area of fix size memory, that may be
2314   binary, and not a null terminated string.
2315
2316 - url.c: Fixed compilation warning
2317   
2318   conversion from 'curl_off_t' to 'size_t', possible loss of data
2319
2320 - http_digest: Use CURLcode instead of CURLdigest
2321   
2322   To provide consistent behaviour between the various HTTP authentication
2323   functions use CURLcode based error codes for Curl_input_digest()
2324   especially as the calling code doesn't use the specific error code just
2325   that it failed.
2326
2327 Daniel Stenberg (5 Nov 2014)
2328 - contributors.sh: filter common alternative name spellings
2329   
2330   docs/THANKS-filter is a new filter file for converting contributor names
2331   we get or have recorded in alternative formats to the one we already use
2332   in THANKS. To help us show individual contributors using a single
2333   presentation of their names.
2334
2335 - THANKS: added missing contributor from 2012
2336
2337 - [Frank Gevaerts brought this change]
2338
2339   Remove duplicate names.
2340   
2341   The removed names also appear as:
2342   Andrés García, François Charlier, Gökhan Åžengün, MichaÅ‚ Górny, Sébastien
2343   Willemijns, Christopher Conroy, John E. Malmberg, Luca Altea, Peter Su,
2344   S. Moonesamy, Samuel Listopad, Yasuharu Yamada, Karl Moerder
2345
2346 Steve Holme (5 Nov 2014)
2347 - sspi: Define authentication package name constants
2348   
2349   These were previously hard coded, and whilst defined in security.h,
2350   they may or may not be present in old header files given that these
2351   defines were never used in the original code.
2352   
2353   Not only that, but there appears to be some ambiguity between the ANSI
2354   and UNICODE NTLM definition name in security.h.
2355
2356 Patrick Monnerat (5 Nov 2014)
2357 - Adjust OS400-specific support to last release
2358
2359 Daniel Stenberg (5 Nov 2014)
2360 - THANKS: added two missing names and removed a duplicate
2361   
2362   ./contributors.sh found these extra ones that somehow had fallen
2363   through the cracks and never gotten added here.
2364   
2365   Reported-by: Frank Gevaerts
2366
2367 - bump: towards next release
2368
2369 - THANKS: added names from 7.39.0 release notes
2370
2371 Version 7.39.0 (5 Nov 2014)
2372
2373 Daniel Stenberg (5 Nov 2014)
2374 - RELEASE-NOTES: 7.39.0 release (commit b3875606925)
2375
2376 - curl_easy_duphandle: CURLOPT_COPYPOSTFIELDS read out of bounds
2377   
2378   When duplicating a handle, the data to post was duplicated using
2379   strdup() when it could be binary and contain zeroes and it was not even
2380   zero terminated! This caused read out of bounds crashes/segfaults.
2381   
2382   Since the lib/strdup.c file no longer is easily shared with the curl
2383   tool with this change, it now uses its own version instead.
2384   
2385   Bug: http://curl.haxx.se/docs/adv_20141105.html
2386   CVE: CVE-2014-3707
2387   Reported-By: Symeon Paraschoudis
2388
2389 - lib544.c: use duphandle for test 545
2390   
2391   To verify that curl_easy_duphandle() works fine on a handle that has
2392   gotten data stored with *_COPYPOSTFIELDS.
2393
2394 - tests: add new feature 'SSLpinning'
2395   
2396   ... and make test 2034 and 2035 require it, and have it set when built
2397   with OpenSSL or GnuTLS.
2398
2399 - buildconf: update copyright year
2400
2401 Steve Holme (4 Nov 2014)
2402 - INSTALL: Consistent spacing in section headings, paragraphs and examples
2403
2404 Daniel Stenberg (4 Nov 2014)
2405 - buildconf: stop checking for libtool
2406   
2407   As we only use libtoolize, only check for that!
2408
2409 Steve Holme (4 Nov 2014)
2410 - INSTALL: Corrected MIT Kerberos and Heimdal package names
2411
2412 - README: Corrected inconsistent use of --help
2413
2414 - INSTALL: Use GSS-API rather than GSSAPI
2415   
2416   As implementations are refereed to GSS-API libraries as per the RFC and
2417   GSSAPI typically refers to the SASL authentication mechanism.
2418   
2419   ...and minor rewording on the same paragraph.
2420
2421 - README: Added note about using Visual Studio projects out of git repository
2422
2423 Daniel Stenberg (4 Nov 2014)
2424 - [K. R. Walker brought this change]
2425
2426   cmake: fix ZLIB_INCLUDE_DIRS use
2427   
2428   CMake 2.8's FindZLIB.cmake documents ZLIB_INCLUDE_DIRS, see
2429   http://www.cmake.org/cmake/help/v2.8.0/cmake.html#module:FindZLIB
2430   
2431   Bug: https://github.com/bagder/curl/pull/123
2432
2433 - [Jay Satiro brought this change]
2434
2435   SSL: PolarSSL default min SSL version TLS 1.0
2436   
2437   - Prior to this change no SSL minimum version was set by default at
2438   runtime for PolarSSL. Therefore in most cases PolarSSL would probably
2439   have defaulted to a minimum version of SSLv3 which is no longer secure.
2440
2441 - opts-Makefile: put more man pages into dist and make hmtl+pdf
2442
2443 - curl_multi_setopt.3: refer to stand-alone pages
2444   
2445   ... instead of duplicating info.
2446
2447 - opts: more multi options as stand-alone man pages
2448
2449 - Makefile.am: two cmake files are gone
2450   
2451   8cb010144 removed the CurlCheckCSourceCompiles.cmake and
2452   CurlCheckCSourceRuns.cmake files
2453
2454 - opts: made stand-alone man-pages for several multi options
2455
2456 - [Carlo Wood brought this change]
2457
2458   Curl_single_getsock: fix hold/pause sock handling
2459   
2460   The previous condition that checked if the socket was marked as readable
2461   when also adding a writable one, was incorrect and didn't take the pause
2462   bits properly into account.
2463
2464 - [Peter Wu brought this change]
2465
2466   cmake: fix struct sockaddr_storage check
2467   
2468   CHECK_TYPE_SIZE_PREINCLUDE is an internal, undocumented variable which
2469   was removed in cmake 2.8.1. According to the MSDN docs[1], inclusion
2470   of winsock2.h is sufficient. WIN32_LEAN_AND_MEAN does not really seem
2471   to affect the tests, so remove it too[2].
2472   
2473   For the non-windows case, remove inet headers as POSIX only requires
2474   sys/socket.h.
2475   
2476    [1]: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740504%28v=vs.85%29.aspx
2477    [2]: http://stackoverflow.com/questions/11040133/what-does-defining-win32-lean-and-mean-exclude-exactly
2478   
2479   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2480
2481 - [Peter Wu brought this change]
2482
2483   cmake: clean OtherTests, fixing -Werror
2484   
2485   There were several -Wunused warnings and one duplicate macro definition.
2486   The EXTRA_DEFINES variable of the CurlCheckCSources macro was being
2487   abused ("__unused1\n#undef inline\n#define __unused2", seriously?) to
2488   insert extra C code. Avoid this broken abstraction and use cmake's
2489   check_c_source_compiles directly (works fine with CMake 2.8, maybe
2490   even cmake 2.6).
2491   
2492   After cleaning up all related variables (EXTRA_DEFINES,
2493   HEADER_INCLUDES, auxiliary headers_hack), also remove a duplicate
2494   add_headers_include macro and remove duplicate header additions before
2495   the struct timeval check.
2496   
2497   Oh, and now the code is converted to use CheckCSourceRuns and
2498   CheckCSourceCompiles, the two curl-specific helpers can be removed.
2499   Unfortunately, the cmake output is now slightly more verbose. Before:
2500   
2501       Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test)
2502       Performing Test int send(int, const void *, size_t, int) (curl_cv_func_send_test) - Failed
2503   
2504   Since check_c_source_compiles prints the varname, now you see:
2505   
2506       Performing Test curl_cv_func_send_test
2507       Performing Test curl_cv_func_send_test - Failed
2508       Tested: int send(int, const void *, size_t, int)
2509   
2510   Compared cmake output with each other using vimdiff, no functional
2511   differences were found. Tested with GCC 4.9.1 and Clang 3.5.0.
2512   
2513   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2514
2515 - [Peter Wu brought this change]
2516
2517   cmake: fix gethostby{addr,name}_r in CurlTests
2518   
2519   This patch cleans up the automatically-generated (?) code and fixes one
2520   case that will always fail due to syntax error.
2521   
2522   HAVE_GETHOSTBYADDR_R_5_REENTRANT always failed because of a trailing
2523   character ("int length;q"). Several parameter type and unused variable
2524   warnings popped up. This causes a detection failure with -Werror.
2525   
2526   Observe that the REENTRANT cases are exactly the same as their
2527   non-REENTRANT cases except for a `_REENTRANT` macro definition.
2528   Merge all these pieces and build one big main function with different
2529   cases, but reusing variables where logical.
2530   
2531   For the cases where the parameters where NULL, I looked at
2532   lib/hostip4.c to get an idea of the parameters types.
2533   
2534   void-cast variables such as 'rc' to avoid -Wuninitialized errors.
2535   
2536   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2537
2538 - [Peter Wu brought this change]
2539
2540   cmake: drop _BSD_SOURCE macro usage
2541   
2542   autotools does not use features.h nor _BSD_SOURCE. As this macro
2543   triggers warnings since glibc 2.20, remove it. It should not have
2544   functional differences.
2545   
2546   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2547
2548 Steve Holme (2 Nov 2014)
2549 - RELEASE-NOTES: Synced with d71ea7c01e
2550   
2551   Additionally, updated "GSSAPI" to "GSS-API" for a Cmake related change
2552   as GSSAPI can be confused with the authentication mechanism rather than
2553   a GSS-API implementation library such as MIT or Heimdal.
2554
2555 - build: Added WinIDN build configuration options
2556   
2557   Added support for WinIDN build configurations to the VC6 project files.
2558
2559 - build: Added WinIDN build configuration options
2560   
2561   Added support for WinIDN build configurations to the VC7 and VC7.1
2562   project files.
2563
2564 - build: Fixed the pre-processor separator in Visual Studio project files
2565   
2566   A left over from the VC6 project files, so mainly cosmetic in Visual
2567   Studio .NET as it can handle both comma and semi-colon characters for
2568   separating multiple pre-processor definitions.
2569   
2570   However, the IDE uses semi-colons if the value is edited, and as such,
2571   this may cause problems in future for anyone updating the files or
2572   merging patches.
2573   
2574   Used the Visual Studio IDE to correct the separator character.
2575
2576 - build: Added optional specific version generation of VC project files
2577   
2578   ..when working from the git repository. This is particularly useful
2579   for single development environments where the project files for all
2580   supported versions of Visual Studio may not be required.
2581
2582 - [Jay Satiro brought this change]
2583
2584   build-openssl.bat: Fix x64 release build
2585   
2586   Prior to this change if x64 release was specified a failed attempt was
2587   made to build x86 release instead.
2588
2589 - CURLOPT_XOAUTH2_BEARER.3: Corrected the OAuth version number
2590
2591 - CURLOPT_SASL_IR.3: Added supported mechanism information
2592   
2593   ...and removed duplication of what protocols are supported from the
2594   description text.
2595
2596 - opts: Use common wording for MAIL related names
2597
2598 - opts: Use common wording for TLS user/password option names
2599   
2600   ...and revised the proxy wording a little as well.
2601
2602 - CURLOPT_MAXCONNECTS.3: Reworked the description to be less confusing
2603   
2604   ...and corrected a related typo in curl_easy_setopt.3.
2605
2606 Guenter Knauf (2 Nov 2014)
2607 - RELEASE-NOTES: removed obsolete entry; fixed entry.
2608
2609 Steve Holme (2 Nov 2014)
2610 - RELEASE-NOTES: Synced with e7da67f5d3
2611
2612 - docs: Added mention of Kerberos for CURL_VERSION_SSPI
2613   
2614   As this has been present for SOCKSv5 proxy since v7.19.4 and for IMAP,
2615   POP3 and SMTP authentication since v7.38.0.
2616
2617 - CURL_VERSION_KERBEROS4: Mark as deprecated
2618   
2619   Support for Kerberos V4 was removed in v7.33.0.
2620
2621 - sasl: Fixed Kerberos V5 inclusion when CURL_DISABLE_CRYPTO_AUTH is used
2622   
2623   Typically the USE_WINDOWS_SSPI definition would not be used when the
2624   CURL_DISABLE_CRYPTO_AUTH define is, however, it is still a valid build
2625   configuration and, as such, the SASL Kerberos V5 (GSSAPI) authentication
2626   data structures and functions would incorrectly be used when they
2627   shouldn't be.
2628   
2629   Introduced a new USE_KRB5 definition that takes into account the use of
2630   CURL_DISABLE_CRYPTO_AUTH like USE_SPNEGO and USE_NTLM do.
2631
2632 - openssl: Use 'CURLcode result'
2633   
2634   More CURLcode fixes.
2635
2636 Daniel Stenberg (1 Nov 2014)
2637 - resume: consider a resume from [content-length] to be OK
2638   
2639   Basically since servers often then don't respond well to this and
2640   instead send the full contents and then libcurl would instead error out
2641   with the assumption that the server doesn't support resume. As the data
2642   is then already transfered, this is now considered fine.
2643   
2644   Test case 1434 added to verify this. Test case 1042 slightly modified.
2645   
2646   Reported-by: hugo
2647   Bug: http://curl.haxx.se/bug/view.cgi?id=1443
2648
2649 Steve Holme (1 Nov 2014)
2650 - openssl: Use 'CURLcode result'
2651   
2652   More standardisation of CURLcode usage and coding style.
2653
2654 - openssl: Use 'CURLcode result'
2655   
2656   ...and some minor code style changes.
2657
2658 - ftplistparser: We prefer 'CURLcode result'
2659
2660 - opts: Use common wording for user/password option names
2661
2662 - CURLOPT_CONNECT_ONLY.3: Removed "This option is implemented for..." text
2663   
2664   As this is covered by the PROTOCOLS section and saves having to update
2665   two parts of the document with the same information in future.
2666
2667 - CURLOPT_GSSAPI_DELEGATION.3: Use GSS-API rather than GSSAPI
2668   
2669   As implementations are refereed to GSS-API libraries as per the RFC and
2670   GSSAPI typically refers to an authentication mechanism.
2671
2672 - CURLOPT_CONNECT_ONLY.3: Fixed incomplete protocol list
2673   
2674   Added missing IMAP to the protocol list.
2675
2676 - code cleanup: Use 'CURLcode result'
2677
2678 - curl_easy_setopt.3: Fixed lots of typos
2679
2680 - curl_easy_setopt.3: Moved CURLOPT_DIRLISTONLY into PROTOCOL OPTIONS
2681   
2682   ...as this option affects more that just FTP.
2683
2684 Guenter Knauf (30 Oct 2014)
2685 - build: added Watcom support to build with WinSSL.
2686
2687 Daniel Stenberg (30 Oct 2014)
2688 - CURLOPT_PINNEDPUBLICKEY.3: added details
2689
2690 Steve Holme (30 Oct 2014)
2691 - CURLOPT_CUSTOMREQUEST.3: Fixed incomplete protocol list
2692   
2693   Whilst the description included information about SMTP, the protocol
2694   list only showed "TTP, FTP, IMAP, POP3".
2695
2696 - CURLOPT_DIRLISTONLY.3: Added information about the usage in POP3
2697
2698 Daniel Stenberg (29 Oct 2014)
2699 - openssl: enable NPN separately from ALPN
2700   
2701   ... and allow building with nghttp2 but completely without NPN and ALPN,
2702   as nghttp2 can still be used for plain-text HTTP.
2703   
2704   Reported-by: Lucas Pardue
2705
2706 - configure.ac: remove checks for OpenSSL NPN/ALPN funcs again
2707   
2708   ... since the conditional in the code are now based on OpenSSL versions
2709   instead to better support non-configure builds.
2710
2711 - opts: added some "SEE ALSO" references
2712
2713 Steve Holme (29 Oct 2014)
2714 - RELEASE-NOTES: Synced with 32913182dc
2715
2716 - vtls.c: Fixed compilation warning
2717   
2718   conversion from 'size_t' to 'unsigned int', possible loss of data
2719
2720 - sspi: Return CURLE_LOGIN_DENIED on AcquireCredentialsHandle() failure
2721   
2722   Return a more appropriate error, rather than CURLE_OUT_OF_MEMORY when
2723   acquiring the credentials handle fails. This is then consistent with
2724   the code prior to commit f7e24683c4 when log-in credentials were empty.
2725
2726 - sasl_sspi: Allow DIGEST-MD5 to use current windows credentials
2727   
2728   Fixed the ability to use the current log-in credentials with DIGEST-MD5.
2729   I had previously disabled this functionality in commit 607883f13c as I
2730   couldn't get this to work under Windows 8, however, from testing HTTP
2731   Digest authentication through Windows SSPI and then further testing of
2732   this code I have found it works in Windows 7.
2733   
2734   Some further investigation is required to see what the differences are
2735   between Windows 7 and 8, but for now enable this functionality as the
2736   code will return an error when AcquireCredentialsHandle() fails.
2737
2738 Kamil Dudka (29 Oct 2014)
2739 - transfer: drop the code handling the ssl_connect_retry flag
2740   
2741   Its last use has been removed by the previous commit.
2742
2743 - nss: drop the code for libcurl-level downgrade to SSLv3
2744   
2745   This code was already deactivated by commit
2746   ec783dc142129d3860e542b443caaa78a6172d56.
2747
2748 - openssl: fix a line length warning
2749
2750 Guenter Knauf (29 Oct 2014)
2751 - Added NetWare support to build with nghttp2.
2752
2753 - Fixed error message since we require ALPN support.
2754
2755 - Check for ALPN via OpenSSL version number.
2756   
2757   This check works also with to non-configure platforms.
2758
2759 Steve Holme (28 Oct 2014)
2760 - sasl_sspi: Fixed typo in comment
2761
2762 - code cleanup: We prefer 'CURLcode result'
2763
2764 Daniel Stenberg (28 Oct 2014)
2765 - TODO: consider supporting STAT
2766
2767 - mk-ca-bundle: spell fix "version"
2768
2769 - HTTP: return larger than 3 digit response codes too
2770   
2771   HTTP 1.1 is clearly specified to only allow three digit response codes,
2772   and libcurl used sscanf("%3d") for that purpose. This made libcurl
2773   support smaller numbers but not larger. It does now, but we will not
2774   make any specific promises nor document this further since it is going
2775   outside of what HTTP is.
2776   
2777   Bug: http://curl.haxx.se/bug/view.cgi?id=1441
2778   Reported-by: Balaji
2779
2780 - src/: remove version.h.dist from gitignore
2781   
2782   It has not been used since commit f7bfdbab in 2011
2783
2784 Steve Holme (26 Oct 2014)
2785 - ntlm: We prefer 'CURLcode result'
2786   
2787   Continuing commit 0eb3d15ccb more return code variable name changes.
2788
2789 Guenter Knauf (26 Oct 2014)
2790 - Cosmetics: lowercase non-special subroutine names.
2791
2792 Steve Holme (26 Oct 2014)
2793 - RELEASE-NOTES: Synced with 07ac29a058
2794
2795 - http_negotiate: We prefer 'CURLcode result'
2796   
2797   Continuing commit 0eb3d15ccb more return code variable name changes.
2798
2799 - http_negotiate: Fixed missing check for USE_SPNEGO
2800
2801 - sspi: Synchronization of cleanup code between auth mechanisms
2802
2803 - sspi: Renamed max token length variables
2804   
2805   Code cleanup to try and synchronise code between the different SSPI
2806   based authentication mechanisms.
2807
2808 - sspi: Renamed expiry time stamp variables
2809   
2810   Code cleanup to try and synchronise code between the different SSPI
2811   based authentication mechanisms.
2812
2813 - sspi: Only call CompleteAuthToken() when complete is needed
2814   
2815   Don't call CompleteAuthToken() after InitializeSecurityContext() has
2816   returned SEC_I_CONTINUE_NEEDED as this return code only indicates the
2817   function should be called again after receiving a response back from
2818   the server.
2819   
2820   This only affected the Digest and NTLM authentication code.
2821
2822 Dan Fandrich (26 Oct 2014)
2823 - Added the "flaky" keyword to a number of tests
2824   
2825   Each shows evidence of flakiness on at least one platform on
2826   the autobuilds. Users can use this keyword to skip these tests
2827   if desired.
2828
2829 Steve Holme (26 Oct 2014)
2830 - ntlm: Return all errors from Curl_ntlm_core_mk_nt_hash()
2831   
2832   For consistency with other areas of the NTLM code propagate all errors
2833   from Curl_ntlm_core_mk_nt_hash() up the call stack rather than just
2834   CURLE_OUT_OF_MEMORY.
2835
2836 - ntlm: Return CURLcode from Curl_ntlm_core_mk_lm_hash()
2837
2838 - ntlm: Use 'CURLcode result'
2839   
2840   Continuing commit 0eb3d15ccb more return code variable name changes.
2841
2842 - ntlm: Only define ntlm data structure when USE_NTLM is defined
2843
2844 - ntlm: Changed handles to be dynamic like other SSPI handles
2845   
2846   Code cleanup to try and synchronise code between the different SSPI
2847   based authentication mechanisms.
2848
2849 - ntlm: Renamed handle variables to match other SSPI structures
2850   
2851   Code cleanup to try and synchronise code between the different SSPI
2852   based authentication mechanisms.
2853
2854 - ntlm: Renamed SSPI based input token variables
2855   
2856   Code cleanup to try and synchronise code between the different SSPI
2857   based authentication mechanisms.
2858
2859 - ntlm: We prefer 'CURLcode result'
2860   
2861   Continuing commit 0eb3d15ccb more return code variable name changes.
2862
2863 - build: Added WinIDN build configuration options
2864   
2865   Added support for WinIDN build configurations to the VC8 and VC9
2866   project files.
2867
2868 Nick Zitzmann (24 Oct 2014)
2869 - darwinssl: detect possible future removal of SSLv3 from the framework
2870   
2871   If Apple ever drops SSLv3 support from the Security framework, we'll fail with an error if the user insists on using SSLv3.
2872
2873 Patrick Monnerat (24 Oct 2014)
2874 - gskit.c: remove SSLv3 from SSL default.
2875
2876 - gskit.c: use 'CURLcode result'
2877
2878 Daniel Stenberg (24 Oct 2014)
2879 - [Jay Satiro brought this change]
2880
2881   SSL: Remove SSLv3 from SSL default due to POODLE attack
2882   
2883   - Remove SSLv3 from SSL default in darwinssl, schannel, cyassl, nss,
2884   openssl effectively making the default TLS 1.x. axTLS is not affected
2885   since it supports only TLS, and gnutls is not affected since it already
2886   defaults to TLS 1.x.
2887   
2888   - Update CURLOPT_SSLVERSION doc
2889
2890 - pipelining: only output "is not blacklisted" in debug builds
2891
2892 - *.3: add/extend "SEE ALSO" sections
2893
2894 - curl_easy_pause.3: minor wording edit
2895
2896 - curl_getdate.3: provide a "SEE ALSO" section
2897
2898 - curl_global_init.3: minor formatting fix, add version info
2899
2900 - url.c: use 'CURLcode result'
2901
2902 - code cleanup: we prefer 'CURLcode result'
2903   
2904   ... for the local variable name in functions holding the return
2905   code. Using the same name universally makes code easier to read and
2906   follow.
2907   
2908   Also, unify code for checking for CURLcode errors with:
2909   
2910    if(result) or if(!result)
2911   
2912   instead of
2913   
2914    if(result == CURLE_OK), if(CURLE_OK == result) or if(result != CURLE_OK)
2915
2916 - Curl_add_timecondition: skip superfluous varible assignment
2917   
2918   Detected by cppcheck.
2919
2920 - Curl_pp_flushsend: skip superfluous assignment
2921   
2922   Detected by cppcheck.
2923
2924 - Curl_pp_readresp: remove superfluous assignment
2925   
2926   Variable already assigned a few lines up.
2927   
2928   Detected by cppcheck.
2929
2930 - Curl_proxyCONNECT: remove superfluous statement
2931   
2932   The variable is already assigned, skip the duplicate assignment.
2933   
2934   Pointed out by cppcheck.
2935
2936 Guenter Knauf (24 Oct 2014)
2937 - Added MinGW support to build with nghttp2.
2938
2939 - Added VC ssh2 target to main Makefile.
2940
2941 - Some cosmetics and simplifies.
2942
2943 - Remove dependency on openssl and cut.
2944   
2945   Prefer usage of Perl modules for sha1 calculation since there
2946   might be systems where openssl is not installed or not in path.
2947   If openssl is used for sha1 calculation then dont rely on cut
2948   since it is usually not available on other systems than Linux.
2949
2950 Daniel Stenberg (23 Oct 2014)
2951 - RELEASE-NOTES: synced with e116d0a62
2952
2953 - CURLOPT_RESOLVE.3: add an example
2954
2955 - gnutls: removed dead code
2956   
2957   Bug: http://curl.haxx.se/bug/view.cgi?id=1437
2958   Reported-by: Julien
2959
2960 - Curl_rand: Uninitialized variable: r
2961   
2962   This is not actually used uninitialized but we silence warnings.
2963   
2964   Bug: http://curl.haxx.se/bug/view.cgi?id=1437
2965   Reported-by: Julien
2966
2967 - opts: provide more and updated examples
2968
2969 - CURLOPT_RANGE.3: works for SFTP as well
2970   
2971   ... and added a small example
2972
2973 - curl.1: edited for clarity
2974
2975 - CURLOPT_SSLVERSION.3: provide an example
2976
2977 - docs/libcurl/ABI: more markdown friendly
2978
2979 - docs: edited lots of libcurl docs for clarity
2980
2981 - opts: added examples
2982
2983 - HISTORY: two glimpses in 2014
2984
2985 Kamil Dudka (20 Oct 2014)
2986 - nss: reset SSL handshake state machine
2987   
2988   ... when the handshake succeeds
2989   
2990   This fixes a connection failure when FTPS handle is reused.
2991
2992 Daniel Stenberg (20 Oct 2014)
2993 - [Peter Wu brought this change]
2994
2995   cmake: generate pkg-config and curl-config
2996   
2997   Initial work to generate a pkg-config and curl-config script. Static
2998   linking (`curl-config --static-libs` and `pkg-config --shared --libs
2999   libcurl`) is broken and therefore disabled.
3000   
3001   CONFIGURE_OPTIONS does not make sense for CMake, use an empty string
3002   for now.
3003   
3004   At least `curl-config --features` and `curl-config --protocols` work
3005   which is needed by runtests.pl.
3006   
3007   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3008
3009 - [Peter Wu brought this change]
3010
3011   cmake: use LIBCURL_VERSION from curlver.h
3012   
3013   This matches the behavior from autotools. The auxiliary major, minor
3014   and patch components are not needed anymore and therefore removed.
3015   
3016   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3017
3018 - [Peter Wu brought this change]
3019
3020   cmake: add SUPPORT_FEATURES and SUPPORT_PROTOCOLS
3021   
3022   For compatibility with autoconf, it will be used later for curl-config
3023   and pkg-config. Not all features and or protocols can be enabled as
3024   these are missing additional checks (see new TODOs).
3025   
3026   SUPPORT_PROTOCOLS is partially scripted (grep for SUPPORT_PROTOCOLS=)
3027   and manually verified/modified. SUPPORT_FEATURES is manually added.
3028   
3029   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3030
3031 - cmake: add CMake/Macros.cmake to the release tarball
3032
3033 - test545: make it not use a trailing zero
3034   
3035   CURLOPT_COPYPOSTFIELDS with a given CURLOPT_POSTFIELDSIZE does not
3036   require a trailing zero of the data and by making sure this test doesn't
3037   use one we know it works (combined with valgrind).
3038
3039 Steve Holme (16 Oct 2014)
3040 - ntlm: Fixed empty type-2 decoded message info text
3041   
3042   Updated the info text when the base-64 decode of the type-2 message
3043   returns a null buffer to be more specific.
3044
3045 - ntlm: Fixed empty/bad base-64 decoded buffer return codes
3046
3047 - ntlm: Avoid unnecessary buffer allocation for SSPI based type-2 token
3048
3049 Daniel Stenberg (16 Oct 2014)
3050 - httpcustomheader.c: make use of more CURLOPT_HTTPHEADER features
3051   
3052   ... and only do a single request for clarity.
3053
3054 Steve Holme (15 Oct 2014)
3055 - sasl_sspi: Fixed some typos
3056
3057 - sasl_sspi: Fixed Kerberos response buffer not being allocated when using SSO
3058
3059 Daniel Stenberg (15 Oct 2014)
3060 - [Bruno Thomsen brought this change]
3061
3062   mk-ca-bundle: added SHA-384 signature algorithm
3063   
3064   Certificates based on SHA-1 are being phased out[1].
3065   So we should expect a rise in certificates based on SHA-2.
3066   Adding SHA-384 as a valid signature algorithm.
3067   
3068   [1] https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/
3069   
3070   Signed-off-by: Bruno Thomsen <bth@kamstrup.dk>
3071
3072 Patrick Monnerat (14 Oct 2014)
3073 - OS400: fix bugs in curl_*escape_ccsid() and reduce variables scope
3074
3075 - Implement pinned public key in GSKit backend
3076
3077 Daniel Stenberg (14 Oct 2014)
3078 - CURLOPT_TLSAUTH_*.3: fix reference typos
3079
3080 - cleanups: reduce variable scope
3081   
3082   cppcheck pointed these out.
3083
3084 - singleipconnect: remove dead assignment never used
3085   
3086   cppcheck pointed this out.
3087
3088 - pinning: minor code style policing
3089
3090 Patrick Monnerat (13 Oct 2014)
3091 - Factorize pinned public key code into generic file handling and backend specific
3092
3093 - vtls: remove QsoSSL
3094
3095 - gskit: supply dummy randomization function
3096
3097 - vtls/*: deprecate have_curlssl_md5sum and set-up default md5sum implementation
3098
3099 Daniel Stenberg (13 Oct 2014)
3100 - [Peter Wu brought this change]
3101
3102   tests: move TESTCASES to Makefile.inc, add show for cmake
3103   
3104   This change allows runtests.pl to be run from the CMake builddir:
3105   
3106       export srcdir=/tmp/curl/tests;
3107       perl -I$srcdir $srcdir/runtests.pl -l
3108   
3109   In order to make this possible, all test cases have been moved from
3110   Makefile.am to Makefile.inc.
3111   
3112   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3113
3114 - [Peter Wu brought this change]
3115
3116   cmake: enable IPv6 by default if available
3117   
3118   ENABLE_IPV6 depends on HAVE_GETADDRINFO or you will get a
3119   Curl_getaddrinfo_ex error. Enable IPv6 by default, disabling it if
3120   struct sockaddr_in6 is not found in netinet/in.h.
3121   
3122   Note that HAVE_GETADDRINFO_THREADSAFE is still not set as it needs more
3123   platform checks even though POSIX requires a thread-safe getaddrinfo.
3124   
3125   Verified on Arch Linux x86_64 with glibc 2.20-2 and Linux 3.16-rc7.
3126   
3127   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3128
3129 - [Peter Wu brought this change]
3130
3131   cmake: build tool_hugehelp (ENABLE_MANUAL)
3132   
3133   Rather than always outputting an empty manual page for the '-M' option,
3134   generate a full manual page as done by autotools. For simplicity in
3135   CMake, always generate the gzipped page as it will not be used anyway
3136   when zlib is not available.
3137   
3138   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3139
3140 - [Peter Wu brought this change]
3141
3142   tests/http_pipe.py: Python 3 support
3143   
3144   The 2to3 tool converted socketserver (which I manually fixed up with an
3145   import fallback) and the print(e) line. The xrange option was converted
3146   to range, but it seems better to use the '*' operator here for
3147   simplicity.
3148   
3149   Signed-off-by: Peter Wu <peter@lekensteyn.nl>
3150
3151 - SECURITY: slightly nicer markdown format
3152
3153 - RELEASE-PROCEDURE: better markdown, more content
3154
3155 - RELEASE-NOTES: synced with 6637b237e6eb
3156   
3157   ... and bumped the planned release version.
3158
3159 - vtls: have vtls.h include the backend header files
3160   
3161   It turned out some features were not enabled in the build since for
3162   example url.c #ifdefs on features that are defined on a per-backend
3163   basis but vtls.h didn't include the backend headers.
3164   
3165   CURLOPT_CERTINFO was one such feature that was accidentally disabled.
3166
3167 - test2036: verify -O with no slash at all in the URL
3168   
3169   Similar to test 76 but that test's URL has a slash just no file name
3170   part.
3171
3172 - get_url_file_name: make no slash equal empty string
3173
3174 - get_url_file_name: never return a NULL string *and* OK
3175   
3176   Change 987a4a73 assumes that as it simplifies life in the calling
3177   function.
3178   
3179   Reported-by: Fabian Keil
3180
3181 - [Jakub Zakrzewski brought this change]
3182
3183   Cmake: Build with GSSAPI (MIT or Heimdal)
3184   
3185   It tries hard to recognise SDK's on different platforms. On windows MIT
3186   Kerberos installs SDK with other things and puts path into registry.
3187   Heimdal have separate zip archive. On linux pkg-config is tried, then
3188   krb5-config script and finally old-style libs and headers detection.
3189   
3190   Command line args:
3191   * CMAKE_USE_GSSAPI - enables GSSAPI detection
3192   * GSS_ROOT_DIR - if set, should point to the root of GSSAPI installation
3193                    (the one with include and lib directories)
3194
3195 - [Jakub Zakrzewski brought this change]
3196
3197   Cmake: Got rid of setup_curl_dependencies
3198   
3199   There is no need for such function. Include_directories propagate by
3200   themselves and having a function with one simple link statement makes
3201   little sense.
3202
3203 - [Jakub Zakrzewski brought this change]
3204
3205   Cmake: Avoid cycle directory dependencies.
3206   
3207   Because we prepended libraries to list, CMake had troubles resolving
3208   link directory order as it detected some cycles. Appending to list ensures
3209   that dependencies will preceed dependees.
3210
3211 - [Jakub Zakrzewski brought this change]
3212
3213   Cmake: Fix library list provided to cURL tests.
3214   
3215   The list must be set after those nice CMake tests as we mess with
3216   CMAKE_REQUIRED_LIBRARIES there.
3217
3218 - [Jakub Zakrzewski brought this change]
3219
3220   Cmake: Check for OpenSSL before OpenLDAP.
3221   
3222   OpenLDAP might have been build with OpenSSL. Checking for OpenLDAP first
3223   may result in undefined symbols. Of course, the found OpenSSL libraries
3224   must also be linked whenever OpenLDAP is.
3225
3226 - curl_multi_fdset.3: improved the formatting slightly
3227
3228 - curl_multi_fdset: explain the fd_set arguments
3229
3230 Kamil Dudka (8 Oct 2014)
3231 - nss: do not fail if a CRL is already cached
3232   
3233   This fixes a copy-paste mistake from commit 2968f957.
3234
3235 Patrick Monnerat (8 Oct 2014)
3236 - OS400: upgrade interface for pinned public key (no implementation yet)
3237
3238 Daniel Stenberg (8 Oct 2014)
3239 - FormAdd: precaution against memdup() of NULL pointer
3240   
3241   Coverity CID 252518. This function is in general far too complicated for
3242   its own good and really should be broken down into several smaller
3243   funcitons instead - but I'm adding this protection here now since it
3244   seems there's a risk the code flow can end up here and dereference a
3245   NULL pointer.
3246
3247 - operate: avoid NULL dereference
3248   
3249   Coverity CID 1241948. dumpeasysrc() would get called with
3250   config->current set to NULL which could be dereferenced by a warnf()
3251   call.
3252
3253 - do_sec_send: remove dead code
3254   
3255   Coverity CID 1241951. The condition 'len >= 0' would always be true at
3256   that point and thus not necessary to check for.
3257
3258 - krb5_encode: remove unused argument
3259   
3260   Coverity CID 1241957. Removed the unused argument. As this struct and
3261   pointer now are used only for krb5, there's no need to keep unused
3262   function arguments around.
3263
3264 - operate_do: skip superfluous check for NULL pointer
3265   
3266   Coverity CID 1243583. get_url_file_name() cannot fail and return a NULL
3267   file name pointer so skip the check for that - it tricks coverity into
3268   believing it can happen and it then warns later on when we use 'outfile'
3269   without checking for NULL.
3270
3271 - curl_easy_getinfo.3: spell-fix
3272   
3273   Reported-By: Luan Cestari
3274
3275 - [moparisthebest brought this change]
3276
3277   GnuTLS: Implement public key pinning
3278
3279 - [moparisthebest brought this change]
3280
3281   SSL: implement public key pinning
3282   
3283   Option --pinnedpubkey takes a path to a public key in DER format and
3284   only connect if it matches (currently only implemented with OpenSSL).
3285   
3286   Provides CURLOPT_PINNEDPUBLICKEY for curl_easy_setopt().
3287   
3288   Extract a public RSA key from a website like so:
3289   openssl s_client -connect google.com:443 2>&1 < /dev/null | \
3290   sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -noout -pubkey \
3291   | openssl rsa -pubin -outform DER > google.com.der
3292
3293 - multi_runsingle: fix possible memory leak
3294   
3295   Coverity CID 1202837. 'newurl' can in fact be allocated even when
3296   Curl_retry_request() returns failure so free it if need be.
3297
3298 - ares::Curl_resolver_cancel: skip checking for NULL conn
3299   
3300   Coverity CID 1243581. 'conn' will never be NULL here, and if it would be
3301   the subsequent statement would dereference it!
3302
3303 - parseconfig: skip a NULL check
3304   
3305   Coverity CID 1154198. This NULL check implies that the pointer _can_ be
3306   NULL at this point, which it can't. Thus it is dead code. It tricks
3307   static analyzers to warn about dereferencing the pointer since the code
3308   seems to imply it can be NULL.
3309
3310 - [Waldek Kozba brought this change]
3311
3312   multi-uv.c: call curl_multi_info_read() better
3313   
3314   Improves it for low-latency cases (like the communication with
3315   localhost)
3316
3317 - tool_go_sleep: use (void) to spell out we ignore the return value
3318   
3319   Coverity CID 1222080.
3320
3321 - ssh_statemach_act: split out assignment from check
3322   
3323   just a minor code style thing to make the code clearer
3324
3325 Marc Hoersken (4 Oct 2014)
3326 - curl_schannel.c: Fixed possible memory or handle leak
3327   
3328   First try to fix possible memory leaks, in this case:
3329   Only connssl->ctxt xor onnssl->cred being initialized.
3330
3331 Daniel Stenberg (4 Oct 2014)
3332 - getparameter: remove dead code
3333   
3334   Coverity CID 1061126. 'parse' will always be non-NULL here.
3335
3336 - getparameter: comment a switch FALLTHROUGH
3337   
3338   Coverity CID 1061118. Point out that it is on purpose.
3339
3340 - choose_mech: fix return code
3341   
3342   Coverity CID 1241950. The pointer is never NULL but it might point to
3343   NULL.
3344
3345 - Curl_sec_read_msg: spell out that we ignore return code
3346   
3347   Coverity CID 1241947. Since if sscanf() fails, the previously set value
3348   remains set.
3349
3350 - nonblock: call with (void) to show we ignore the return code
3351   
3352   Coverity pointed out several of these.
3353
3354 - parse_proxy: remove dead code.
3355   
3356   Coverity CID 982331.
3357
3358 - Curl_debug: document switch fallthroughs
3359
3360 - curl_multi_remove_handle: remove dead code
3361   
3362   Coverify CID 1157776. Removed a superfluous if() that always evaluated
3363   true (and an else clause that never ran), and then re-indented the
3364   function accordingly.
3365
3366 - Curl_pipeline_server_blacklisted: handle a NULL server name
3367   
3368   Coverity CID 1215284. The server name is extracted with
3369   Curl_copy_header_value() and passed in to this function, and
3370   copy_header_value can actually can fail and return NULL.
3371
3372 - ssh: comment "fallthrough" in switch statement
3373
3374 - [Jeremy Lin brought this change]
3375
3376   ssh: improve key file search
3377   
3378   For private keys, use the first match from: user-specified key file
3379   (if provided), ~/.ssh/id_rsa, ~/.ssh/id_dsa, ./id_rsa, ./id_dsa
3380   
3381   Note that the previous code only looked for id_dsa files. id_rsa is
3382   now generally preferred, as it supports larger key sizes.
3383   
3384   For public keys, use the user-specified key file, if provided.
3385   Otherwise, try to extract the public key from the private key file.
3386   This means that passing --pubkey is typically no longer required,
3387   and makes the key-handling behavior more like OpenSSH.
3388
3389 - CURLOPT_HTTPHEADER.3: libcurl doesn't copy the whole list
3390
3391 - detect_proxy: fix possible single-byte memory leak
3392   
3393   Coverity CID 1202836. If the proxy environment variable returned an empty
3394   string, it would be leaked. While an empty string is not really a proxy, other
3395   logic in this function already allows a blank string to be returned so allow
3396   that here to avoid the leak.
3397
3398 - multi_runsingle: fix memory leak
3399   
3400   Coverity CID 1202837. There's a potential risk that 'newurl' gets
3401   overwritten when it was already pointing to allocated memory.
3402
3403 - pop3_perform_authentication: fix memory leak
3404   
3405   Coverity CID 1215287. There's a potential risk for a memory leak in
3406   here, and moving the free call to be unconditional seems like a cheap
3407   price to remove the risk.
3408
3409 - imap_perform_authentication: fix memory leak
3410   
3411   Coverity CID 1215296. There's a potential risk for a memory leak in
3412   here, and moving the free call to be unconditional seems like a cheap
3413   price to remove the risk.
3414
3415 - wait_or_timeout: return failure when Curl_poll() fails
3416   
3417   Coverity detected this. CID 1241954. When Curl_poll() returns a negative value
3418   'mcode' was uninitialized. Pretty harmless since this is debug code only and
3419   would at worst cause an error to _not_ be returned...
3420
3421 - curl.1: mention quoting in the URL section
3422   
3423   and separate the example URLs with newlines
3424
3425 Steve Holme (30 Sep 2014)
3426 - [Bill Nagel brought this change]
3427
3428   smtp: Fixed intermittent "SSL3_WRITE_PENDING: bad write retry" error
3429   
3430   This patch fixes the "SSL3_WRITE_PENDING: bad write retry" error that
3431   sometimes occurs when sending an email over SMTPS with OpenSSL. OpenSSL
3432   appears to require the same pointer on a write that follows a retry
3433   (CURLE_AGAIN) as discussed here:
3434   
3435   http://stackoverflow.com/questions/2997218/why-am-i-getting-error1409f07fssl-routinesssl3-write-pending-bad-write-retr
3436
3437 Daniel Stenberg (30 Sep 2014)
3438 - RELEASE-NOTES: synced with 53cbea22310f15
3439
3440 - file: reject paths using embedded %00
3441   
3442   Mostly because we use C strings and they end at a binary zero so we know
3443   we can't open a file name using an embedded binary zero.
3444   
3445   Reported-by: research@g0blin.co.uk
3446
3447 Dan Fandrich (26 Sep 2014)
3448 - test506: Fixed a couple of memory leaks in test
3449
3450 Daniel Stenberg (25 Sep 2014)
3451 - [Yousuke Kimoto brought this change]
3452
3453   CURLOPT_COOKIELIST: Added "RELOAD" command
3454
3455 - [Michael Wallner brought this change]
3456
3457   CURLOPT_POSTREDIR.3: Added availability for CURL_REDIR_POST_303
3458
3459 - threaded-resolver: revert Curl_expire_latest() switch
3460   
3461   The switch to using Curl_expire_latest() in commit cacdc27f52b was a
3462   mistake and was against the advice even mentioned in that commit. The
3463   comparison in asyn-thread.c:Curl_resolver_is_resolved() makes
3464   Curl_expire() the suitable function to use.
3465   
3466   Bug: http://curl.haxx.se/bug/view.cgi?id=1426
3467   Reported-By: graysky
3468
3469 - libcurl docs: improvements all over
3470
3471 Steve Holme (19 Sep 2014)
3472 - build: Added WinIDN build configuration options
3473   
3474   Added initial support for WinIDN build configurations to the VC10+
3475   project files.
3476
3477 Daniel Stenberg (19 Sep 2014)
3478 - tutorial: signals aren't used for the threaded resolver
3479
3480 - FAQ: update the pronunciation section
3481   
3482   As we weren't using the correct phonetic description and doing it correctly
3483   involves funny letters that I'm sure will cause problems for people in a text
3484   document so I instead rephrased it and link to a WAV file with a person
3485   actually saying 'curl'.
3486   
3487   Reported-By: Dimitar Boevski
3488
3489 - CURLOPT_COOKIE*: added more cross-references
3490
3491 - BINDINGS: add node-libcurl
3492   
3493   Reported-By: Jonathan Cardoso Machado
3494   URL: http://curl.haxx.se/mail/lib-2014-09/0102.html
3495
3496 - README.http2: updated to reflect current status
3497
3498 - formdata: removed unnecessary USE_SSLEAY use
3499
3500 - curlssl: make tls backend symbols use curlssl in the name
3501
3502 - url: let the backend decide CURLOPT_SSL_CTX_ support
3503   
3504   ... to further remove specific TLS backend knowledge from url.c
3505
3506 - vtls: have the backend tell if it supports CERTINFO
3507
3508 - [Catalin Patulea brought this change]
3509
3510   configure: allow --with-ca-path with PolarSSL too
3511   
3512   Missed this in af45542c.
3513   
3514   Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
3515
3516 - CURLOPT_CAPATH: return failure if set without backend support
3517
3518 - [Tatsuhiro Tsujikawa brought this change]
3519
3520   http2: Fix busy loop when EOF is encountered
3521   
3522   Previously we did not handle EOF from underlying transport socket and
3523   wrongly just returned error code CURL_AGAIN from http2_recv, which
3524   caused busy loop since socket has been closed.  This patch adds the
3525   code to handle EOF situation and tells the upper layer that we got
3526   EOF.
3527
3528 Steve Holme (13 Sep 2014)
3529 - build: Added batch wrapper to checksrc.pl
3530
3531 - RELEASE-NOTES: Synced with bd3df5ec6d
3532
3533 - [Marcel Raad brought this change]
3534
3535   sasl_sspi: Fixed Unicode build
3536   
3537   Bug: http://curl.haxx.se/bug/view.cgi?id=1422
3538   Verified-by: Steve Holme
3539
3540 Daniel Stenberg (12 Sep 2014)
3541 - libcurl-tutorial.3: fix GnuTLS link to thread-safety guidelines
3542   
3543   The former link was turned into a 404 at some point.
3544   
3545   Reported-By: Askar Safin
3546
3547 - contributors.sh: split list of names at comma
3548   
3549   ... to support a list of names provided in a commit message.
3550
3551 Steve Holme (12 Sep 2014)
3552 - [Ulrich Telle brought this change]
3553
3554   ntlm: Fixed HTTP proxy authentication when using Windows SSPI
3555   
3556   Removed ISC_REQ_* flags from calls to InitializeSecurityContext to fix
3557   bug in NTLM handshake for HTTP proxy authentication.
3558   
3559   NTLM handshake for HTTP proxy authentication failed with error
3560   SEC_E_INVALID_TOKEN from InitializeSecurityContext for certain proxy
3561   servers on generating the NTLM Type-3 message.
3562   
3563   The flag ISC_REQ_CONFIDENTIALITY seems to cause the problem according
3564   to the observations and suggestions made in a bug report for the
3565   QT project (https://bugreports.qt-project.org/browse/QTBUG-17322).
3566   
3567   Removing all the flags solved the problem.
3568   
3569   Bug: http://curl.haxx.se/mail/lib-2014-08/0273.html
3570   Reported-by: Ulrich Telle
3571   Assisted-by: Steve Holme, Daniel Stenberg
3572
3573 Daniel Stenberg (12 Sep 2014)
3574 - [Ray Satiro brought this change]
3575
3576   newlines: fix mixed newlines to LF-only
3577   
3578   I use the curl repo mainly on Windows with the typical Windows git
3579   checkout which converts the LF line endings in the curl repo to CRLF
3580   automatically on checkout. The automatic conversion is not done on files
3581   in the repo with mixed line endings. I recently noticed some weird
3582   output with projects/build-openssl.bat that I traced back to mixed line
3583   endings, so I scanned the repo and there are files (excluding the
3584   test data) that have mixed line endings.
3585   
3586   I used this command below to do the scan. Unfortunately it's not as easy
3587   as git grep, at least not on Windows. This gets the names of all the
3588   files in the repo's HEAD, gets each of those files raw from HEAD, checks
3589   for mixed line endings of both LF and CRLF, and prints the name if
3590   mixed. I excluded path tests/data/test* because those can have mixed
3591   line endings if I understand correctly.
3592   
3593   for f in `git ls-tree --name-only --full-tree -r HEAD`;
3594   do if [ -n "${f##tests/data/test*}" ];
3595       then git show "HEAD:$f" | \
3596           perl -0777 -ne 'exit 1 if /([^\r]\n.*\r\n)|(\r\n.*[^\r]\n)/';
3597       if [ $? -ne 0 ];
3598           then echo "$f";
3599       fi;
3600   fi;
3601   done
3602
3603 - [Viktor Szakáts brought this change]
3604
3605   mk-ca-bundle.pl: converted tabs to spaces, deleted trailing spaces
3606
3607 - ROADMAP: markdown eats underscores
3608   
3609   It interprets them as italic indictors unless we backtick the word.
3610
3611 - ROADMAP: tiny formatting edit for nicer web output
3612
3613 Steve Holme (10 Sep 2014)
3614 - ROADMAP.md: Updated GSSAPI authentication following 7.38.0 additions
3615
3616 - INTERNALS: Added email and updated Kerberos details
3617
3618 - FEATURES: Updated Kerberos details
3619   
3620   Added support for Kerberos 5 to the email protocols following the recent
3621   additions in 7.38.0.
3622   
3623   Removed Kerberos 4 as this has been gone for a while now.
3624
3625 Daniel Stenberg (10 Sep 2014)
3626 - [Paul Howarth brought this change]
3627
3628   openssl: build fix for versions < 0.9.8e
3629   
3630   Bug: http://curl.haxx.se/mail/lib-2014-09/0064.html
3631
3632 - mk-ca-bundle.pl: first, try downloading HTTPS with curl
3633   
3634   As a sort of step forward, this script will now first try to get the
3635   data from the HTTPS URL using curl, and only if that fails it will
3636   switch back to the HTTP transfer using perl's native LWP functionality.
3637   To reduce the risk of this script being tricked.
3638   
3639   Using HTTPS to get a cert bundle introduces a chicken-and-egg problem so
3640   we can't really ever completely disable HTTP, but chances are that most
3641   users already have a ca cert bundle that trusts the mozilla.org site
3642   that this script downloads from.
3643   
3644   A future version of this script will probably switch to require a
3645   dedicated "insecure" command line option to allow downloading over HTTP
3646   (or unverified HTTPS).
3647
3648 - LICENSE-MIXING: removed krb4 info
3649   
3650   krb4 has been dropped since a while now
3651
3652 - bump: on the 7.38.1-DEV train now!
3653
3654 - SSLCERTS: minor updates
3655   
3656   Edited format to look better on the web, added a "it is about trust"
3657   section.
3658
3659 Version 7.38.0 (10 Sep 2014)
3660
3661 Daniel Stenberg (10 Sep 2014)
3662 - dist: two cmake files are no more
3663   
3664   CMake/FindOpenSSL.cmake and FindZLIB.cmake are gone since 14aa8f0c117b
3665
3666 - RELEASE-NOTES: final update for 7.38.0
3667
3668 - cookies: reject incoming cookies set for TLDs
3669   
3670   Test 61 was modified to verify this.
3671   
3672   CVE-2014-3620
3673   
3674   Reported-by: Tim Ruehsen
3675   URL: http://curl.haxx.se/docs/adv_20140910B.html
3676
3677 - [Tim Ruehsen brought this change]
3678
3679   cookies: only use full host matches for hosts used as IP address
3680   
3681   By not detecting and rejecting domain names for partial literal IP
3682   addresses properly when parsing received HTTP cookies, libcurl can be
3683   fooled to both send cookies to wrong sites and to allow arbitrary sites
3684   to set cookies for others.
3685   
3686   CVE-2014-3613
3687   
3688   Bug: http://curl.haxx.se/docs/adv_20140910A.html
3689
3690 - HISTORY: fix the 1998 title position
3691
3692 - HISTORY: extended and now markdown
3693
3694 - SSLCERTS: converted to markdown
3695   
3696   Only minor edits to make it generate nice HTML output using markdown, as
3697   this document serves both in source release tarballs as on the web site.
3698   
3699   URL: http://curl.haxx.se/docs/sslcerts.html
3700
3701 - ftp-wildcard.c: spell fix
3702   
3703   Reported-By: Frank Gevaerts
3704
3705 - RELEASE-NOTES: synced with 921a0c22a6f
3706
3707 - THANKS: synced with RELEASE-NOTES for 921a0c22a6f
3708
3709 - polarassl: avoid memset() when clearing the first byte is enough
3710
3711 - [Catalin Patulea brought this change]
3712
3713   polarssl: support CURLOPT_CAPATH / --capath
3714   
3715   Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
3716
3717 - SECURITY: eh, make more sense!
3718
3719 - SECURITY: how to join the curl-security list
3720
3721 - RELEASE-NOTES: fix the required nghttp2 version typo
3722
3723 - [Brandon Casey brought this change]
3724
3725   Ensure progress.size_dl/progress.size_ul are always >= 0
3726   
3727   Historically the default "unknown" value for progress.size_dl and
3728   progress.size_ul has been zero, since these values are initialized
3729   implicitly by the calloc that allocates the curl handle that these
3730   variables are a part of.  Users of curl that install progress
3731   callbacks may expect these values to always be >= 0.
3732   
3733   Currently it is possible for progress.size_dl and progress.size_ul
3734   to by set to a value of -1, if Curl_pgrsSetDownloadSize() or
3735   Curl_pgrsSetUploadSize() are passed a "size" of -1 (which a few
3736   places currently do, and a following patch will add more).  So
3737   lets update Curl_pgrsSetDownloadSize() and Curl_pgrsSetUploadSize()
3738   so they make sure that these variables always contain a value that
3739   is >= 0.
3740   
3741   Updates test579 and test599.
3742   
3743   Signed-off-by: Brandon Casey <drafnel@gmail.com>
3744
3745 Steve Holme (7 Sep 2014)
3746 - tests: Added test1420 to the makefile
3747
3748 - test1420: Removed unnecessary CURLOPT setting
3749
3750 - tests: Added more "Clear Text" authentication keywords
3751
3752 - tests: Updated "based on" text due to email test renumbering
3753
3754 - tests: For consistency added --libcurl to test name
3755
3756 - tests: Added --libcurl for IMAP test case
3757
3758 - multi.c: Avoid invalid memory read after free() from commit 3c8c873252
3759   
3760   As the current element in the list is free()d by Curl_llist_remove(),
3761   when the associated connection is pending, reworked the loop to avoid
3762   accessing the next element through e->next afterward.
3763
3764 - multi.c: Fixed compilation warning from commit 3c8c873252
3765   
3766   warning: implicit conversion from enumeration type 'CURLMcode' to
3767   different enumeration type 'CURLcode'
3768
3769 - url.c: Use CURLAUTH_NONE constant rather than 0
3770   
3771   Small follow up to commit 898808fa8c to use auth constants rather than
3772   hard code value when clearing picked authentication mechanism.
3773
3774 - RELEASE-NOTES: Synced with fd1ce3856a
3775
3776 Nick Zitzmann (4 Sep 2014)
3777 - [Vilmos Nebehaj brought this change]
3778
3779   darwinssl: Use CopyCertSubject() to check CA cert.
3780   
3781   SecCertificateCopyPublicKey() is not available on iPhone. Use
3782   CopyCertSubject() instead to see if the certificate returned by
3783   SecCertificateCreateWithData() is valid.
3784   
3785   Reported-by: Toby Peterson
3786
3787 Steve Holme (4 Sep 2014)
3788 - RELEASE-NOTES: Clarify email Kerberos support is currently via Windows SSPI
3789
3790 Daniel Stenberg (4 Sep 2014)
3791 - MAIL-ETIQUETTE: "1.8 I posted, now what?"
3792
3793 - CURLOPT_CA*: better refering between *CAINFO and *CAPATH
3794   
3795   ... and a minor wording edit
3796
3797 - THANKS: added Dennis Clarke
3798   
3799   Dennis Clarke from Blastwave.org for ensuring that nightly builds run
3800   smooth on Solaris!
3801
3802 - curl_multi_cleanup: remove superfluous NULL assigns
3803   
3804   ... as the struct is free()d in the end anyway. It was first pointed out
3805   to me that one of the ->msglist assignments were supposed to have been
3806   ->pending but was a copy and paste mistake when I realized none of the
3807   clearing of pointers had to be there.
3808
3809 - multi: convert CURLM_STATE_CONNECT_PEND handling to a list
3810   
3811   ... instead of scanning through all handles, stash only the actual
3812   handles that are in that state in the new ->pending list and scan that
3813   list only. It should be mostly empty or very short. And only used for
3814   pipelining.
3815   
3816   This avoids a rather hefty slow-down especially notable if you add many
3817   handles to the same multi handle. Regression introduced in commit
3818   0f147887 (version 7.30.0).
3819   
3820   Bug: http://curl.haxx.se/mail/lib-2014-07/0206.html
3821   Reported-by: David Meyer
3822
3823 - RELEASE-NOTES: synced with e608324f9f9
3824
3825 - [Andre Heinecke brought this change]
3826
3827   polarssl: implement CURLOPT_SSLVERSION
3828   
3829   Forwards the setting as minimum ssl version (if set) to polarssl.  If
3830   the server does not support the requested version the SSL Handshake will
3831   fail.
3832   
3833   Bug: http://curl.haxx.se/bug/view.cgi?id=1419
3834
3835 nickzman (1 Sep 2014)
3836 - Merge pull request #115 from ldx/darwinsslfixpr
3837   
3838   darwinssl: now accepts cacert bundles in PEM format in addition to single certs
3839
3840 Vilmos Nebehaj (1 Sep 2014)
3841 - Check CA certificate in curl_darwinssl.c.
3842   
3843   SecCertificateCreateWithData() returns a non-NULL SecCertificateRef even
3844   if the buffer holds an invalid or corrupt certificate. Call
3845   SecCertificateCopyPublicKey() to make sure cacert is a valid
3846   certificate.
3847
3848 Daniel Stenberg (31 Aug 2014)
3849 - low-speed-limit: avoid timeout flood
3850   
3851   Introducing Curl_expire_latest(). To be used when we the code flow only
3852   wants to get called at a later time that is "no later than X" so that
3853   something can be checked (and another timeout be added).
3854   
3855   The low-speed logic for example could easily be made to set very many
3856   expire timeouts if it would be called faster or sooner than what it had
3857   set its own timer and this goes for a few other timers too that aren't
3858   explictiy checked for timer expiration in the code.
3859   
3860   If there's no condition the code that says if(time-passed >= TIME), then
3861   Curl_expire_latest() is preferred to Curl_expire().
3862   
3863   If there exists such a condition, it is on the other hand important that
3864   Curl_expire() is used and not the other.
3865   
3866   Bug: http://curl.haxx.se/mail/lib-2014-06/0235.html
3867   Reported-by: Florian Weimer
3868
3869 - [Michael Wallner brought this change]
3870
3871   resolve: cache lookup for async resolvers
3872   
3873   While waiting for a host resolve, check if the host cache may have
3874   gotten the name already (by someone else), for when the same name is
3875   resolved by several simultanoues requests.
3876   
3877   The resolver thread occasionally gets stuck in getaddrinfo() when the
3878   DNS or anything else is crappy or slow, so when a host is found in the
3879   DNS cache, leave the thread alone and let itself cleanup the mess.
3880
3881 Vilmos Nebehaj (30 Aug 2014)
3882 - Fix CA certificate bundle handling in darwinssl.
3883   
3884   If the --cacert option is used with a CA certificate bundle that
3885   contains multiple CA certificates, iterate through it, adding each
3886   certificate as a trusted root CA.
3887
3888 Daniel Stenberg (29 Aug 2014)
3889 - [Askar Safin brought this change]
3890
3891   getinfo-times: Typo fixed
3892
3893 - [Askar Safin brought this change]
3894
3895   libcurl.3: Typo fixed
3896
3897 - curl_formadd.3: setting CURLFORM_CONTENTSLENGTH 0 zero means strlen
3898
3899 - curl.1: add an example for -H
3900
3901 - FAQ: mention -w in the 4.20 answer as well
3902
3903 - FAQ: 4.20 curl doesn't return error for HTTP non-200 responses
3904
3905 - CURLOPT_NOBODY.3: clarify this option is for downloads
3906   
3907   When enabling CURLOPT_NOBODY, libcurl effectively switches off upload
3908   mode and will do a download (without a body). This is now better
3909   explained in this man page.
3910   
3911   Bug: http://curl.haxx.se/mail/lib-2014-08/0236.html
3912   Reported-by: John Coffey
3913
3914 - INTERNALS: nghttp2 must be 0.6.0 or later
3915
3916 - [Tatsuhiro Tsujikawa brought this change]
3917
3918   Compile with latest nghttp2
3919
3920 Dan Fandrich (26 Aug 2014)
3921 - THANKS: removed a few more duplicates
3922
3923 Daniel Stenberg (26 Aug 2014)
3924 - RELEASE-NOTES: synced with 007242257683a
3925   
3926   ... and bumped the contributor amount after recount
3927
3928 - THANKS: added 52 missing contributors
3929   
3930   I re-ran contributors.sh on all changes since 7.10 and I found these
3931   contributors who are mentioned in the commits but never were added to
3932   THANKS before!
3933   
3934   I also removed a couple of duplicates (mostly due to different
3935   spellings).
3936
3937 - contributors: grep and sort case insensitively
3938
3939 - [Michael Osipov brought this change]
3940
3941   configure.ac: Add support for recent GSS-API implementations for HP-UX
3942   
3943   By default, configure script assumes that libcurl will use the
3944   HP-supplied GSS-API implementation which does not have krb5-config.
3945   If a dev needs a more recent version which has that config script,
3946   the change will allow to pass an appropriate GSSAPI_ROOT.
3947
3948 - CONNECT: close proxy connections that fail to CONNECT
3949   
3950   This is usually due to failed auth. There's no point in us keeping such
3951   a connection alive since it shouldn't be re-used anyway.
3952   
3953   Bug: http://curl.haxx.se/bug/view.cgi?id=1381
3954   Reported-by: Marcel Raad
3955
3956 - RELEASE-NOTES: added two missing HTTP/2 bug fixes
3957   
3958   And renamed all http2 references to HTTP/2 in this file
3959
3960 - RELEASE-NOTES: synced with f646e9075f47
3961
3962 - [Jakub Zakrzewski brought this change]
3963
3964   Cmake: Possibility to use OpenLDAP, OpenSSL, LibSSH2 on windows
3965   
3966   At this point I can build libcurl on windows. It provides at least the same
3967   list of protocols as for linux build and works with our software.
3968
3969 - [Jakub Zakrzewski brought this change]
3970
3971   Cmake: Removed repeated content from ending blocks
3972   
3973   They are unnecesary in modern CMake and removing them improves readability.
3974
3975 - [Jakub Zakrzewski brought this change]
3976
3977   Cmake: Removed some useless empty SET statements.
3978   
3979   Undefined variables resolve to empty strings and we do not ever test if
3980   the variable is defined thus those SETs are superfluous.
3981
3982 - [Jakub Zakrzewski brought this change]
3983
3984   Cmake: Removed useless comments from CMakeLists.txt
3985   
3986   They look like some relics after changes.
3987
3988 - [Jakub Zakrzewski brought this change]
3989
3990   Cmake: Don't check for all headers each time
3991   
3992   One header at a time is the right way. Apart from that the output on
3993   windows goes from:
3994   ...
3995   -- Looking for include files I:/src/libssh2-1.4.3/include/libssh2.h, ws2tcpip.h
3996   -- Looking for include files I:/src/libssh2-1.4.3/include/libssh2.h, ws2tcpip.h
3997   - found
3998   -- Looking for 3 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins
3999   ock2.h
4000   -- Looking for 3 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins
4001   ock2.h - found
4002   -- Looking for 4 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., stdi
4003   o.h
4004   -- Looking for 4 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., stdi
4005   o.h - found
4006   -- Looking for 5 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wind
4007   ows.h
4008   -- Looking for 5 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wind
4009   ows.h - found
4010   -- Looking for 6 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins
4011   ock.h
4012   -- Looking for 6 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., wins
4013   ock.h - found
4014   -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/
4015   filio.h
4016   -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/
4017   filio.h - not found
4018   -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/
4019   ioctl.h
4020   -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/
4021   ioctl.h - not found
4022   -- Looking for 7 include files I:/src/libssh2-1.4.3/include/libssh2.h, ..., sys/
4023   resource.h
4024   ...
4025   
4026   To much nicer:
4027   ...
4028   -- Looking for ws2tcpip.h
4029   -- Looking for ws2tcpip.h - found
4030   -- Looking for winsock2.h
4031   -- Looking for winsock2.h - found
4032   -- Looking for stdio.h
4033   -- Looking for stdio.h - found
4034   -- Looking for windows.h
4035   -- Looking for windows.h - found
4036   -- Looking for winsock.h
4037   -- Looking for winsock.h - found
4038   -- Looking for sys/filio.h
4039   -- Looking for sys/filio.h - not found
4040   -- Looking for sys/ioctl.h
4041   -- Looking for sys/ioctl.h - not found
4042   -- Looking for sys/resource.h
4043
4044 - [Jakub Zakrzewski brought this change]
4045
4046   Cmake: Append OpenSSL include directory to search path
4047   
4048   At this point I can build libcurl with OpenSSL, OpenLDAP and LibSSH2.
4049   Supported protocols are at least:
4050   HTTP, HTTPS, FTP, SFTP, TFTP, LDAP, LDAPS, POP3, SMTP
4051   (those are the ones we have regression tests for
4052   in our product's testsuite)
4053
4054 - [Jakub Zakrzewski brought this change]
4055
4056   Cmake: Search for liblber, LDAP SSL headers, swith for using OpenLDAP code.
4057
4058 - [Jakub Zakrzewski brought this change]
4059
4060   Cmake: LibSSH2 detection and use.
4061
4062 - [Jakub Zakrzewski brought this change]
4063
4064   Cmake: Moved macros out of the main CMakeLists.txt
4065
4066 - [Jakub Zakrzewski brought this change]
4067
4068   Cmake: Added missing protocol-disable switches
4069   
4070   They already have their defines in config.h. This makes it possible to
4071   disable the protocols from command line during configure step.
4072
4073 - [Jakub Zakrzewski brought this change]
4074
4075   Cmake: Made boolean defines be defined to "1" instead of "ON"
4076   
4077   It's by convention, for compatibility and because the comments say so.
4078   Just mabe someone have written a test like "#if HAVE_XX==1"
4079
4080 - [Jakub Zakrzewski brought this change]
4081
4082   Cmake: Require at least CMake 2.8.
4083   
4084   CMake 2.6 is already a bit old. Many bugs have been fixed since
4085   its release. We use 2.8 in our company and we have no intention
4086   of polluting our environment with old software, so 2.6 would
4087   not be tested. This shouldn't be a problem since all one need
4088   to build CMake from source is C and C++ compiler.
4089
4090 - disconnect: don't touch easy-related state on disconnects
4091   
4092   This was done to make sure NTLM state that is bound to a connection
4093   doesn't survive and gets used for the subsequent request - but
4094   disconnects can also be done to for example make room in the connection
4095   cache and thus that connection is not strictly related to the easy
4096   handle's current operation.
4097   
4098   The http authentication state is still kept in the easy handle since all
4099   http auth _except_ NTLM is connection independent and thus survive over
4100   multiple connections.
4101   
4102   Bug: http://curl.haxx.se/mail/lib-2014-08/0148.html
4103   Reported-by: Paras S
4104
4105 - curl.1: clarify --limit-rate's effect on both directions
4106   
4107   Bug: http://curl.haxx.se/bug/view.cgi?id=1414
4108   Reported-by: teo8976
4109
4110 - curl.1: mention the --post30x options within the --location desc
4111
4112 Dan Fandrich (22 Aug 2014)
4113 - sasl: Fixed a memory leak on OOM
4114
4115 Daniel Stenberg (22 Aug 2014)
4116 - [Frank Meier brought this change]
4117
4118   NTLM: ignore CURLOPT_FORBID_REUSE during NTLM HTTP auth
4119   
4120   Problem: if CURLOPT_FORBID_REUSE is set, requests using NTLM failed
4121   since NTLM requires multiple requests that re-use the same connection
4122   for the authentication to work
4123   
4124   Solution: Ignore the forbid reuse flag in case the NTLM authentication
4125   handshake is in progress, according to the NTLM state flag.
4126   
4127   Fixed known bug #77.
4128
4129 Steve Holme (22 Aug 2014)
4130 - openssl.c: Fixed longer than 79 columns
4131
4132 - openssl.c: Fixed compilation warning
4133   
4134   warning: declaration of 'minor' shadows a global declaration
4135
4136 Daniel Stenberg (21 Aug 2014)
4137 - [Haris Okanovic brought this change]
4138
4139   win32: Fixed WinSock 2 #if
4140   
4141   A conditionally compiled block in connect.c references WinSock 2
4142   symbols, but used `#ifdef HAVE_WINSOCK_H` instead of `#ifdef
4143   HAVE_WINSOCK2_H`.
4144   
4145   Bug: http://curl.haxx.se/mail/lib-2014-08/0155.html
4146
4147 - Curl_disconnect: don't free the URL
4148   
4149   The URL is not a property of the connection so it should not be freed in
4150   the connection disconnect but in the Curl_close() that frees the easy
4151   handle.
4152   
4153   Bug: http://curl.haxx.se/mail/lib-2014-08/0148.html
4154   Reported-by: Paras S
4155
4156 - help output: minor whitespace edits
4157   
4158   Should've been amended in the previous commit but wasn't due to a
4159   mistake.
4160
4161 - [Zearin brought this change]
4162
4163   help output: use â‰¥2 spaces between option and description
4164   
4165   ... and some other cleanups
4166
4167 - FAQ: some actually sometimes get paid...
4168
4169 Steve Holme (17 Aug 2014)
4170 - sasl_sspi: Fixed a memory leak with the GSSAPI base-64 decoded challenge
4171
4172 - sasl_sspi: Renamed GSSAPI mutual authentication parameter
4173   
4174   ...From "mutual" to "mutual_auth" which better describes what it is.
4175
4176 - sasl_sspi: Corrected some of the GSSAPI security message error codes
4177   
4178   Corrected a number of the error codes that can be returned from the
4179   Curl_sasl_create_gssapi_security_message() function when things go
4180   wrong.
4181   
4182   It makes more sense to return CURLE_BAD_CONTENT_ENCODING when the
4183   inbound security challenge can't be decoded correctly or doesn't
4184   contain the KERB_WRAP_NO_ENCRYPT flag and CURLE_OUT_OF_MEMORY when
4185   EncryptMessage() fails. Unfortunately the previous error code of
4186   CURLE_RECV_ERROR was a copy and paste mistakes on my part and should
4187   have been correct in commit 4b491c675f :(
4188
4189 - docs: Escaped single backslash
4190
4191 - TODO: Updated following GSSAPI (Kerberos V5) additions
4192   
4193   Updated "FTP 4.6 GSSAPI via Windows SSPI" and "SASL 14.1 Other
4194   authentication mechanisms" following recent additions.
4195   
4196   Added SASL 14.2 GSSAPI via GSS-API libraries.
4197
4198 - CURLOPT_USERNAME.3: Added Kerberos V5 and NTLM domain information
4199   
4200   This repeats what has already been documented in both the curl manpage
4201   and CURLOPT_USERPWD documentation but is provided here for completeness
4202   as someone may not especially read the latter when using libcurl.
4203
4204 - CURLOPT_USERPWD.3: Updated following Kerberos V5 SSPI changes
4205   
4206   Added information about Kerberos V5 requiring the domain part in the
4207   user name.
4208   
4209   Mentioned that the user name can be specified in UPN format, and not
4210   just in Down-Level Logon Name format, following the information
4211   added in commit 7679cb3fa8 reworking the exisitng information in the
4212   process.
4213
4214 - docs: Added Kerberos V5 and NTLM domain information to --user
4215
4216 - docs: Added Kerberos V5 to the --user SSPI current credentials usage
4217
4218 - sasl_sspi: Tell the server we don't support a GSSAPI receive buffer
4219
4220 - smtp: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPI
4221
4222 - pop3: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPI
4223
4224 - imap: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPI
4225
4226 - email: Added mutual authentication flag
4227
4228 Daniel Stenberg (15 Aug 2014)
4229 - RELEASE-NOTES: synced with 0187c9e11d079
4230
4231 - http: fix the Content-Range: parser
4232   
4233   ... to handle "*/[total]". Also, removed the strange hack that made
4234   CURLOPT_FAILONERROR on a 416 response after a *RESUME_FROM return
4235   CURLE_OK.
4236   
4237   Reported-by: Dimitrios Siganos
4238   Bug: http://curl.haxx.se/mail/lib-2014-06/0221.html
4239
4240 Steve Holme (14 Aug 2014)
4241 - email: Introduced the GSSAPI states
4242
4243 - curl_sasl_sspi.c: Fixed more compilation warnings from commit 4b491c675f
4244   
4245   warning: unused variable 'resp'
4246   
4247   warning: no previous prototype for 'Curl_sasl_gssapi_cleanup'
4248
4249 - SHA-1: 61c93383b7f6cf79d12ff99e9dced1d1cc2a7064
4250   
4251   * curl_sasl_sspi.c: Fixed compilation warning from commit 4b491c675f
4252   
4253   warning: declaration of 'result' shadows a previous local
4254
4255 - curl_sasl.h: Fixed compilation error from commit 4b491c675f
4256   
4257   warning: 'struct kerberos5data' declared inside parameter list
4258   
4259   Due to missing forward declaration.
4260
4261 - urldata.h: Fixed compilation warnings from commit 3ec253532e
4262   
4263   warning: extra tokens at end of #endif directive
4264
4265 - sasl_sspi: Added GSSAPI message functions
4266
4267 - urldata: Introduced a GSSAPI (Kerberos V5) data structure
4268   
4269   Added a kerberos5data structure which is similar in nature to the
4270   ntlmdata and negotiatedata structures.
4271
4272 - sspi: Moved KERB_WRAP_NO_ENCRYPT from socks_sspi module
4273   
4274   In preparation for the upcoming SSPI implementation of GSSAPI
4275   authentication, moved the definition of KERB_WRAP_NO_ENCRYPT from
4276   socks_sspi.c to curl_sspi.h allowing it to be shared amongst other
4277   SSPI based code.
4278
4279 Daniel Stenberg (13 Aug 2014)
4280 - mk-ca-bundle.pl: add missing $
4281
4282 - mk-ca-bundle.pl: switched to using hg.mozilla.org
4283   
4284   ... as mxr.mozilla.org is due to be retired.
4285   
4286   The new host doesn't support If-Modified-Since nor ETags, meaning that
4287   the script will now defer to download and do a post-transfer checksum
4288   check to see if a new output is to be generated. The new output format
4289   will hold the SHA1 checksum of the source file for that purpose.
4290   
4291   We call this version 1.22
4292   
4293   Reported-by: Ed Morley
4294   Bug: http://curl.haxx.se/bug/view.cgi?id=1409
4295
4296 - [Jose Alf brought this change]
4297
4298   openssl: fix version report for the 0.9.8 branch
4299   
4300   Fixed libcurl to correctly output the newer versions of OpenSSL 0.9.8,
4301   starting from openssl-0.9.8za.
4302
4303 - [Frank Meier brought this change]
4304
4305   create_conn: prune dead connections
4306   
4307   Bringing back the old functionality that was mistakenly removed when the
4308   connection cache was remade. When creating a new connection, all the
4309   existing ones are checked and those that are known to be dead get
4310   disconnected for real and removed from the connection cache. It helps
4311   the cache from holding on to very many stale connections and aids in
4312   keeping down the number of system sockets in wait states.
4313   
4314   Help-by: Jonatan Vela <jonatan.vela@ergon.ch>
4315   
4316   Bug: http://curl.haxx.se/mail/lib-2014-06/0189.html
4317
4318 Kamil Dudka (11 Aug 2014)
4319 - docs/SSLCERTS: update the section about NSS database
4320   
4321   Bug: http://curl.haxx.se/mail/lib-2014-07/0335.html
4322   Reported-by: David Shaw
4323
4324 Daniel Stenberg (11 Aug 2014)
4325 - [Peter Wang brought this change]
4326
4327   Curl_poll + Curl_wait_ms: fix timeout return value
4328   
4329   Curl_poll and Curl_wait_ms require the fix applied to Curl_socket_check
4330   in commits b61e8b8 and c771968:
4331   
4332   When poll or select are interrupted and coincides with the timeout
4333   elapsing, the functions return -1 indicating an error instead of 0 for
4334   the timeout.
4335
4336 Steve Holme (10 Aug 2014)
4337 - config-tpf.h: Fixed up line lengths > 79 characters
4338
4339 - config-symbian.h: Fixed up line lengths > 79 characters
4340
4341 - tool_hugehelp.c.cvs: Added copyright
4342   
4343   Added copyright due to warning from checksrc.pl.
4344
4345 - RELEASE-NOTES: Synced with cd6ecf6a89
4346
4347 - sasl_sspi: Fixed hard coded buffer for response generation
4348   
4349   Given the SSPI package info query indicates a token size of 4096 bytes,
4350   updated to use a dynamic buffer for the response message generation
4351   rather than a fixed buffer of 1024 bytes.
4352
4353 - sasl_sspi: Fixed missing free of challenge buffer on SPN failure
4354
4355 - http_negotiate_sspi: Tidy up to remove the get_gss_name() function
4356   
4357   Due to the reduction of code in commit 3b924b29 of get_gss_name() the
4358   function isn't necessary anymore.
4359
4360 - http_negotiate_sspi: Use a dynamic buffer for SPN generation
4361   
4362   Updated to use a dynamic buffer for the SPN generation via the recently
4363   introduced Curl_sasl_build_spn() function rather than a fixed buffer of
4364   1024 characters, which should have been more than enough, but by using
4365   the new function removes the need for another variable sname to do the
4366   wide character conversion in Unicode builds.
4367
4368 - sasl: Tidy up to rename SPN variable from URI
4369
4370 - sasl: Use a dynamic buffer for SPN generation
4371   
4372   Updated Curl_sasl_create_digest_md5_message() to use a dynamic buffer
4373   for the SPN generation via the recently introduced Curl_sasl_build_spn()
4374   function rather than a fixed buffer of 128 characters.
4375
4376 - sasl_sspi: Fixed SPN not being converted to wchar under Unicode builds
4377   
4378   Curl_sasl_create_digest_md5_message() would simply cast the SPN variable
4379   to a TCHAR when calling InitializeSecurityContext(). This meant that,
4380   under Unicode builds, it would not be valid wide character string.
4381   
4382   Updated to use the recently introduced Curl_sasl_build_spn() function
4383   which performs the correct conversion for us.
4384
4385 - sasl: Introduced Curl_sasl_build_spn() for building a SPN
4386   
4387   Various parts of the libcurl source code build a SPN for inclusion in
4388   authentication data. This information is either used by our own native
4389   generation routines or passed to authentication functions in third-party
4390   libraries such as SSPI. However, some of these instances use fixed
4391   buffers rather than dynamically allocated ones and not all of those that
4392   should, convert to wide character strings in Unicode builds.
4393   
4394   Implemented a common function that generates a SPN and performs the
4395   wide character conversion where necessary.
4396
4397 - sasl_sspi: Fixed memory leak with not releasing Package Info struct
4398   
4399   Curl_sasl_create_digest_md5_message() wouldn't free the Package Info
4400   structure after QuerySecurityPackageInfo() had allocated it.
4401
4402 - [Michael Osipov brought this change]
4403
4404   docs: Update SPNEGO and GSS-API related doc sections
4405   
4406   Reflect recent changes in SPNEGO and GSS-API code in the docs.
4407   Update them with appropriate namings and remove visible spots for
4408   GSS-Negotiate.
4409
4410 - sspi: Minor code tidy up to standardise coding style
4411   
4412   Following the recent changes and in attempt to align the SSPI based
4413   authentication code performed the following:
4414   
4415   * Use NULL and SECBUFFVERSION rather than hard coded constants.
4416   * Avoid comparison of zero in if statements.
4417   * Standardised the buf and desc setup code.
4418
4419 - schannel: Fixed compilation warning in vtls.c
4420   
4421   vtls.c:688:43: warning: unused parameter 'data'
4422
4423 - tool_getparam.c: Fixed compilation warning
4424   
4425   warning: `orig_opt' might be used uninitialized in this function
4426
4427 - RELEASE-NOTES: Synced with 159c3aafd8
4428
4429 Daniel Stenberg (8 Aug 2014)
4430 - curl_ntlm_msgs: make < 80 columns wide
4431
4432 Steve Holme (8 Aug 2014)
4433 - ntlm: Fixed hard coded buffer for SSPI based auth packet generation
4434   
4435   Given the SSPI package info query indicates a token size of 2888 bytes,
4436   and as with the Winbind code and commit 9008f3d56, use a dynamic buffer
4437   for the Type-1 and Type-3 message generation rather than a fixed buffer
4438   of 1024 bytes.
4439
4440 - ntlm: Added support for SSPI package info query
4441   
4442   Just as with the SSPI implementations of Digest and Negotiate added a
4443   package info query so that libcurl can a) return a more appropriate
4444   error code when the NTLM package is not supported and b) it can be of
4445   use later to allocate a dynamic buffer for the Type-1 and Type-3
4446   output tokens rather than use a fixed buffer of 1024 bytes.
4447
4448 Daniel Stenberg (7 Aug 2014)
4449 - http2: added some more logging for debugging stream problems
4450
4451 - [Tatsuhiro Tsujikawa brought this change]
4452
4453   HTTP/2: Reset promised stream, not its associated stream.
4454
4455 - [Tatsuhiro Tsujikawa brought this change]
4456
4457   HTTP/2: Move :authority before non-pseudo header fields
4458
4459 - http2: show the received header for better debugging
4460
4461 - openssl: replace call to OPENSSL_config
4462   
4463   OPENSSL_config() is "strongly recommended" to use but unfortunately that
4464   function makes an exit() call on wrongly formatted config files which
4465   makes it hard to use in some situations. OPENSSL_config() itself calls
4466   CONF_modules_load_file() and we use that instead and we ignore its
4467   return code!
4468   
4469   Reported-by: Jan Ehrhardt
4470   Bug: http://curl.haxx.se/bug/view.cgi?id=1401
4471
4472 Dan Fandrich (7 Aug 2014)
4473 - [Fabian Keil brought this change]
4474
4475   runtests.pl: Pad test case numbers with up to three zeroes
4476   
4477   Test case numbers with four digits have been available for a
4478   while now.
4479
4480 Steve Holme (7 Aug 2014)
4481 - docs: Added Negotiate to the SSPI current credentials usage description
4482
4483 - TODO: HTTP Digest via Windows SSPI
4484
4485 - TODO: FTP GSSAPI via Windows SSPI
4486
4487 - http_negotiate_sspi: Fixed specific username and password not working
4488   
4489   Bug: http://curl.haxx.se/mail/lib-2014-06/0224.html
4490   Reported-by: Leonardo Rosati
4491
4492 - http_negotiate_sspi: Fixed endless unauthorized loop in commit 6bc76194e8
4493   
4494   If the server rejects our authentication attempt and curl hasn't
4495   called CompleteAuthToken() then the status variable will be
4496   SEC_I_CONTINUE_NEEDED and not SEC_E_OK.
4497   
4498   As such the existing detection mechanism for determining whether or not
4499   the authentication process has finished is not sufficient.
4500   
4501   However, the WWW-Authenticate: Negotiate header line will not contain
4502   any data when the server has exhausted the negotiation, so we can use
4503   that coupled with the already allocated context pointer.
4504
4505 Daniel Stenberg (5 Aug 2014)
4506 - RELEASE-NOTES: synced with 5b37db44a3eb
4507
4508 Dan Fandrich (5 Aug 2014)
4509 - parsedate.c: fix the return code for an overflow edge condition
4510
4511 Daniel Stenberg (5 Aug 2014)
4512 - [Toby Peterson brought this change]
4513
4514   darwinssl: don't use strtok()
4515   
4516   The GetDarwinVersionNumber() function uses strtok, which is not
4517   thread-safe.
4518
4519 - Curl_ossl_version: adapted to detect BoringSSL
4520   
4521   This seems to be the way it should work. Right now we can't build with
4522   BoringSSL and try this out properly due to a minor API breakage.
4523
4524 - Curl_ossl_version: detect and show libressl
4525   
4526   LibreSSL is otherwise OpenSSL API compliant (so far)
4527
4528 - [Tatsuhiro Tsujikawa brought this change]
4529
4530   HTTP/2: Fix infinite loop in readwrite_data()
4531   
4532   To prevent infinite loop in readwrite_data() function when stream is
4533   reset before any response body comes, reset closed flag to false once
4534   it is evaluated to true.
4535
4536 Dan Fandrich (3 Aug 2014)
4537 - gtls: only define Curl_gtls_seed if Nettle is not being used
4538
4539 - ssl: provide Curl_ssl_backend even if no SSL library is available
4540
4541 Daniel Stenberg (2 Aug 2014)
4542 - [Tatsuhiro Tsujikawa brought this change]
4543
4544   HTTP2: Support expect: 100-continue
4545   
4546   "Expect: 100-continue", which was once deprecated in HTTP/2, is now
4547   resurrected in HTTP/2 draft 14.  This change adds its support to
4548   HTTP/2 code.  This change also includes stricter header field
4549   checking.
4550
4551 - CURLOPT_SSL_VERIFYPEER.3. add a warning about disabling it
4552
4553 - FEATURES: minor update
4554
4555 - openssl: make ossl_send return CURLE_OK better
4556   
4557   Previously it only returned a CURLcode for errors, which is when it
4558   returns a different size than what was passed in to it.
4559   
4560   The http2 code only checked the curlcode and thus failed.
4561
4562 - RELEASE-NOTES: synced with 7bb4c8cadb5d0
4563
4564 - [Michael Wallner brought this change]
4565
4566   CURLOPT_HEADEROPT.3: typo: do -> to
4567
4568 - [Marcel Raad brought this change]
4569
4570   schannel: use CryptGenRandom for random numbers
4571   
4572   This function is available for every Windows version since Windows 95/NT.
4573   
4574   reference:
4575   http://msdn.microsoft.com/en-us/library/windows/desktop/aa379942.aspx
4576
4577 - curl_version_info.3: 'ssl_version_num' is always 0
4578   
4579   ... and has been so since 2005
4580
4581 - ssl: generalize how the ssl backend identifier is set
4582   
4583   Each backend now defines CURL_SSL_BACKEND accordingly. Added the *AXTLS
4584   one which was missing previously.
4585
4586 Dan Fandrich (31 Jul 2014)
4587 - axtls: define curlssl_random using axTLS's PRNG
4588
4589 - cyassl: fix the test for ASN_NO_SIGNER_E
4590   
4591   It's an enum so a macro test won't work. The CyaSSL changelog doesn't
4592   say exactly when this error code was introduced, but it's likely
4593   to be 2.7.0.
4594
4595 - cyassl: use RNG_GenerateBlock to generate a good random number
4596
4597 - opts: fixed some typos
4598
4599 - smtp: fixed a segfault during test 1320 torture test
4600   
4601   Under these circumstances, the connection hasn't been fully established
4602   and smtp_connect hasn't been called, yet smtp_done still calls the state
4603   machine which dereferences the NULL conn pointer in struct pingpong.
4604
4605 Daniel Stenberg (30 Jul 2014)
4606 - vtls: repair build without TLS support
4607   
4608   ... by defining Curl_ssl_random() properly
4609
4610 - polarssl: provide a (weak) random function
4611   
4612   This now provides a weak random function since PolarSSL doesn't have a
4613   quick and easy way to provide a good one. It does however provide the
4614   framework to make one so it _can_ and _should_ be done...
4615
4616 - [Michael Wallner brought this change]
4617
4618   curl_tlsinfo -> curl_tlssessioninfo
4619
4620 - cyassl: use the default (weeker) random
4621   
4622   I couldn't find any dedicated function in its API to get a "good" random
4623   with.
4624
4625 - cyassl: made it compile with version 2.0.6 again
4626   
4627   ASN_NO_SIGNER_E didn't exist back then!
4628
4629 - vtls: make the random function mandatory in the TLS backend
4630   
4631   To force each backend implementation to really attempt to provide proper
4632   random. If a proper random function is missing, then we can explicitly
4633   make use of the default one we use when TLS support is missing.
4634   
4635   This commit makes sure it works for darwinssl, gnutls, nss and openssl.
4636
4637 - libcurl.m4: include the standard source header
4638   
4639   ... with permission from David Shaw
4640
4641 Kamil Dudka (28 Jul 2014)
4642 - nss: do not check the version of NSS at run time
4643   
4644   The minimal required version of NSS is 3.14.x so it does not make sense
4645   to check for NSS 3.12.0+ at run time.
4646
4647 Daniel Stenberg (28 Jul 2014)
4648 - [Anthon Pang brought this change]
4649
4650   curl.h: bring back CURLE_OBSOLETE16
4651   
4652   Removing defines, even obsolete ones that haven't been used for a very
4653   long time, still break a lot of applications.
4654   
4655   Bug: https://github.com/bagder/curl/pull/106
4656
4657 Dan Fandrich (26 Jul 2014)
4658 - [Fabian Keil brought this change]
4659
4660   tests: Fix a couple of incomplete response lines
4661
4662 - [Fabian Keil brought this change]
4663
4664   runtests.pl: Remove filteroff() which hasn't been used since 2001
4665
4666 - [Fabian Keil brought this change]
4667
4668   runtests.pl: Don't expect $TESTDIR/DISABLED to exist
4669   
4670   If a non-standard $TESTDIR is used the file may not be necessary.
4671   
4672   Previously a "missing" file resulted in the warning:
4673   readline() on closed filehandle D at ./runtests.pl line 4940.
4674
4675 - [Fabian Keil brought this change]
4676
4677   getpart.pm: Fix a comment typo
4678
4679 Daniel Stenberg (25 Jul 2014)
4680 - c-ares: fix build without IPv6 support
4681   
4682   Bug: http://curl.haxx.se/mail/lib-2014-07/0337.html
4683   Reported-by: Spork Schivago
4684
4685 - Curl_base64url_encode: unit-tested in 1302
4686
4687 - base64: added Curl_base64url_encode()
4688   
4689   This is now used by the http2 code. It has two different symbols at the
4690   end of the base64 table to make the output "url safe".
4691   
4692   Bug: https://github.com/tatsuhiro-t/nghttp2/issues/62
4693
4694 - [Marcel Raad brought this change]
4695
4696   SSPI Negotiate: Fix 3 memory leaks
4697   
4698   Curl_base64_decode allocates the output string by itself and two other
4699   strings were not freed either.
4700
4701 - symbols: CURL_VERSION_GSSNEGOTIATE is deprecated
4702
4703 - test1013.pl: GSS-Negotiate doesn't exist as a feature anymore
4704
4705 - [Sergey Nikulov brought this change]
4706
4707   libtest: fixed duplicated line in Makefile
4708   
4709   Bug: https://github.com/bagder/curl/pull/105
4710
4711 Patrick Monnerat (23 Jul 2014)
4712 - GSSAPI: remove useless *_MECHANISM defines.
4713
4714 Daniel Stenberg (23 Jul 2014)
4715 - findprotocol: show unsupported protocol within quotes
4716   
4717   ... to aid when for example prefixed with a space or other weird
4718   character.
4719
4720 Patrick Monnerat (23 Jul 2014)
4721 - GSSAPI: private export mechanisms OIDs. OS400: Make RPG binding up to date.
4722
4723 Daniel Stenberg (23 Jul 2014)
4724 - [Marcel Raad brought this change]
4725
4726   conncache: fix compiler warning
4727   
4728   warning C4267: '=' : conversion from 'size_t' to 'long', possible loss
4729   of data
4730   
4731   The member connection_id of struct connectdata is a long (always a
4732   32-bit signed integer on Visual C++) and the member next_connection_id
4733   of struct conncache is a size_t, so one of them should be changed to
4734   match the other.
4735   
4736   This patch the size_t in struct conncache to long (the less invasive
4737   change as that variable is only ever used in a single code line).
4738   
4739   Bug: http://curl.haxx.se/bug/view.cgi?id=1399
4740
4741 - RELEASE-NOTES: synced with 81cd24adb8b
4742
4743 - http2: more and better error checking
4744   
4745   1 - fixes the warnings when built without http2 support
4746   
4747   2 - adds CURLE_HTTP2, a new error code for errors detected by nghttp2
4748   basically when they are about http2 specific things.
4749
4750 Dan Fandrich (23 Jul 2014)
4751 - cyassl.c: return the correct error code on no CA cert
4752   
4753   CyaSSL 3.0.0 returns a unique error code if no CA cert is available,
4754   so translate that into CURLE_SSL_CACERT_BADFILE when peer verification
4755   is requested.
4756
4757 Daniel Stenberg (23 Jul 2014)
4758 - symbols-in-versions: new SPNEGO/GSS-API symbols in 7.38.0
4759
4760 - test1013.pl: remove SPNEGO/GSS-API tweaks
4761   
4762   No longer necessary after Michael Osipov's rework
4763
4764 - http_negotiate: remove unused variable
4765
4766 - [Michael Osipov brought this change]
4767
4768   docs: Improve inline GSS-API naming in code documentation
4769
4770 - [Michael Osipov brought this change]
4771
4772   curl.h/features: Deprecate GSS-Negotiate macros due to bad naming
4773   
4774   - Replace CURLAUTH_GSSNEGOTIATE with CURLAUTH_NEGOTIATE
4775   - CURL_VERSION_GSSNEGOTIATE is deprecated which
4776     is served by CURL_VERSION_SSPI, CURL_VERSION_GSSAPI and
4777     CURUL_VERSION_SPNEGO now.
4778   - Remove display of feature 'GSS-Negotiate'
4779
4780 - [Michael Osipov brought this change]
4781
4782   configure/features: Add feature and version info for GSS-API and SPNEGO
4783
4784 - [Michael Osipov brought this change]
4785
4786   HTTP: Remove checkprefix("GSS-Negotiate")
4787   
4788   That auth mech has never existed neither on MS nor on Unix side.
4789   There is only Negotiate over SPNEGO.
4790
4791 - [Michael Osipov brought this change]
4792
4793   curl_gssapi: Add macros for common mechs and pass them appropriately
4794   
4795   Macros defined: KRB5_MECHANISM and SPNEGO_MECHANISM called from
4796   HTTP, FTP and SOCKS on Unix
4797
4798 - CONNECT: Revert Curl_proxyCONNECT back to 7.29.0 design
4799   
4800   This reverts commit cb3e6dfa3511 and instead fixes the problem
4801   differently.
4802   
4803   The reverted commit addressed a test failure in test 1021 by simplifying
4804   and generalizing the code flow in a way that damaged the
4805   performance. Now we modify the flow so that Curl_proxyCONNECT() again
4806   does as much as possible in one go, yet still do test 1021 with and
4807   without valgrind. It failed due to mistakes in the multi state machine.
4808   
4809   Bug: http://curl.haxx.se/bug/view.cgi?id=1397
4810   Reported-by: Paul Saab
4811
4812 - [Marcel Raad brought this change]
4813
4814   url.c: use the preferred symbol name: *READDATA
4815   
4816   with CURL_NO_OLDIES defined, it doesn't compile because this deprecated
4817   symbol (*INFILE) is used
4818   
4819   Bug: http://curl.haxx.se/bug/view.cgi?id=1398
4820
4821 Dan Fandrich (19 Jul 2014)
4822 - [Alessandro Ghedini brought this change]
4823
4824   CURLOPT_CHUNK_BGN_FUNCTION: fix typo
4825
4826 Kamil Dudka (18 Jul 2014)
4827 - [Alessandro Ghedini brought this change]
4828
4829   build: link curl to NSS libraries when NSS support is enabled
4830   
4831   This fixes a build failure on Debian caused by commit
4832   24c3cdce88f39731506c287cb276e8bf4a1ce393.
4833   
4834   Bug: http://curl.haxx.se/mail/lib-2014-07/0209.html
4835
4836 Steve Holme (17 Jul 2014)
4837 - build: Removed unnecessary XML Documentation file directive from VC8 to VC12
4838   
4839   The curl tool project files for VC8 to VC12 would set this setting to
4840   $(IntDir) which is the Visual Studio default value. To avoid confusion
4841   when viewing settings from within Visual Studio and for consistency
4842   with the libcurl project files removed this setting.
4843   
4844   Conflicts:
4845         projects/Windows/VC10/src/curlsrc.tmpl
4846         projects/Windows/VC11/src/curlsrc.tmpl
4847         projects/Windows/VC12/src/curlsrc.tmpl
4848         projects/Windows/VC8/src/curlsrc.tmpl
4849         projects/Windows/VC9/src/curlsrc.tmpl
4850
4851 - build: Removed unnecessary Precompiled Header file directive in VC7 to VC12
4852   
4853   The curl tool project files for VC7 to VC12 would set this settings to
4854   $(IntDir)$(TargetName).pch which is the Visual Studio default value. To
4855   avoid confusion when viewing settings from within Visual Studio and for
4856   consistency with the libcurl project files removed this setting.
4857   
4858   Conflicts:
4859         projects/Windows/VC10/src/curlsrc.tmpl
4860         projects/Windows/VC11/src/curlsrc.tmpl
4861         projects/Windows/VC12/src/curlsrc.tmpl
4862         projects/Windows/VC8/src/curlsrc.tmpl
4863         projects/Windows/VC9/src/curlsrc.tmpl
4864
4865 - build: Removed unnecessary ASM and Object file directives in VC7 to VC12
4866   
4867   The curl tool project files for VC7 to VC12 would set these settings to
4868   $(IntDir) which is the Visual Studio default value. To avoid confusion
4869   when viewing settings from within Visual Studio and for consistency
4870   with the libcurl project files removed these two settings.
4871
4872 Daniel Stenberg (17 Jul 2014)
4873 - [Dave Reisner brought this change]
4874
4875   src/Makefile.am: add .DELETE_ON_ERROR
4876   
4877   This prevents targets like tool_hugehelp.c from leaving around
4878   half-constructed files if the rule fails with GNU make.
4879   
4880   Reported-by: Rafaël Carré <funman@videolan.org>
4881
4882 - THANKS: added new contributors from 7.37.1 announcement
4883
4884 Dan Fandrich (17 Jul 2014)
4885 - testcurl.pl: log the value of --runtestopts in the test header
4886
4887 Daniel Stenberg (16 Jul 2014)
4888 - RELEASE-NOTES: cleared, working towards next release
4889
4890 - curl_gssapi.c: make line shorter than 80 columns
4891
4892 - [David Woodhouse brought this change]
4893
4894   Fix negotiate auth to proxies to track correct state
4895
4896 - [David Woodhouse brought this change]
4897
4898   Don't abort Negotiate auth when the server has a response for us
4899   
4900   It's wrong to assume that we can send a single SPNEGO packet which will
4901   complete the authentication. It's a *negotiation* â€” the clue is in the
4902   name. So make sure we handle responses from the server.
4903   
4904   Curl_input_negotiate() will already handle bailing out if it thinks the
4905   state is GSS_S_COMPLETE (or SEC_E_OK on Windows) and the server keeps
4906   talking to us, so we should avoid endless loops that way.
4907
4908 - [David Woodhouse brought this change]
4909
4910   Don't clear GSSAPI state between each exchange in the negotiation
4911   
4912   GSSAPI doesn't work very well if we forget everything ever time.
4913   
4914   XX: Is Curl_http_done() the right place to do the final cleanup?
4915
4916 - [David Woodhouse brought this change]
4917
4918   Use SPNEGO for HTTP Negotiate
4919   
4920   This is the correct way to do SPNEGO. Just ask for it
4921   
4922   Now I correctly see it trying NTLMSSP authentication when a Kerberos ticket
4923   isn't available. Of course, we bail out when the server responds with the
4924   challenge packet, since we don't expect that. But I'll fix that bug next...
4925
4926 - [David Woodhouse brought this change]
4927
4928   Remove all traces of FBOpenSSL SPNEGO support
4929   
4930   This is just fundamentally broken. SPNEGO (RFC4178) is a protocol which
4931   allows client and server to negotiate the underlying mechanism which will
4932   actually be used to authenticate. This is *often* Kerberos, and can also
4933   be NTLM and other things. And to complicate matters, there are various
4934   different OIDs which can be used to specify the Kerberos mechanism too.
4935   
4936   A SPNEGO exchange will identify *which* GSSAPI mechanism is being used,
4937   and will exchange GSSAPI tokens which are appropriate for that mechanism.
4938   
4939   But this SPNEGO implementation just strips the incoming SPNEGO packet
4940   and extracts the token, if any. And completely discards the information
4941   about *which* mechanism is being used. Then we *assume* it was Kerberos,
4942   and feed the token into gss_init_sec_context() with the default
4943   mechanism (GSS_S_NO_OID for the mech_type argument).
4944   
4945   Furthermore... broken as this code is, it was never even *used* for input
4946   tokens anyway, because higher layers of curl would just bail out if the
4947   server actually said anything *back* to us in the negotiation. We assume
4948   that we send a single token to the server, and it accepts it. If the server
4949   wants to continue the exchange (as is required for NTLM and for SPNEGO
4950   to do anything useful), then curl was broken anyway.
4951   
4952   So the only bit which actually did anything was the bit in
4953   Curl_output_negotiate(), which always generates an *initial* SPNEGO
4954   token saying "Hey, I support only the Kerberos mechanism and this is its
4955   token".
4956   
4957   You could have done that by manually just prefixing the Kerberos token
4958   with the appropriate bytes, if you weren't going to do any proper SPNEGO
4959   handling. There's no need for the FBOpenSSL library at all.
4960   
4961   The sane way to do SPNEGO is just to *ask* the GSSAPI library to do
4962   SPNEGO. That's what the 'mech_type' argument to gss_init_sec_context()
4963   is for. And then it should all Just Workâ„¢.
4964   
4965   That 'sane way' will be added in a subsequent patch, as will bug fixes
4966   for our failure to handle any exchange other than a single outbound
4967   token to the server which results in immediate success.
4968
4969 - [David Woodhouse brought this change]
4970
4971   ntlm_wb: Avoid invoking ntlm_auth helper with empty username
4972
4973 - [David Woodhouse brought this change]
4974
4975   ntlm_wb: Fix hard-coded limit on NTLM auth packet size
4976   
4977   Bumping it to 1KiB in commit aaaf9e50ec is all very well, but having hit
4978   a hard limit once let's just make it cope by reallocating as necessary.
4979
4980 Version 7.37.1 (16 Jul 2014)
4981
4982 Daniel Stenberg (16 Jul 2014)
4983 - RELEASE-NOTES: synced with 4cb2521595
4984
4985 - test506: verify aa6884845168
4986   
4987   After the fixed cookie lock deadlock, this test now passes and it
4988   detects double-locking and double-unlocking of mutexes.
4989
4990 - [Yousuke Kimoto brought this change]
4991
4992   cookie: avoid mutex deadlock
4993   
4994   ... by removing the extra mutex locks around th call to
4995   Curl_flush_cookies() which takes care of the locking itself already.
4996   
4997   Bug: http://curl.haxx.se/mail/lib-2014-02/0184.html
4998
4999 - gnutls: fix compiler warning
5000   
5001   conversion to 'int' from 'long int' may alter its value
5002
5003 Dan Fandrich (15 Jul 2014)
5004 - test320: strip off the actual negotiated cipher width
5005   
5006   It's irrelevant to the test, and will change depending on which SSL
5007   library is being used by libcurl.
5008
5009 - gnutls: detect lack of SRP support in GnuTLS at run-time and try without
5010   
5011   Reported-by: David Woodhouse
5012
5013 Daniel Stenberg (14 Jul 2014)
5014 - [MichaÅ‚ Górny brought this change]
5015
5016   configure: respect host tool prefix for krb5-config
5017   
5018   Use ${host_alias}-krb5-config if available. This improves cross-
5019   compilation support and fixes multilib on Gentoo (at least).
5020
5021 - [David Woodhouse brought this change]
5022
5023   gnutls: handle IP address in cert name check
5024   
5025   Before GnuTLS 3.3.6, the gnutls_x509_crt_check_hostname() function
5026   didn't actually check IP addresses in SubjectAltName, even though it was
5027   explicitly documented as doing so. So do it ourselves...
5028
5029 Dan Fandrich (14 Jul 2014)
5030 - build: set _POSIX_PTHREAD_SEMANTICS on Solaris to get proper getpwuid_r
5031
5032 Daniel Stenberg (14 Jul 2014)
5033 - RELEASE-NOTES: next one is called 7.37.1
5034
5035 Dan Fandrich (13 Jul 2014)
5036 - gnutls: improved error message if setting cipher list fails
5037   
5038   Reported-by: David Woodhouse
5039
5040 - netrc: fixed thread safety problem by using getpwuid_r if available
5041   
5042   The old way using getpwuid could cause problems in programs that enable
5043   reading from netrc files simultaneously in multiple threads.
5044   
5045   Reported-by: David Woodhouse
5046
5047 - RELEASE-NOTES: add the reporter of the previous bug fix
5048
5049 - netrc: treat failure to find home dir same as missing netrc file
5050   
5051   This previously caused a fatal error (with a confusing error code, at
5052   that).
5053   
5054   Reported by: Glen A Johnson Jr.
5055
5056 Steve Holme (12 Jul 2014)
5057 - RELEASE-NOTES: Synced with aaaf9e50ec
5058
5059 - ntlm_wb: Fixed buffer size not being large enough for NTLMv2 sessions
5060   
5061   Bug: http://curl.haxx.se/mail/lib-2014-07/0103.html
5062   Reported-by: David Woodhouse
5063
5064 - build: Fixed overridden compiler PDB settings in VC7 to VC12
5065   
5066   The curl tool project files for VC7 to VC12 would override the default
5067   setting with the output filename being the same as the linker PDB file.
5068   As such the compiler file would be overwritten with the linker file
5069   for all debug builds.
5070   
5071   To avoid this overwrite and for consistency with the libcurl project
5072   files, removed the setting to force the default filename to be used.
5073
5074 Dan Fandrich (12 Jul 2014)
5075 - tests: added globbing keyword to URL globbing tests
5076
5077 - Fixed some "statement not reached" warnings
5078
5079 - gnutls: fixed a couple of uninitialized variable references
5080
5081 - gnutls: fixed compilation against versions < 2.12.0
5082   
5083   The AES-GCM ciphers were added to GnuTLS as late as ver. 3.0.1 but
5084   the code path in which they're referenced here is only ever used for
5085   somewhat older GnuTLS versions. This caused undeclared identifier errors
5086   when compiling against those.
5087
5088 - gnutls: explicitly added SRP to the priority string
5089   
5090   This seems to have become necessary for SRP support to work starting
5091   with GnuTLS ver. 2.99.0. Since support for SRP was added to GnuTLS
5092   before the function that takes this priority string, there should be no
5093   issue with backward compatibility.
5094
5095 - tests: adjust for capitalization differences in newer gnutls-serv
5096
5097 - test320/1/2/4: fix the port number substitution variables
5098   
5099   These tests have been broken since commit 1958fe57 in Oct. 2011
5100
5101 - tests: document more test identifiers and variables
5102
5103 - gnutls: ignore invalid certificate dates with VERIFYPEER disabled
5104   
5105   This makes the behaviour consistent with what happens if a date can
5106   be extracted from the certificate but is expired.
5107
5108 Steve Holme (10 Jul 2014)
5109 - CURLOPT_UPLOAD: Corrected argument type
5110
5111 Daniel Stenberg (9 Jul 2014)
5112 - FAQ: expand the thread-safe section
5113   
5114   ... with a mention of *NOSIGNAL, based on talk in bug #1386
5115
5116 Dan Fandrich (9 Jul 2014)
5117 - url.c: Fixed memory leak on OOM
5118   
5119   This showed itself on some systems with torture failures
5120   in tests 1060 and 1061
5121
5122 - Update instances of some obsolete CURLOPTs to their new names
5123
5124 Daniel Stenberg (5 Jul 2014)
5125 - [Marcel Raad brought this change]
5126
5127   compiler warnings: potentially uninitialized variables
5128   
5129   ... pointed out by MSVC2013
5130   
5131   Bug: http://curl.haxx.se/bug/view.cgi?id=1391
5132
5133 Kamil Dudka (4 Jul 2014)
5134 - nss: make the list of CRL items global
5135   
5136   Otherwise NSS could use an already freed item for another connection.
5137
5138 - nss: fix a memory leak when CURLOPT_CRLFILE is used
5139
5140 - nss: make crl_der allocated on heap
5141   
5142   ... and spell it as crl_der instead of crlDER
5143
5144 - nss: let nss_{cache,load}_crl return CURLcode
5145
5146 - tool: oops, forgot to include <plarenas.h>
5147   
5148   ... that contains the declaration of PL_ArenaFinish()
5149
5150 - tool: call PL_ArenaFinish() on exit if NSPR is used
5151   
5152   This prevents valgrind from reporting still reachable memory allocated
5153   by NSPR arenas (mainly the freelist).
5154   
5155   Reported-by: Hubert Kario
5156
5157 Daniel Stenberg (3 Jul 2014)
5158 - [Dimitrios Siganos brought this change]
5159
5160   example: use correct type (long) for CURLOPT_FOLLOWLOCATION
5161
5162 - [Dimitrios Siganos brought this change]
5163
5164   Document type of argument for CURLOPT_FOLLOWLOCATION.
5165
5166 - [Dimitrios Siganos brought this change]
5167
5168   Document type of argument for CURLOPT_ERRORBUFFER.
5169
5170 - [Dimitrios Siganos brought this change]
5171
5172   Document type of argument for CURLOPT_COPYPOSTFIELDS.
5173
5174 - [Dimitrios Siganos brought this change]
5175
5176   Document type of argument for CURLOPT_ADDRESS_SCOPE.
5177
5178 - curl.1: minor language fix
5179   
5180   Bug: http://curl.haxx.se/mail/archive-2014-07/0006.html
5181
5182 - [Ray Satiro brought this change]
5183
5184   progress callback: skip last callback update on errors
5185   
5186   When an error has been detected, skip the final forced call to the
5187   progress callback by making sure to pass the current return code
5188   variable in the Curl_done() call in the CURLM_STATE_DONE state.
5189   
5190   This avoids the "extra" callback that could occur even if you returned
5191   error from the progress callback.
5192   
5193   Bug: http://curl.haxx.se/mail/lib-2014-06/0062.html
5194   Reported by: Jonathan Cardoso Machado
5195
5196 Dan Fandrich (2 Jul 2014)
5197 - opts: fixed some CURLOPT references so they get turned into links
5198
5199 Kamil Dudka (2 Jul 2014)
5200 - tool: call PR_Cleanup() on exit if NSPR is used
5201   
5202   This prevents valgrind from reporting possibly lost memory that NSPR
5203   uses for file descriptor cache and other globally allocated internal
5204   data structures.
5205
5206 - nss: make the fallback to SSLv3 work again
5207   
5208   This feature was unintentionally disabled by commit ff92fcfb.
5209
5210 - nss: do not abort on connection failure
5211   
5212   ... due to calling SSL_VersionRangeGet() with NULL file descriptor
5213   
5214   reported-by: upstream tests 305 and 404
5215
5216 Dan Fandrich (1 Jul 2014)
5217 - opts: Document the socket callback function parameters
5218
5219 Steve Holme (28 Jun 2014)
5220 - opts: Fixed some typos
5221
5222 Dan Fandrich (25 Jun 2014)
5223 - curl_easy_setopt.3: fixed the error code for an unsupported option
5224
5225 - opts: added some DEFAULT and RETURN VALUE sections
5226
5227 Daniel Stenberg (21 Jun 2014)
5228 - libcurl docs: man page edits
5229   
5230   mainly to improve how the web versions render
5231
5232 Dan Fandrich (21 Jun 2014)
5233 - curl_easy_setopt.3: fixed some typos
5234
5235 Daniel Stenberg (21 Jun 2014)
5236 - lib man pages: update easy setopt option references
5237   
5238   ... by using the "\fIopt(3)\fP" syntax they will be linked properly when
5239   the web version of the page is generated.
5240
5241 - opts: the CURLOPT_SSL_ENABLE_*PN options are enabled by default
5242
5243 - [Colin Hogben brought this change]
5244
5245   lib: documentation updates in README.hostip
5246   
5247   c-ares now does support IPv6;
5248   avoid implying threaded resolver is Windows-only;
5249   two referenced source files were renamed in 7de2f92
5250
5251 - curl_easy_setopt.3: CURLOPT_POSTFIELDS is the exception
5252   
5253   ... to the always-copy-char *-argument.
5254   
5255   And fix some minor mistakes.
5256
5257 - curl_easy_setopt.3: refer to the individual man pages
5258   
5259   With all the new individual option man pages created, this now refers to
5260   each separate one instead of duplicaing the info. Also makes this page
5261   easier to overview.
5262
5263 Dan Fandrich (21 Jun 2014)
5264 - opts: fixed mancheck for out-of-tree builds
5265
5266 Daniel Stenberg (21 Jun 2014)
5267 - curl_easy_setopt.3: shorten
5268   
5269   shorten descriptions, mostly refer to the separate descriptions
5270
5271 - CURLOPT_DNS_LOCAL_IP4.3: better short desc
5272
5273 Dan Fandrich (20 Jun 2014)
5274 - opts: document CURLE_OUT_OF_MEMORY among other return values
5275
5276 - opts: fixed some typos
5277
5278 Daniel Stenberg (20 Jun 2014)
5279 - opts: various corrections
5280
5281 - opts: add the rest of the options
5282   
5283   ... and fixed mancheck to ignore obsolete options
5284
5285 - opts: the final bunch of options as man pages
5286   
5287   Now all current options have their own man pages.
5288
5289 - opts: 37 additional man pages
5290
5291 - CURLOPT_URL: move up the text from "Notes"
5292
5293 - ROADMAP: removed, now ROADMAP.md
5294
5295 - ROADMAP.md: make it markdown formatted
5296
5297 - ROADMAP: initial commit of "curl the next few years"
5298   
5299   To be further discussed, debated and edited
5300
5301 - opts: more man pages
5302
5303 - CURLOPT_UNRESTRICTED_AUTH.3: added missing 'T'
5304
5305 - opts: makefile now includes all current man pages
5306
5307 - opts: 11 more man pages
5308
5309 Dan Fandrich (18 Jun 2014)
5310 - opts: document CURLE_OUT_OF_MEMORY as RETURN VALUE
5311
5312 - opts: fixed a couple of typos
5313
5314 Patrick Monnerat (18 Jun 2014)
5315 - OS400: make it compilable again. Make RPG binding up to date.
5316
5317 - buildconf: do not search tools in current directory.
5318
5319 Dan Fandrich (18 Jun 2014)
5320 - curl.h: renamed CURLOPT_DEPRECATEDx to CURLOPT_OBSOLETEx
5321   
5322   This is consistent with the existing obsolete error code naming
5323   convention.
5324
5325 Daniel Stenberg (18 Jun 2014)
5326 - opts: 16 more man pages