                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

                                  Changelog

Version 7.53.1 (24 Feb 2017)

Daniel Stenberg (24 Feb 2017)
- release: 7.53.1

- Revert "tests: use consistent environment variables for setting charset"
  
  This reverts commit ecd1d020abdae3c3ce3643ddab3106501e62e7c0.
  
  That commit caused test failures on my Debian Linux machine for all
  changed test cases. We need to reconsider how that should get done.

Dan Fandrich (23 Feb 2017)
- tests: use consistent environment variables for setting charset
  
  Character set in POSIX is set by the locale defined (in decreasing order
  of precedence) by the LC_ALL, LC_CTYPE and LANG environment variables (I
  believe CHARSET is only historic). LC_ALL is cleared to ensure that
  LC_CTYPE takes effect, but LC_ALL is not used to set the locale to
  ensure that other parts of the locale aren't overriden, if set.  Since
  there doesn't seem to be a cross-platform way of specifying a UTF-8
  locale, and not all systems may support UTF-8, a <precheck> is used
  (where relevant) to skip the test if UTF-8 isn't in use.  Test 1035 was
  also converted to UTF-8 for consistency, as the actual character set
  used there is irrelevant to the test.

Jay Satiro (23 Feb 2017)
- url: Default the CA proxy bundle location to CURL_CA_BUNDLE
  
  If the compile-time CURL_CA_BUNDLE location is defined use it as the
  default value for the proxy CA bundle location, which is the same as
  what we already do for the regular CA bundle location.
  
  Ref: https://github.com/curl/curl/pull/1257

Daniel Stenberg (23 Feb 2017)
- [Sergii Pylypenko brought this change]

  rand: added missing #ifdef HAVE_FCNTL_H around fcntl.h header
  
  Closes #1285

- TODO: "OPTIONS *"
  
  Closes #1280

- RELEASE-NOTES: synced with 443e5b03a7d441

- THANKS-filter: shachaf

- [İsmail Dönmez brought this change]

  tests: Set CHARSET & LANG to UTF-8 in 1035, 2046 and 2047
  
  Closes #1283
  Fixes #1277

- bump: 7.53.1 coming up
  
  synced with df665f4df0f7a352

- formdata: check for EOF when reading from stdin
  
  Reported-by: shachaf@users.noreply.github.com
  
  Fixes #1281

Jay Satiro (22 Feb 2017)
- docs: gitignore curl.1
  
  curl.1 is generated by the cmdline-opts script since 4c49b83.

Daniel Stenberg (22 Feb 2017)
- TODO: HTTP Digest using SHA-256

- TODO: brotli is deployed widely now

Jay Satiro (21 Feb 2017)
- [Viktor Szakats brought this change]

  urldata: include curl_sspi.h when Windows SSPI is enabled
  
  f77dabe broke builds in Windows using Windows SSPI but not Windows SSL.
  
  Bug: https://github.com/curl/curl/issues/1276
  Reported-by: jveazey@users.noreply.github.com

- url: Improve CURLOPT_PROXY_CAPATH error handling
  
  - Change CURLOPT_PROXY_CAPATH to return CURLE_NOT_BUILT_IN if the option
    is not supported, which is the same as what we already do for
    CURLOPT_CAPATH.
  
  - Change the curl tool to handle CURLOPT_PROXY_CAPATH error
    CURLE_NOT_BUILT_IN as a warning instead of as an error, which is the
    same as what we already do for CURLOPT_CAPATH.
  
  - Fix CAPATH docs to show that CURLE_NOT_BUILT_IN is returned when the
    respective CAPATH option is not supported by the SSL library.
  
  Ref: https://github.com/curl/curl/pull/1257

- cyassl: fix typo

Version 7.53.0 (22 Feb 2017)

Daniel Stenberg (22 Feb 2017)
- release: 7.53.0

- cookie: fix declaration of 'dup' shadows a global declaration

