Skip to content
  1. Dec 29, 2016
  2. Dec 23, 2016
  3. Dec 21, 2016
  4. Dec 16, 2016
  5. Dec 13, 2016
  6. Nov 26, 2016
  7. Nov 25, 2016
  8. Nov 24, 2016
    • Frank Gevaerts's avatar
      add CURLINFO_SCHEME, CURLINFO_PROTOCOL, and %{scheme} · ba410f6c
      Frank Gevaerts authored
      Adds access to the effectively used protocol/scheme to both libcurl and
      curl, both in string and numeric (CURLPROTO_*) form.
      
      Note that the string form will be uppercase, as it is just the internal
      string.
      
      As these strings are declared internally as const, and all other strings
      returned by curl_easy_getinfo() are de-facto const as well, string
      handling in getinfo.c got const-ified.
      
      Closes #1137
      ba410f6c
    • Daniel Stenberg's avatar
    • Daniel Stenberg's avatar
      dbadaebf
    • Alex Rousskov's avatar
      proxy: Support HTTPS proxy and SOCKS+HTTP(s) · cb4e2be7
      Alex Rousskov authored
      * HTTPS proxies:
      
      An HTTPS proxy receives all transactions over an SSL/TLS connection.
      Once a secure connection with the proxy is established, the user agent
      uses the proxy as usual, including sending CONNECT requests to instruct
      the proxy to establish a [usually secure] TCP tunnel with an origin
      server. HTTPS proxies protect nearly all aspects of user-proxy
      communications as opposed to HTTP proxies that receive all requests
      (including CONNECT requests) in vulnerable clear text.
      
      With HTTPS proxies, it is possible to have two concurrent _nested_
      SSL/TLS sessions: the "outer" one between the user agent and the proxy
      and the "inner" one between the user agent and the origin server
      (through the proxy). This change adds supports for such nested sessions
      as well.
      
      A secure connection with a proxy requires its own set of the usual SSL
      options (their actual descriptions differ and need polishing, see TODO):
      
        --proxy-cacert FILE        CA certificate to verify peer against
        --proxy-capath DIR         CA directory to verify peer against
        --proxy-cert CERT[:PASSWD] Client certificate file and password
        --proxy-cert-type TYPE     Certificate file type (DER/PEM/ENG)
        --proxy-ciphers LIST       SSL ciphers to use
        --proxy-crlfile FILE       Get a CRL list in PEM format from the file
        --proxy-insecure           Allow connections to proxies with bad certs
        --proxy-key KEY            Private key file name
        --proxy-key-type TYPE      Private key file type (DER/PEM/ENG)
        --proxy-pass PASS          Pass phrase for the private key
        --proxy-ssl-allow-beast    Allow security flaw to improve interop
        --proxy-sslv2              Use SSLv2
        --proxy-sslv3              Use SSLv3
        --proxy-tlsv1              Use TLSv1
        --proxy-tlsuser USER       TLS username
        --proxy-tlspassword STRING TLS password
        --proxy-tlsauthtype STRING TLS authentication type (default SRP)
      
      All --proxy-foo options are independent from their --foo counterparts,
      except --proxy-crlfile which defaults to --crlfile and --proxy-capath
      which defaults to --capath.
      
      Curl now also supports %{proxy_ssl_verify_result} --write-out variable,
      similar to the existing %{ssl_verify_result} variable.
      
      Supported backends: OpenSSL, GnuTLS, and NSS.
      
      * A SOCKS proxy + HTTP/HTTPS proxy combination:
      
      If both --socks* and --proxy options are given, Curl first connects to
      the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS
      proxy.
      
      TODO: Update documentation for the new APIs and --proxy-* options.
      Look for "Added in 7.XXX" marks.
      cb4e2be7
  9. Nov 09, 2016
  10. Nov 07, 2016
  11. Nov 03, 2016
  12. Sep 22, 2016
  13. Sep 08, 2016
  14. Sep 07, 2016
  15. Aug 09, 2016
  16. Aug 03, 2016
  17. Jul 31, 2016
    • Daniel Stenberg's avatar
      include: revert 9adf3c47 and make public types void * again · d6604524
      Daniel Stenberg authored
      Many applications assume the actual contents of the public types and use
      that do for example forward declarations (saving them from including our
      public header) which then breaks when we switch from void * to a struct
      *.
      
      I'm not convinced we were wrong, but since this practise seems
      widespread enough I'm willing to (partly) step down.
      
      Now libcurl uses the struct itself when it is built and it allows
      applications to use the struct type if CURL_STRICTER is defined at the
      time of the #include.
      
      Reported-by: Peter Frühberger
      Fixes #926
      d6604524
  18. Jul 21, 2016
  19. Jun 22, 2016
  20. May 30, 2016
  21. May 18, 2016
  22. Apr 25, 2016
  23. Apr 22, 2016
  24. Apr 18, 2016
  25. Apr 17, 2016
  26. Apr 12, 2016
  27. Apr 09, 2016
  28. Apr 03, 2016
  29. Apr 02, 2016
  30. Apr 01, 2016
    • Daniel Stenberg's avatar
      curl.h: define CURL_DID_MEMORY_FUNC_TYPEDEFS · 7db9782d
      Daniel Stenberg authored
      So that we only do the extra typedefs in curl_memory.h when we really
      need to and avoid double typedefs.
      
      follow-up commit to 7218b52c
      
      Thanks-to: Steve Holme
      7db9782d
    • Daniel Stenberg's avatar
      curl/mprintf.h: remove support for _MPRINTF_REPLACE · 55452ebd
      Daniel Stenberg authored
      The define is not in our name space and is therefore not protected by
      our API promises.
      
      It was only really used by libcurl internals but was mostly erased from
      there already in 8aabbf5f (March 2015). This is supposedly the final
      death blow to that define from everywhere.
      
      As a side-effect, making sure _MPRINTF_REPLACE is gone and not used, I
      made the lib tests in tests/libtest/ use curl_printf.h for its redefine
      magic and then subsequently the use of sprintf() got banned in the tests
      as well (as it is in libcurl internals) and I then replaced them all
      with snprintf().
      
      In the unlikely event that any users is actually using this define and
      gets sad by this change, it is very easily copied to the user's own
      code.
      55452ebd
  31. Mar 31, 2016
    • Diego Bes's avatar
      http2: support "prior knowledge", no upgrade from HTTP/1.1 · 324a97ec
      Diego Bes authored
      Supports HTTP/2 over clear TCP
      
      - Optimize switching to HTTP/2 by removing calls to init and setup
      before switching. Switching will eventually call setup and setup calls
      init.
      
      - Supports new version to “force” the use of HTTP/2 over clean TCP
      
      - Add common line parameter “--http2-prior-knowledge” to the Curl
        command line tool.
      324a97ec