Skip to content
  1. Jul 23, 2014
    • Daniel Stenberg's avatar
      http2: more and better error checking · 81cd24ad
      Daniel Stenberg authored
      1 - fixes the warnings when built without http2 support
      
      2 - adds CURLE_HTTP2, a new error code for errors detected by nghttp2
      basically when they are about http2 specific things.
      81cd24ad
  2. Jul 22, 2014
  3. Jun 18, 2014
  4. Jun 17, 2014
  5. Apr 04, 2014
  6. Feb 13, 2014
  7. Feb 10, 2014
  8. Dec 14, 2013
  9. Dec 06, 2013
    • Christian Weisgerber's avatar
      curl.h: <sys/select.h> for OpenBSD · 92e607ab
      Christian Weisgerber authored
      curl.h should also include <sys/select.h> on OpenBSD to reliably
      pull in select().  Typically, including <sys/time.h> will be enough,
      but not if strict standards-compliance is requested (e.g. by defining
      _XOPEN_SOURCE).
      92e607ab
  10. Nov 30, 2013
    • Steve Holme's avatar
      curl_easy_getinfo: Post CURLINFO_TLS_SESSION tidy up · dc68120e
      Steve Holme authored
      1) Renamed curl_tlsinfo to curl_tlssessioninfo as discussed on the
      mailing list.
      2) Renamed curl_ssl_backend to curl_sslbackend so it doesn't follow our
      function naming convention.
      3) Updated sessioninfo.c example accordingly.
      dc68120e
  11. Nov 21, 2013
  12. Nov 12, 2013
  13. Oct 15, 2013
    • Gergely Nagy's avatar
      SSL: protocol version can be specified more precisely · ad34a2d5
      Gergely Nagy authored
      CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1,
      CURL_SSLVERSION_TLSv1_2 enum values are added to force exact TLS version
      (CURL_SSLVERSION_TLSv1 means TLS 1.x).
      
      axTLS:
      axTLS only supports TLS 1.0 and 1.1 but it cannot be set that only one
      of these should be used, so we don't allow the new enum values.
      
      darwinssl:
      Added support for the new enum values.
      
      SChannel:
      Added support for the new enum values.
      
      CyaSSL:
      Added support for the new enum values.
      Bug: The original CURL_SSLVERSION_TLSv1 value enables only TLS 1.0 (it
      did the same before this commit), because CyaSSL cannot be configured to
      use TLS 1.0-1.2.
      
      GSKit:
      GSKit doesn't seem to support TLS 1.1 and TLS 1.2, so we do not allow
      those values.
      Bugfix: There was a typo that caused wrong SSL versions to be passed to
      GSKit.
      
      NSS:
      TLS minor version cannot be set, so we don't allow the new enum values.
      
      QsoSSL:
      TLS minor version cannot be set, so we don't allow the new enum values.
      
      OpenSSL:
      Added support for the new enum values.
      Bugfix: The original CURL_SSLVERSION_TLSv1 value enabled only TLS 1.0,
      now it enables 1.0-1.2.
      
      Command-line tool:
      Added command line options for the new values.
      ad34a2d5
  14. Sep 12, 2013
  15. Sep 04, 2013
  16. Aug 25, 2013
    • Kyle L. Huff's avatar
      options: added basic SASL XOAUTH2 support · 06c1bea7
      Kyle L. Huff authored
      Added the ability to specify an XOAUTH2 bearer token [RFC6750] via the
      option CURLOPT_XOAUTH2_BEARER for authentication using RFC6749 "OAuth
      2.0 Authorization Framework".
      06c1bea7
  17. Aug 22, 2013
  18. Jul 18, 2013
    • Daniel Stenberg's avatar
      CURLOPT_XFERINFOFUNCTION: introducing a new progress callback · 12d01cb6
      Daniel Stenberg authored
      CURLOPT_XFERINFOFUNCTION is now the preferred progress callback function
      and CURLOPT_PROGRESSFUNCTION is considered deprecated.
      
      This new callback uses pure 'curl_off_t' arguments to pass on full
      resolution sizes. It otherwise retains the same characteristics: the
      same call rate, the same meanings for the arguments and the return code
      is used the same way.
      
      The progressfunc.c example is updated to show how to use the new
      callback for newer libcurls while supporting the older one if built with
      an older libcurl or even built with a newer libcurl while running with
      an older.
      12d01cb6
  19. Apr 27, 2013
  20. Mar 13, 2013
    • Linus Nielsen's avatar
      Multiple pipelines and limiting the number of connections. · 0f147887
      Linus Nielsen authored
      Introducing a number of options to the multi interface that
      allows for multiple pipelines to the same host, in order to
      optimize the balance between the penalty for opening new
      connections and the potential pipelining latency.
      
      Two new options for limiting the number of connections:
      
      CURLMOPT_MAX_HOST_CONNECTIONS - Limits the number of running connections
      to the same host. When adding a handle that exceeds this limit,
      that handle will be put in a pending state until another handle is
      finished, so we can reuse the connection.
      
      CURLMOPT_MAX_TOTAL_CONNECTIONS - Limits the number of connections in total.
      When adding a handle that exceeds this limit,
      that handle will be put in a pending state until another handle is
      finished. The free connection will then be reused, if possible, or
      closed if the pending handle can't reuse it.
      
      Several new options for pipelining:
      
      CURLMOPT_MAX_PIPELINE_LENGTH - Limits the pipeling length. If a
      pipeline is "full" when a connection is to be reused, a new connection
      will be opened if the CURLMOPT_MAX_xxx_CONNECTIONS limits allow it.
      If not, the handle will be put in a pending state until a connection is
      ready (either free or a pipe got shorter).
      
      CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE - A pipelined connection will not
      be reused if it is currently processing a transfer with a content
      length that is larger than this.
      
      CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE - A pipelined connection will not
      be reused if it is currently processing a chunk larger than this.
      
      CURLMOPT_PIPELINING_SITE_BL - A blacklist of hosts that don't allow
      pipelining.
      
      CURLMOPT_PIPELINING_SERVER_BL - A blacklist of server types that don't allow
      pipelining.
      
      See the curl_multi_setopt() man page for details.
      0f147887
  21. Mar 12, 2013
  22. Mar 11, 2013
  23. Sep 26, 2012
  24. Aug 27, 2012
  25. Aug 16, 2012
    • Gokhan Sengun's avatar
      ftp: active conn, allow application to set sockopt after accept() call · 23ef5e4b
      Gokhan Sengun authored
      For active FTP connections, applications may need setting the sockopt after accept() call returns successful. This fix gives a call to the callback registered with CURL_SOCKOPTFUNCTION option. Also a new sock type - CURLSOCKTYPE_ACCEPT - is added. This type is to be passed to application callbacks with - purpose - parameter. Applications may use this parameter to distinguish between socket types.
      23ef5e4b
  26. Aug 08, 2012
  27. Jun 11, 2012
    • Daniel Stenberg's avatar
      Revert: 634f7cfe partially · af0888aa
      Daniel Stenberg authored
      Make sure CURL_VERSION_SSPI is present and works as in previous releases
      for ABI and API compatibility reasons.
      af0888aa
    • Marc Hoersken's avatar
      version: Replaced SSPI feature information with version string details · 634f7cfe
      Marc Hoersken authored
      Added Windows SSPI version information to the curl version string when
      SCHANNEL SSL is not enabled, as the version of the library should also
      be included when SSPI is used to generate security contexts.
      
      Removed SSPI from the feature list as the features are GSS-Negotiate,
      NTLM and SSL depending on the usage of the SSPI library.
      634f7cfe
  28. Apr 18, 2012
  29. Apr 05, 2012
  30. Feb 14, 2012
    • Steve Holme's avatar
      smtp_mail: Added support to MAIL FROM for the optional AUTH parameter · 0cf0ab6f
      Steve Holme authored
      Added a new CURLOPT_MAIL_AUTH option that allows the calling program to
      set the optional AUTH parameter in the MAIL FROM command.
      
      When this option is specified and an authentication mechanism is used
      to communicate with the mail server then the AUTH parameter will be
      included in the MAIL FROM command. This is particularly useful when the
      calling program is acting as a relay in a trusted environment and
      performing server to server communication, as it allows the relaying
      server to specify the address of the mailbox that was used to
      authenticate and send the original email.
      0cf0ab6f
  31. Feb 09, 2012
    • Daniel Stenberg's avatar
      CURLOPT_SSL_OPTIONS: added · 2a699bc6
      Daniel Stenberg authored
      Allow an appliction to set libcurl specific SSL options. The first and
      only options supported right now is CURLSSLOPT_ALLOW_BEAST.
      
      It will make libcurl to disable any work-arounds the underlying SSL
      library may have to address a known security flaw in the SSL3 and TLS1.0
      protocol versions.
      
      This is a reaction to us unconditionally removing that behavior after
      this security advisory:
      
      http://curl.haxx.se/docs/adv_20120124B.html
      
      ... it did however cause a lot of programs to fail because of old
      servers not liking this work-around. Now programs can opt to decrease
      the security in order to interoperate with old servers better.
      2a699bc6
    • Dave Reisner's avatar
      add library support for tuning TCP_KEEPALIVE · 705f0f7a
      Dave Reisner authored
      This adds three new options to control the behavior of TCP keepalives:
      
      - CURLOPT_TCP_KEEPALIVE: enable/disable probes
      - CURLOPT_TCP_KEEPIDLE: idle time before sending first probe
      - CURLOPT_TCP_KEEPINTVL: delay between successive probes
      
      While not all operating systems support the TCP_KEEPIDLE and
      TCP_KEEPINTVL knobs, the library will still allow these options to be
      set by clients, silently ignoring the values.
      705f0f7a
  32. Jan 05, 2012
    • Daniel Stenberg's avatar
      curl.h: provide backwards compatible symbols · 52824ed1
      Daniel Stenberg authored
      In commit c834213a we re-used some obsolete error codes, and here are
      two defines that makes sure existing source codes that happen to use any
      of these deprecated ones will still compile.
      
      As usual, define CURL_NO_OLDIES to avoid getting these "precaution
      defines".
      52824ed1
  33. Dec 20, 2011
    • Gokhan Sengun's avatar
      FTP: perform active connections non-blocking · c834213a
      Gokhan Sengun authored
      1- Two new error codes are introduced.
      
      CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of
      FTP server connected.
      
      CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts.
      
      Neither of these errors are considered fatal and control connection
      remains OK because it could just be a firewall blocking server to
      connect to the client.
      
      2- One new setopt option was introduced.
      
      CURLOPT_ACCEPTTIMEOUT_MS
      
      It sets the maximum amount of time FTP client is going to wait for a
      server to connect. Internal default accept timeout is 60 seconds.
      c834213a
    • Cédric Deltheil's avatar
      curl.h: add __ANDROID__ macro check · bedfafe3
      Cédric Deltheil authored
      When working with the Android Standalone Toolchain the compiler defines
      this macro:
      
        /path/to/arm-linux-androideabi-gcc -E -dM - < /dev/null \
        | grep -i android
        #define __ANDROID__ 1
      
      We really need to check both ANDROID and __ANDROID__ since I've observed
      that:
      
      * if you use Android.mk file(s) and the 'ndk-build' script (aka vanilla
      way), ANDROID is predefined (see -DANDROID extra C flag),
      
      * if you use the Android Standalone Toolchain, then __ANDROID__ is
      predefined as stated by the compiler
      bedfafe3