- TLS: make SSL_VERIFYSTATUS work again
  
  The CURLOPT_SSL_VERIFYSTATUS option was not properly handled by libcurl
  and thus even if the status couldn't be verified, the connection would
  be allowed and the user would not be told about the failed verification.
  
  Regression since cb4e2be7c6d42ca
  
  CVE-2017-2629
  Bug: https://curl.haxx.se/docs/adv_20170222.html
  
  Reported-by: Marcus Hoffmann

Jay Satiro (21 Feb 2017)
- digest_sspi: Handle 'stale=TRUE' directive in HTTP digest
  
  - If the server has provided another challenge use it as the replacement
    input token if stale=TRUE. Otherwise previous credentials have failed
    so return CURLE_LOGIN_DENIED.
  
  Prior to this change the stale directive was ignored and if another
  challenge was received it would cause error CURLE_BAD_CONTENT_ENCODING.
  
  Ref: https://tools.ietf.org/html/rfc2617#page-10
  
  Bug: https://github.com/curl/curl/issues/928
  Reported-by: tarek112@users.noreply.github.com

Daniel Stenberg (20 Feb 2017)
- smb: use getpid replacement for windows UWP builds
  
  Source: https://github.com/Microsoft/vcpkg/blob/7676b8780db1e1e591c4fc7eba4f96f73c428cb4/ports/curl/0002_fix_uwp.patch

- TODO: CURLOPT_RESOLVE for any port number
  
  Closes #1264

- RELEASE-NOTES: synced with af30f1152d43dcdb

- [Jean Gressmann brought this change]

  sftp: improved checks for create dir failures
  
  Since negative values are errors and not only -1. This makes SFTP upload
  with --create-dirs work (again).
  
  Closes #1269

Jay Satiro (20 Feb 2017)
- [Max Khon brought this change]

  digest_sspi: Fix nonce-count generation in HTTP digest
  
  - on the first invocation: keep security context returned by
    InitializeSecurityContext()
  
  - on subsequent invocations: use MakeSignature() instead of
    InitializeSecurityContext() to generate HTTP digest response
  
  Bug: https://github.com/curl/curl/issues/870
  Reported-by: Andreas Roth
  
  Closes https://github.com/curl/curl/pull/1251

- examples/multi-uv: checksrc compliance

Michael Kaufmann (19 Feb 2017)
- string formatting: fix 4 printf-style format strings

Dan Fandrich (18 Feb 2017)
- tests: removed the obsolete name parameter

Michael Kaufmann (18 Feb 2017)
- speed caps: update the timeouts if the speed is too low/high
  
  Follow-up to 4b86113
  
  Fixes https://github.com/curl/curl/issues/793
  Fixes https://github.com/curl/curl/issues/942

- docs: fix timeout handling in multi-uv example

- proxy: fix hostname resolution and IDN conversion
  
  Properly resolve, convert and log the proxy host names.
  Support the "--connect-to" feature for SOCKS proxies and for passive FTP
  data transfers.
  
  Follow-up to cb4e2be
  
  Reported-by: Jay Satiro
  Fixes https://github.com/curl/curl/issues/1248

Jay Satiro (17 Feb 2017)
- [Isaac Boukris brought this change]

  http: fix missing 'Content-Length: 0' while negotiating auth
  
  - While negotiating auth during PUT/POST if a user-specified
    Content-Length header is set send 'Content-Length: 0'.
  
  This is what we do already in HTTPREQ_POST_FORM and what we did in the
  HTTPREQ_POST case (regression since afd288b).
  
  Prior to this change no Content-Length header would be sent in such a
  case.
  
  Bug: https://curl.haxx.se/mail/lib-2017-02/0006.html
  Reported-by: Dominik Hölzl
  
  Closes https://github.com/curl/curl/pull/1242

Daniel Stenberg (16 Feb 2017)
- [Simon Warta brought this change]

  winbuild: add note on auto-detection of MACHINE in Makefile.vc
  
  Closes #1265

