Skip to content
  1. May 31, 2018
  2. May 29, 2018
    • Daniel Stenberg's avatar
      setopt: add TLS 1.3 ciphersuites · 050c93c4
      Daniel Stenberg authored
      Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
      
      curl: added --tls13-ciphers and --proxy-tls13-ciphers
      
      Fixes #2435
      Reported-by: zzq1015 on github
      Closes #2607
      050c93c4
  3. May 28, 2018
    • Patrick Monnerat's avatar
      psl: use latest psl and refresh it periodically · 8541d02c
      Patrick Monnerat authored
      The latest psl is cached in the multi or share handle. It is refreshed
      before use after 72 hours.
      New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
      If the latest psl is not available, the builtin psl is used.
      
      Reported-by: Yaakov Selkowitz
      Fixes #2553
      Closes #2601
      8541d02c
  4. May 24, 2018
  5. May 17, 2018
    • Philip Prindeville's avatar
      getinfo: add microsecond precise timers for various intervals · ce2140a8
      Philip Prindeville authored
      Provide a set of new timers that return the time intervals using integer
      number of microseconds instead of floats.
      
      The new info names are as following:
      
      CURLINFO_APPCONNECT_TIME_T
      CURLINFO_CONNECT_TIME_T
      CURLINFO_NAMELOOKUP_TIME_T
      CURLINFO_PRETRANSFER_TIME_T
      CURLINFO_REDIRECT_TIME_T
      CURLINFO_STARTTRANSFER_TIME_T
      CURLINFO_TOTAL_TIME_T
      
      Closes #2495
      ce2140a8
  6. Mar 17, 2018
    • Rick Deist's avatar
      resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES · d95f3dc0
      Rick Deist authored
      This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
      shuffling of IP addresses returned for a hostname when there is more
      than one. This is useful when the application knows that a round robin
      approach is appropriate and is willing to accept the consequences of
      potentially discarding some preference order returned by the system's
      implementation.
      
      Closes #1694
      d95f3dc0
    • Lawrence Matthews's avatar
      CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol · 6baeb6df
      Lawrence Matthews authored
      Add --haproxy-protocol for the command line tool
      
      Closes #2162
      6baeb6df
  7. Feb 22, 2018
    • Francisco Sedano's avatar
      url: Add option CURLOPT_RESOLVER_START_FUNCTION · 23713645
      Francisco Sedano authored
      - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
        will be called every time before a new resolve request is started
        (ie before a host is resolved) with a pointer to backend-specific
        resolver data. Currently this is only useful for ares.
      
      - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
        pass to the resolver start callback.
      
      Closes https://github.com/curl/curl/pull/2311
      23713645
  8. Feb 21, 2018
    • Jay Satiro's avatar
      lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS · dd027c80
      Jay Satiro authored
      - In keeping with the naming of our other connect timeout options rename
        CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
      
      This change adds the _MS suffix since the option expects milliseconds.
      This is more intuitive for our users since other connect timeout options
      that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
      CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
      
      The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
      
      Follow-up to 2427d94c which added the lib and tool option yesterday.
      
      Ref: https://github.com/curl/curl/pull/2260
      dd027c80
  9. Feb 20, 2018
    • Anders Bakken's avatar
      url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT · 2427d94c
      Anders Bakken authored
      - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
        eyeball timeout value.
      
      - Add new optval macro CURL_HET_DEFAULT to represent the default happy
        eyeballs timeout value (currently 200 ms).
      
      - Add new tool option --happy-eyeballs-timeout-ms to expose
        CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
        other -timeout options in the tool expect seconds not milliseconds.
      
      Closes https://github.com/curl/curl/pull/2260
      2427d94c
  10. Feb 15, 2018
  11. Jan 30, 2018
  12. Dec 08, 2017
  13. Dec 01, 2017
  14. Nov 27, 2017
  15. Nov 05, 2017
    • Patrick Monnerat's avatar
      HTTP: implement Brotli content encoding · 11bf1796
      Patrick Monnerat authored
      This uses the brotli external library (https://github.com/google/brotli).
      Brotli becomes a feature: additional curl_version_info() bit and
      structure fields are provided for it and CURLVERSION_NOW bumped.
      
      Tests 314 and 315 check Brotli content unencoding with correct and
      erroneous data.
      
      Some tests are updated to accomodate with the now configuration dependent
      parameters of the Accept-Encoding header.
      11bf1796
  16. Sep 27, 2017
    • Daniel Stenberg's avatar
      curl.h: include <sys/select.h> on cygwin too · 6aa86c49
      Daniel Stenberg authored
      When building with -std=c++14 on cygwin, this header won't be
      automatically included as it otherwise is.
      
      The <sys/select.h> include decision should ideally be reversed and be
      avoided where that header file doesn't exist.
      
      Reported-by: Ian Fette
      Fixes #1925
      6aa86c49
  17. Sep 22, 2017
  18. Sep 12, 2017
  19. Sep 05, 2017
  20. Sep 04, 2017
  21. Sep 03, 2017
  22. Sep 02, 2017
    • Patrick Monnerat's avatar
      mime: new MIME API. · ce0881ed
      Patrick Monnerat authored
      Available in HTTP, SMTP and IMAP.
      Deprecates the FORM API.
      See CURLOPT_MIMEPOST.
      Lib code and associated documentation.
      ce0881ed
  23. Aug 30, 2017
  24. Aug 28, 2017
    • Johannes Schindelin's avatar
      version: add the CURL_VERSION_MULTI_SSL feature flag · 9d96a5f0
      Johannes Schindelin authored
      
      
      This new feature flag reports When cURL was built with multiple SSL
      backends.
      
      Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
      9d96a5f0
    • Johannes Schindelin's avatar
      vtls: introduce curl_global_sslset() · 1328f69d
      Johannes Schindelin authored
      
      
      Let's add a compile time safe API to select an SSL backend. This
      function needs to be called *before* curl_global_init(), and can be
      called only once.
      
      Side note: we do not explicitly test that it is called before
      curl_global_init(), but we do verify that it is not called multiple times
      (even implicitly).
      
      If SSL is used before the function was called, it will use whatever the
      CURL_SSL_BACKEND environment variable says (or default to the first
      available SSL backend), and if a subsequent call to
      curl_global_sslset() disagrees with the previous choice, it will fail
      with CURLSSLSET_TOO_LATE.
      
      The function also accepts an "avail" parameter to point to a (read-only)
      NULL-terminated list of available backends. This comes in real handy if
      an application wants to let the user choose between whatever SSL backends
      the currently available libcurl has to offer: simply call
      
      	curl_global_sslset(-1, NULL, &avail);
      
      which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
      variable to point to the relevant information to present to the user.
      
      Just like with the HTTP/2 push functions, we have to add the function
      declaration of curl_global_sslset() function to the header file
      *multi.h* because VMS and OS/400 require a stable order of functions
      declared in include/curl/*.h (where the header files are sorted
      alphabetically). This looks a bit funny, but it cannot be helped.
      
      Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
      1328f69d
    • Johannes Schindelin's avatar
      vtls: refactor out essential information about the SSL backends · b59288f8
      Johannes Schindelin authored
      
      
      There is information about the compiled-in SSL backends that is really
      no concern of any code other than the SSL backend itself, such as which
      function (if any) implements SHA-256 summing.
      
      And there is information that is really interesting to the user, such as
      the name, or the curl_sslbackend value.
      
      Let's factor out the latter into a publicly visible struct. This
      information will be used in the upcoming API to set the SSL backend
      globally.
      
      Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
      b59288f8
  25. Aug 17, 2017
  26. Jun 28, 2017
    • Kamil Dudka's avatar
      CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth · 8924f58c
      Kamil Dudka authored
      If libcurl was built with GSS-API support, it unconditionally advertised
      GSS-API authentication while connecting to a SOCKS5 proxy.  This caused
      problems in environments with improperly configured Kerberos: a stock
      libcurl failed to connect, despite libcurl built without GSS-API
      connected fine using username and password.
      
      This commit introduces the CURLOPT_SOCKS5_AUTH option to control the
      allowed methods for SOCKS5 authentication at run time.
      
      Note that a new option was preferred over reusing CURLOPT_PROXYAUTH
      for compatibility reasons because the set of authentication methods
      allowed by default was different for HTTP and SOCKS5 proxies.
      
      Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html
      Closes https://github.com/curl/curl/pull/1454
      8924f58c
  27. Jun 21, 2017
  28. Jun 19, 2017
    • Daniel Stenberg's avatar
      http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASH · b778ae4c
      Daniel Stenberg authored
      ... to enable sending "OPTIONS *" which wasn't possible previously.
      
      This option currently only works for HTTP.
      
      Added test cases 1298 + 1299 to verify
      
      Fixes #1280
      Closes #1462
      b778ae4c
    • Daniel Stenberg's avatar
      getinfo: return sizes as curl_off_t · 3b80d3ca
      Daniel Stenberg authored
      This change introduces new alternatives for the existing six
      curl_easy_getinfo() options that return sizes or speeds as doubles. The
      new versions are named like the old ones but with an appended '_T':
      
      CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
      CURLINFO_CONTENT_LENGTH_UPLOAD_T
      CURLINFO_SIZE_DOWNLOAD_T
      CURLINFO_SIZE_UPLOAD_T
      CURLINFO_SPEED_DOWNLOAD_T
      CURLINFO_SPEED_UPLOAD_T
      
      Closes #1511
      3b80d3ca
  29. Jun 14, 2017
  30. Jun 01, 2017
  31. Apr 03, 2017
    • Daniel Stenberg's avatar
      include: curl/system.h is a run-time version of curlbuild.h · 9506d01e
      Daniel Stenberg authored
      system.h is aimed to replace curlbuild.h at a later point in time when
      we feel confident system.h works sufficiently well.
      
      curl/system.h is currently used in parallel with curl/curlbuild.h
      
      curl/system.h determines a data sizes, data types and include file
      status based on available preprocessor defines instead of getting
      generated at build-time. This, in order to avoid relying on a build-time
      generated file that makes it complicated to do 32 and 64 bit bields from
      the same installed set of headers.
      
      Test 1541 verifies that system.h comes to the same conclusion that
      curlbuild.h offers.
      
      Closes #1373
      9506d01e