Skip to content
  1. Jul 04, 2017
  2. Jun 08, 2017
    • Daniel Stenberg's avatar
      expire: remove Curl_expire_latest() · 7fffe97b
      Daniel Stenberg authored
      With the introduction of expire IDs and the fact that existing timers
      can be removed now and thus never expire, the concept with adding a
      "latest" timer is not working anymore as it risks to not expire at all.
      
      So, to be certain the timers actually are in line and will expire, the
      plain Curl_expire() needs to be used. The _latest() function was added
      as a sort of shortcut in the past that's quite simply not necessary
      anymore.
      
      Follow-up to 31b39c40
      
      Reported-by: Paul Harris
      
      Closes #1555
      7fffe97b
  3. May 10, 2017
  4. Mar 30, 2017
  5. Mar 13, 2017
  6. Dec 19, 2016
  7. Dec 18, 2016
  8. Dec 13, 2016
  9. 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
  10. Nov 18, 2016
    • Marcel Raad's avatar
      lib: fix compiler warnings after de4de4e3 · 21aa32d3
      Marcel Raad authored
      Visual C++ now complains about implicitly casting time_t (64-bit) to
      long (32-bit). Fix this by changing some variables from long to time_t,
      or explicitly casting to long where the public interface would be
      affected.
      
      Closes #1131
      21aa32d3
  11. Oct 18, 2016
    • Daniel Stenberg's avatar
      select: switch to macros in uppercase · 8a6e89a9
      Daniel Stenberg authored
      Curl_select_ready() was the former API that was replaced with
      Curl_select_check() a while back and the former arg setup was provided
      with a define (in order to leave existing code unmodified).
      
      Now we instead offer SOCKET_READABLE and SOCKET_WRITABLE for the most
      common shortcuts where only one socket is checked. They're also more
      visibly macros.
      8a6e89a9
  12. Oct 16, 2016
  13. Aug 30, 2016
  14. Aug 28, 2016
  15. Aug 21, 2016
  16. Jul 20, 2016
  17. Jun 22, 2016
  18. Jun 04, 2016
  19. May 08, 2016
    • Antonio Larrosa's avatar
      connect: fix invalid "Network is unreachable" errors · ae8f6620
      Antonio Larrosa authored
      Sometimes, in systems with both ipv4 and ipv6 addresses but where the
      network doesn't support ipv6, Curl_is_connected returns an error
      (intermittently) even if the ipv4 socket connects successfully.
      
      This happens because there's a for-loop that iterates on the sockets but
      the error variable is not resetted when the ipv4 is checked and is ok.
      
      This patch fixes this problem by setting error to 0 when checking the
      second socket and not having a result yet.
      
      Fixes #794
      ae8f6620
  20. Apr 29, 2016
    • Daniel Stenberg's avatar
      lib: include curl_printf.h as one of the last headers · 4f45240b
      Daniel Stenberg authored
      curl_printf.h defines printf to curl_mprintf, etc. This can cause
      problems with external headers which may use
      __attribute__((format(printf, ...))) markers etc.
      
      To avoid that they cause problems with system includes, we include
      curl_printf.h after any system headers. That makes the three last
      headers to always be, and we keep them in this order:
      
       curl_printf.h
       curl_memory.h
       memdebug.h
      
      None of them include system headers, they all do funny #defines.
      
      Reported-by: David Benjamin
      
      Fixes #743
      4f45240b
  21. Apr 19, 2016
  22. Apr 18, 2016
  23. Apr 17, 2016
  24. Mar 20, 2016
  25. Feb 04, 2016
  26. Feb 02, 2016
  27. Nov 16, 2015
  28. Sep 27, 2015
  29. Sep 26, 2015
  30. Aug 01, 2015
    • Steve Holme's avatar
      win32: Fix compilation warnings from commit 40c921f8 · 11ab3f89
      Steve Holme authored
      connect.c:953:5: warning: initializer element is not computable at load
                       time
      connect.c:953:5: warning: missing initializer for field 'dwMinorVersion'
                       of 'OSVERSIONINFOEX'
      curl_sspi.c:97:5: warning: initializer element is not computable at load
                        time
      curl_sspi.c:97:5: warning: missing initializer for field 'szCSDVersion'
                        of 'OSVERSIONINFOEX'
      11ab3f89
  31. Jul 22, 2015
  32. Jun 08, 2015
  33. May 12, 2015
  34. Mar 24, 2015
  35. Mar 23, 2015