- RELEASE-PROCEDURE: update the upcoming release calendar

- TODO: consider file name from the redirected URL with -O ?
  
  It isn't easily solved, but with some thinking someone could probably
  come up with a working approach?
  
  Closes #1241

Jay Satiro (15 Feb 2017)
- tool_urlglob: Allow a glob range with the same start and stop
  
  For example allow ranges like [1-1] and [a-a] etc.
  
  Regression since 5ca96cb.
  
  Bug: https://github.com/curl/curl/issues/1238
  Reported-by: R. Dennis Steed

Daniel Stenberg (15 Feb 2017)
- axtls: adapt to API changes
  
  Builds with axTLS 2.1.2. This then also breaks compatibility with axTLS
  < 2.1.0 (the older API)
  
  ... and fix the session_id mixup brought in 04b4ee549
  
  Fixes #1220

- RELEASE-NOTES: synced with 690935390c29c

- [Nick Draffen brought this change]

  curl: fix typo in time condition warning message
  
  The warning message had a typo. The argument long form is --time-cond
  not --timecond
  
  Closes #1263

- smb: code indent

Jay Satiro (14 Feb 2017)
- configure: Allow disabling pthreads, fall back on Win32 threads
  
  When the threaded resolver option is specified for configure the default
  thread library is pthreads. This change makes it possible to
  --disable-pthreads and then configure can fall back on Win32 threads for
  native Windows builds.
  
  Closes https://github.com/curl/curl/pull/1260

Daniel Stenberg (13 Feb 2017)
- http2: fix memory-leak when denying push streams
  
  Reported-by: zelinchen@users.noreply.github.com
  Fixes #1229

Jay Satiro (11 Feb 2017)
- tool_operate: Show HTTPS-Proxy options on CURLE_SSL_CACERT
  
  When CURLE_SSL_CACERT occurs the tool shows a lengthy error message to
  the user explaining possible solutions such as --cacert and --insecure.
  
  This change appends to that message similar options --proxy-cacert and
  --proxy-insecure when there's a specified HTTPS proxy.
  
  Closes https://github.com/curl/curl/issues/1258

Daniel Stenberg (10 Feb 2017)
- cmdline-opts/page-footer: ftp.sunet.se is no longer an FTP mirror

- URL: only accept ";options" in SMTP/POP3/IMAP URL schemes
  
  Fixes #1252

Jay Satiro (9 Feb 2017)
- cmdline-opts/socks*: Mention --preproxy in --socks* opts
  
  - Document in --socks* opts they're still mutually exclusive of --proxy.
  
  Partial revert of 423a93c; I had misinterpreted the SOCKS proxy +
  HTTP/HTTPS proxy combination.
  
  - Document in --socks* opts that --preproxy can be used to specify a
    SOCKS proxy at the same time --proxy is used with an HTTP/HTTPS proxy.

Daniel Stenberg (9 Feb 2017)
- CURLOPT_SSL_VERIFYPEER.3: also the https proxy version

Kamil Dudka (9 Feb 2017)
- nss: make FTPS work with --proxytunnel
  
  If the NSS code was in the middle of a non-blocking handshake and it
  was asked to finish the handshake in blocking mode, it unexpectedly
  continued in the non-blocking mode, which caused a FTPS connection
  over CONNECT to fail with "(81) Socket not ready for send/recv".
  
  Bug: https://bugzilla.redhat.com/1420327

Daniel Stenberg (9 Feb 2017)
- examples/multithread.c: link to our multi-thread docs
  
  ... instead of the OpenSSL mutex page.

- http_proxy: avoid freeing static memory
  
  Follow up to 7fe81ec298e0: make sure 'host' is either NULL or malloced.

- [Cameron MacMinn brought this change]

  http_proxy: Fix tiny memory leak upon edge case connecting to proxy
  
  Fixes #1255

