Skip to content
  1. Dec 04, 2014
    • Peter Wu's avatar
      libcurl: add UNIX domain sockets support · 970c22f9
      Peter Wu authored
      The ability to do HTTP requests over a UNIX domain socket has been
      requested before, in Apr 2008 [0][1] and Sep 2010 [2]. While a
      discussion happened, no patch seems to get through. I decided to give it
      a go since I need to test a nginx HTTP server which listens on a UNIX
      domain socket.
      
      One patch [3] seems to make it possible to use the
      CURLOPT_OPENSOCKETFUNCTION function to gain a UNIX domain socket.
      Another person wrote a Go program which can do HTTP over a UNIX socket
      for Docker[4] which uses a special URL scheme (though the name contains
      cURL, it has no relation to the cURL library).
      
      This patch considers support for UNIX domain sockets at the same level
      as HTTP proxies / IPv6, it acts as an intermediate socket provider and
      not as a separate protocol. Since this feature affects network
      operations, a new feature flag was added ("unix-sockets") with a
      corresponding CURL_VERSION_UNIX_SOCKETS macro.
      
      A new CURLOPT_UNIX_SOCKET_PATH option is added and documented. This
      option enables UNIX domain sockets support for all requests on the
      handle (replacing IP sockets and skipping proxies).
      
      A new configure option (--enable-unix-sockets) and CMake option
      (ENABLE_UNIX_SOCKETS) can disable this optional feature. Note that I
      deliberately did not mark this feature as advanced, this is a
      feature/component that should easily be available.
      
       [0]: http://curl.haxx.se/mail/lib-2008-04/0279.html
       [1]: http://daniel.haxx.se/blog/2008/04/14/http-over-unix-domain-sockets/
       [2]: http://sourceforge.net/p/curl/feature-requests/53/
       [3]: http://curl.haxx.se/mail/lib-2008-04/0361.html
       [4]: https://github.com/Soulou/curl-unix-socket
      
      
      
      Signed-off-by: default avatarPeter Wu <peter@lekensteyn.nl>
      970c22f9
  2. Nov 30, 2014
  3. Nov 29, 2014
  4. Nov 07, 2014
  5. Nov 05, 2014
  6. Nov 02, 2014
  7. Oct 13, 2014
  8. Oct 07, 2014
    • Travis Burtrum's avatar
      SSL: implement public key pinning · 93e45079
      Travis Burtrum authored
      Option --pinnedpubkey takes a path to a public key in DER format and
      only connect if it matches (currently only implemented with OpenSSL).
      
      Provides CURLOPT_PINNEDPUBLICKEY for curl_easy_setopt().
      
      Extract a public RSA key from a website like so:
      openssl s_client -connect google.com:443 2>&1 < /dev/null | \
      sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -noout -pubkey \
      | openssl rsa -pubin -outform DER > google.com.der
      93e45079
  9. Sep 10, 2014
  10. Jul 31, 2014
  11. Jul 28, 2014
  12. 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
  13. Jul 22, 2014
  14. Jun 18, 2014
  15. Jun 17, 2014
  16. Jun 16, 2014
  17. May 21, 2014
  18. Apr 04, 2014
  19. Mar 26, 2014
  20. Feb 13, 2014
  21. Feb 11, 2014
  22. Feb 10, 2014
  23. Jan 29, 2014
  24. Jan 02, 2014
  25. Dec 17, 2013
  26. Dec 14, 2013
  27. 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
  28. 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
  29. Nov 21, 2013
  30. Nov 12, 2013
  31. Nov 11, 2013
  32. Oct 20, 2013
  33. 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
  34. Oct 14, 2013
  35. Sep 12, 2013
  36. Sep 04, 2013