Michael Kaufmann (8 Feb 2017)
- polarssl, mbedtls: Fix detection of pending data
  
  Reported-by: Dan Fandrich
  Bug: https://curl.haxx.se/mail/lib-2017-02/0032.html

Dan Fandrich (7 Feb 2017)
- test1139: Added the --manual keyword since the manual is required

Daniel Stenberg (7 Feb 2017)
- RELEASE-NOTES: synced with 102454459dd688c

- THANKS-filter: polish some recent contributors

- http2: reset push header counter fixes crash
  
  When removing an easy handler from a multi before it completed its
  transfer, and it had pushed streams, it would segfault due to the pushed
  counted not being cleared.
  
  Fixed-by: zelinchen@users.noreply.github.com
  Fixes #1249

- [Markus Westerlind brought this change]

  transfer: only retry nobody-requests for HTTP
  
  Using sftp to delete a file with CURLOPT_NOBODY set with a reused
  connection would fail as curl expected to get some data. Thus it would
  retry the command again which fails as the file has already been
  deleted.
  
  Fixes #1243

Jay Satiro (7 Feb 2017)
- [Daniel Gustafsson brought this change]

  telnet: Fix typos
  
  Ref: https://github.com/curl/curl/pull/1245

- [Daniel Gustafsson brought this change]

  test552: Fix typos
  
  Closes https://github.com/curl/curl/pull/1245

- [Daniel Gustafsson brought this change]

  darwinssl: Avoid parsing certificates when not in verbose mode
  
  The information extracted from the server certificates in step 3 is only
  used when in verbose mode, and there is no error handling or validation
  performed as that has already been done. Only run the certificate
  information extraction when in verbose mode and libcurl was built with
  verbose strings.
  
  Closes https://github.com/curl/curl/pull/1246

- [JDepooter brought this change]

  schannel: Remove incorrect SNI disabled message
  
  - Remove the SNI disabled when host verification disabled message
    since that is incorrect.
  
  - Show a message for legacy versions of Windows <= XP that connections
    may fail since those versions of WinSSL lack SNI, algorithms, etc.
  
  Bug: https://github.com/curl/curl/pull/1240

Daniel Stenberg (7 Feb 2017)
- CHANGES: spell fix, use correct path to script

- CHANGES.0: removed
  
  This is the previously manually edited changelog, not touched since Aug
  2015. Still present in git for those who wants it.

Dan Fandrich (6 Feb 2017)
- cmdline-opts: Fixed build and test in out of source tree builds

Viktor Szakats (6 Feb 2017)
- use *.sourceforge.io and misc URL updates
  
  Ref: https://sourceforge.net/blog/introducing-https-for-project-websites/
  Closes: https://github.com/curl/curl/pull/1247

Jay Satiro (6 Feb 2017)
- docs: Add more HTTPS proxy documentation
  
  - Document HTTPS proxy type.
  
  - Document --write-out %{proxy_ssl_verify_result}.
  
  - Document SOCKS proxy + HTTP/HTTPS proxy combination.
  
  HTTPS proxy support was added in 7.52.0 for OpenSSL, GnuTLS and NSS.
  
  Ref: https://github.com/curl/curl/commit/cb4e2be

- OS400: Fix symbols
  
  - s/CURLOPT_SOCKS_PROXY/CURLOPT_PRE_PROXY
    Follow-up to 7907a2b and 845522c.
  
  - Fix incorrect id for CURLOPT_PROXY_PINNEDPUBLICKEY.
  
  - Add id for CURLOPT_ABSTRACT_UNIX_SOCKET.
  
  Bug: https://github.com/curl/curl/issues/1237
  Reported-by: jonrumsey@users.noreply.github.com

- [Sean Burford brought this change]

  cmake: Support curl --xattr when built with cmake
  
  - Test for and set HAVE_FSETXATTR when support for extended file
    attributes is present.
  
  Closes https://github.com/curl/curl/pull/1176

- [Adam Langley brought this change]

  openssl: Don't use certificate after transferring ownership
  
  SSL_CTX_add_extra_chain_cert takes ownership of the given certificate
  while, despite the similar name, SSL_CTX_add_client_CA does not. Thus
  it's best to call SSL_CTX_add_client_CA before
  SSL_CTX_add_extra_chain_cert, while the code still has ownership of the
  argument.
  
  Closes https://github.com/curl/curl/pull/1236

Daniel Stenberg (29 Jan 2017)
- [Antoine Aubert brought this change]

  mbedtls: implement CTR-DRBG and HAVEGE random generators
  
  closes #1227

- docs: we no longer ship HTML versions of man pages
  
  ... refer to the web site for the web versions.

- [railsnewbie257 brought this change]

  docs: proofread README.netware README.win32
  
  Closes #1231

- RELEASE-NOTES; synced with ab08d82648

Michael Kaufmann (28 Jan 2017)
- mbedtls: disable TLS session tickets
  
  SSL session reuse with TLS session tickets is not supported yet.
  Use SSL session IDs instead.
  
  See https://github.com/curl/curl/issues/1109

- gnutls: disable TLS session tickets
  
  SSL session reuse with TLS session tickets is not supported yet.
  Use SSL session IDs instead.
  
  Fixes https://github.com/curl/curl/issues/1109

- polarssl: fix hangs
  
  This bugfix is similar to commit c111178bd4.

Daniel Stenberg (27 Jan 2017)
- cookies: do not assume a valid domain has a dot
  
  This repairs cookies for localhost.
  
  Non-PSL builds will now only accept "localhost" without dots, while PSL
  builds okeys everything not listed as PSL.
  
  Added test 1258 to verify.
  
  This was a regression brought in a76825a5efa6b4

- TODO: remove "Support TLS v1.3"
  
  Support is trickling in already.

- [railsnewbie257 brought this change]

  INTERNALS.md: language improvements
  
  Closes #1226

- telnet: fix windows compiler warnings
  
  Thumbs-up-by: Jay Satiro
  
  Closes #1225

- VC: remove the makefile.vc6 build infra
  
  The winbuild/ build files is now the single MSVC makefile build choice.
  
  Closes #1215

- [Jay Satiro brought this change]

  cmdline-opts/gen.pl: Open input files in CRLF mode
  
  On Windows it's possible to have input files with CRLF line endings and
  a perl that defaults to LF line endings (eg msysgit). Currently that
  results in generator output of mixed line endings of CR, LF and CRLF.
  
  This change fixes that issue in the most succinct way by opening the
  files in :crlf text mode even when the perl being used does not default
  to that mode. (On operating systems that don't have a separate text mode
  it's essentially a no-op.) The output continues to be in the perl's
  native line ending.

- docs/curl.1: generate from the cmdline-opts script

- vtls: source indentation fix

- contri*.sh: cut off parentheses from names too

- RELEASE-NOTES: synced with 01ab7c30bba6f

- vtls: fix PolarSSL non-blocking handling
  
  A regression brought in cb4e2be
  
  Reported-by: Michael Kaufmann
  Bug: https://github.com/curl/curl/issues/1174#issuecomment-274018791

- [Antoine Aubert brought this change]

  vtls: fix mbedtls multi non blocking handshake.
  
  When using multi, mbedtls handshake is in non blocking mode.  vtls must
  set wait for read/write flags for the socket.
  
  Closes #1223

- [Richy Kim brought this change]

  CURLOPT_BUFFERSIZE: support enlarging receive buffer
  
  Replace use of fixed macro BUFSIZE to define the size of the receive
  buffer.  Reappropriate CURLOPT_BUFFERSIZE to include enlarging receive
  buffer size.  Upon setting, resize buffer if larger than the current
  default size up to a MAX_BUFSIZE (512KB). This can benefit protocols
  like SFTP.
  
  Closes #1222

- sws: use SOCKERRNO, not errno
  
  Reported-by: Gisle Vanem

Michael Kaufmann (19 Jan 2017)
- KNOWN_BUGS: HTTP/2 server push enabled when no pushes can be accepted
  
  This has been implemented with commit 9ad034e.

Viktor Szakats (19 Jan 2017)
- *.rc: escape non-ASCII/non-UTF-8 character for clarity
  
  Closes https://github.com/curl/curl/pull/1217

Kamil Dudka (19 Jan 2017)
- docs: non-blocking SSL handshake is now supported with NSS
  
  Implemented since curl-7_36_0-130-g8868a22
  
  Reported-by: Fahim Chandurwala

Michael Kaufmann (18 Jan 2017)
- CURLOPT_CONNECT_TO: Fix compile warnings
  
  Fix compile warnings that appeared only when curl has been configured
  with '--disable-verbose'.

Daniel Stenberg (18 Jan 2017)
- usercertinmem.c: improve the short description

- parseurl: move back buffer to function scope
  
  Regression since 1d4202ad, which moved the buffer into a more narrow
  scope, but the data in that buffer was used outside of that more narrow
  scope.
  
  Reported-by: Dan Fandrich
  Bug: https://curl.haxx.se/mail/lib-2017-01/0093.html

Jay Satiro (17 Jan 2017)
- openssl: Fix random generation
  
  - Fix logic error in Curl_ossl_random.
  
  Broken a few days ago in 807698d.

Daniel Stenberg (17 Jan 2017)
- TODO: share OpenSSL contexts
  
  By supporting this, subsequent connects would load a lot less data from
  disk.
  
  Closes #1110

- bump: next release will be 7.53.0

Kamil Dudka (15 Jan 2017)
- nss: use the correct lock in nss_find_slot_by_name()

Alessandro Ghedini (15 Jan 2017)
- http2: disable server push if not requested
  
  Ref: https://github.com/curl/curl/pull/1160

Daniel Stenberg (14 Jan 2017)
- [railsnewbie257 brought this change]

  docs: improved language in README.md HISTORY.md CONTRIBUTE.md
  
  Closes #1211

Alessandro Ghedini (14 Jan 2017)
- http: print correct HTTP string in verbose output when using HTTP/2
  
  Before:
  ```
   % src/curl https://sigsegv.ninja/ -v --http2
  ...
  > GET / HTTP/1.1
  > Host: sigsegv.ninja
  > User-Agent: curl/7.52.2-DEV
  > Accept: */*
  >
  ...
  ```
  
  After:
  ```
   % src/curl https://sigsegv.ninja/ -v --http2
  ...
  > GET / HTTP/2
  > Host: sigsegv.ninja
  > User-Agent: curl/7.52.2-DEV
  > Accept: */*
  >
  ```

Daniel Stenberg (14 Jan 2017)
- TODO: send only part of --data
  
  Closes #1200

- TODO: implemened "--fail-fast to exit on first transfer fail"
  
  Even though it is called --fail-early

- TODO: Chunked transfer multipart formpost
  
  Closes #1139

- TODO: Improve formpost API, not just add an easy argument

- addrinfo: fix compiler warning on offsetof() use
  
  curl_addrinfo.c:519:20: error: conversion to ‘curl_socklen_t {aka
  unsigned int}’ from ‘long unsigned int’ may alter its value
  [-Werror=conversion]
  
  Follow-up to 1d786faee1046f

- THANKS-filter: Jiri Malak

- RELEASE-NOTES: synced with a7c73ae309c

Peter Wu (13 Jan 2017)
- [Isaac Boukris brought this change]

  unix_socket: add support for abstract unix domain socket
  
  In addition to unix domain sockets, Linux also supports an
  abstract namespace which is independent of the filesystem.
  
  In order to support it, add new CURLOPT_ABSTRACT_UNIX_SOCKET
  option which uses the same storage as CURLOPT_UNIX_SOCKET_PATH
  internally, along with a flag to specify abstract socket.
  
  On non-supporting platforms, the abstract address will be
  interpreted as an empty string and fail gracefully.
  
  Also add new --abstract-unix-socket tool parameter.
  
  Signed-off-by: Isaac Boukris <iboukris@gmail.com>
  Reported-by: Chungtsun Li (typeless)
  Reviewed-by: Daniel Stenberg
  Reviewed-by: Peter Wu
  Closes #1197
  Fixes #1061

Daniel Stenberg (13 Jan 2017)
- write-out.d: 'time_total' is not always shown with ms precision
  
  We have higher resolution since 7.52.0

- next.d: --trace and --trace-ascii are also global

- [Isaac Boukris brought this change]

  curl: reset the easy handle at --next
  
  So that only "global" options (verbose mostly) survive into the next
  transfer, and the others have to be set again unless default is fine.

- [Frank Gevaerts brought this change]

  docs: Add note about libcurl copying strings to CURLOPT_* manpages
  
  Closes #1169

- [Frank Gevaerts brought this change]

  CURLOPT_PREQUOTE.3: takes a struct curl_slist*, not a char*

- IDN: Use TR46 non-transitional
  
  Assisted-by: Tim Rühsen

- IDN: revert use of the transitional option
  
  It made the german ß get converted to ss, IDNA2003 style, and we can't
  have that for the .de TLD - a primary reason for our switch to IDNA2008.
  
  Test 165 verifies.

- [Tim Rühsen brought this change]

  IDN: Fix compile time detection of linidn2 TR46
  
  Follow-up to f30cbcac1
  
  Closes #1207

- [ERAMOTO Masaya brought this change]

  url: --noproxy option overrides NO_PROXY environment variable
  
  Under condition using http_proxy env var, noproxy list was the
  combination of --noproxy option and NO_PROXY env var previously. Since
  this commit, --noproxy option overrides NO_PROXY environment variable
  even if use http_proxy env var.
  
  Closes #1140

- [ERAMOTO Masaya brought this change]

  url: Refactor detect_proxy()
  
  If defined CURL_DISABLE_HTTP, detect_proxy() returned NULL. If not
  defined CURL_DISABLE_HTTP, detect_proxy() checked noproxy list.
  
  Thus refactor to set proxy to NULL instead of calling detect_proxy() if
  define CURL_DISABLE_HTTP, and refactor to call detect_proxy() if not
  define CURL_DISABLE_HTTP and the host is not in the noproxy list.

- [ERAMOTO Masaya brought this change]

  url: Fix NO_PROXY env var to work properly with --proxy option.
  
  The combination of --noproxy option and http_proxy env var works well
  both for proxied hosts and non-proxied hosts.
  
  However, when combining NO_PROXY env var with --proxy option,
  non-proxied hosts are not reachable while proxied host is OK.
  
  This patch allows us to access non-proxied hosts even if using NO_PROXY
  env var with --proxy option.

- [Tim Rühsen brought this change]

  IDN: Use TR46 'transitional' for toASCII translations
  
  References: http://unicode.org/faq/idn.html
              http://unicode.org/reports/tr46
  
  Closes #1206

- [railsnewbie257 brought this change]

  docs: FAQ MAIL-ETIQUETTE language fixes
  
  Closes #1194

- [Marcus Hoffmann brought this change]

  gnutls: check for alpn and ocsp in configure
  
  Check for presence of gnutls_alpn_* and gnutls_ocsp_* functions during
  configure instead of relying on the version number.  GnuTLS has options
  to turn these features off and we ca just work with with such builds
  like we work with older versions.
  
  Signed-off-by: Marcus Hoffmann <m.hoffmann@cartelsol.com>
  
  Closes #1204

Jay Satiro (12 Jan 2017)
- url: Fix parsing for when 'file' is the default protocol
  
  Follow-up to 3463408.
  
  Prior to 3463408 file:// hostnames were silently stripped.
  
  Prior to this commit it did not work when a schemeless url was used with
  file as the default protocol.
  
  Ref: https://curl.haxx.se/mail/lib-2016-11/0081.html
  Closes https://github.com/curl/curl/pull/1124
  
  Also fix for drive letters:
  
  - Support --proto-default file c:/foo/bar.txt
  
  - Support file://c:/foo/bar.txt
  
  - Fail when a file:// drive letter is detected and not MSDOS/Windows.
  
  Bug: https://github.com/curl/curl/issues/1187
  Reported-by: Anatol Belski
  Assisted-by: Anatol Belski

Daniel Stenberg (12 Jan 2017)
- rand: make it work without TLS backing
  
  Regression introduced in commit f682156a4fc6c4
  
  Reported-by: John Kohl
  Bug: https://curl.haxx.se/mail/lib-2017-01/0055.html

Jay Satiro (12 Jan 2017)
- STARTTLS: Don't print response character in denied messages
  
  Both IMAP and POP3 response characters are used internally, but when
  appended to the STARTTLS denial message likely could confuse the user.
  
  Closes https://github.com/curl/curl/pull/1203

- smtp: Fix STARTTLS denied error message
  
  - Format the numeric denial code as an integer instead of a character.

Daniel Stenberg (11 Jan 2017)
- http2_send: avoid unsigned integer wrap around
  
  ... when checking for a too large request.

Jay Satiro (9 Jan 2017)
- [Jiri Malak brought this change]

  cmake: Fix passing _WINSOCKAPI_ macro to compiler
  
  Define _WINSOCKAPI_ blank rather than to 1 in order to match the value
  used by Microsoft's winsock header files.
  
  Closes https://github.com/curl/curl/pull/1195

Daniel Stenberg (9 Jan 2017)
- sws: retry send() on EWOULDBLOCK
  
  Fixes spurious test 1060 and 1061 failures on OpenBSD, Solaris and more.
  
  Bug: https://curl.haxx.se/mail/lib-2017-01/0009.html
  Reported-by: Christian Weisgerber

- RELEASE-NOTES: synced with a41e8592d6b3e58

- examples: make the C++ examples follow our code style too
  
  At least mostly, not counting // comments.

- [Aulddays brought this change]

  asiohiper: improved socket handling
  
  libcurl requires CURLMOPT_SOCKETFUNCTION to KEEP watching socket events
  and notify back. Modify event_cb() to continue watching events when
  fired.
  
  Fixes #1191
  Closes #1192
  Fixed-by: Mingliang Zhu

- [Jiří Malák brought this change]

  lib506: fix build for Open Watcom
  
  Rename symbol lock to locks to not clash with OW CRTL function name.
  
  Closes #1196

- ROADMAP: 2017 cleanup
  
  Removed items already fixed, clarified a few others.

- COPYING: update the generic copyright year range

- docs/silent: mention --show-error in --silent description
  
  Reported in #1190
  Reported-by: Dan Jacobson

- docs/page-header: mention how to disable the progress meter
  
  curl.1 is regenerated
  
  Fixes #1190

Dan Fandrich (7 Jan 2017)
- wolfssl: display negotiated SSL version and cipher

- wolfssl: support setting cipher list

Patrick Monnerat (6 Jan 2017)
- CIPHERS.md: document GSKit ciphers

Jay Satiro (5 Jan 2017)
- [peterpih brought this change]

  TheArtOfHttpScripting: grammar

Nick Zitzmann (3 Jan 2017)
- darwinssl: --insecure overrides --cacert if both settings are in use
  
  Fixes #1184

Jay Satiro (2 Jan 2017)
- docs/libcurl: TCP_KEEPALIVE start and interval default to 60
  
  Since the TCP keep-alive options were added in 705f0f7 the start and
  interval default values have been 60, but that wasn't documented.
  
  Bug: https://curl.haxx.se/mail/lib-2017-01/0000.html
  Reported-by: Praveen Pvs
