Skip to content
  1. Jun 15, 2017
  2. Jun 14, 2017
  3. Jun 05, 2017
  4. Jun 01, 2017
  5. May 14, 2017
    • Daniel Stenberg's avatar
      curl: show the libcurl release date in --version output · 180c75eb
      Daniel Stenberg authored
      ... and support and additional "security patched" date for those who
      enhance older versions that way. Pass on the define CURL_PATCHSTAMP with
      a date for that.
      
      Building with non-release headers shows the date as [unreleased].
      
      Also: this changes the date format generated in the curlver.h file to be
      "YYYY-MM-DD" (no name of the day or month, no time, no time zone) to
      make it easier on the eye and easier to parse. Example (new) date
      string: 2017-05-09
      
      Suggested-by: Brian Childs
      
      Closes #1474
      180c75eb
  6. May 03, 2017
  7. Apr 25, 2017
    • Marcel Raad's avatar
      typecheck-gcc: fix _curl_is_slist_info · 9c5aed18
      Marcel Raad authored
      Info values starting with CURLINFO_SOCKET expect a curl_socket_t, not a
      curl_slist argument.
      
      This fixes the following GCC warning when building the examples with
      --enable-optimize:
      
      ../../include/curl/typecheck-gcc.h:126:42: warning: call to
      ‘_curl_easy_getinfo_err_curl_slist’ declared with attribute warning:
      curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this
      info [enabled by default]
      sendrecv.c:90:11: note: in expansion of macro ‘curl_easy_getinfo’
      res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
      
      Closes https://github.com/curl/curl/pull/1447
      9c5aed18
  8. Apr 21, 2017
    • Marcel Raad's avatar
      typecheck-gcc: handle function pointers properly · cbb59ed9
      Marcel Raad authored
      All the callbacks passed to curl_easy_setopt are defined as function
      pointers. The possibility to pass both functions and function pointers
      was handled for the callbacks that typecheck-gcc.h defined as
      compatible, but not for the public callback types themselves.
      
      This makes all compatible callback types defined in typecheck-gcc.h
      function pointers too and checks all functions uniformly with
      _curl_callback_compatible, which handles both functions and function
      pointers.
      
      A symptom of the problem was a warning in tool_operate.c with
      --disable-libcurl-option and without --enable-debug as that file
      passes the callback functions to curl_easy_setopt directly.
      
      Fixes https://github.com/curl/curl/issues/1403
      Closes https://github.com/curl/curl/pull/1404
      cbb59ed9
  9. Apr 19, 2017
  10. Apr 11, 2017
  11. Apr 07, 2017
  12. Apr 06, 2017
  13. 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
  14. Mar 26, 2017
  15. Mar 12, 2017
  16. Mar 08, 2017
  17. Feb 24, 2017
  18. Feb 23, 2017
  19. Jan 19, 2017
    • Richy Kim's avatar
      CURLOPT_BUFFERSIZE: support enlarging receive buffer · 6b761669
      Richy Kim authored
      Replace use of fixed macro BUFSIZE to define the size of the receive
      buffer.  Reappropriate CURLOPT_BUFFERSIZE to include enlarging receive
      buffer size.  Upon setting, resize buffer if larger than the current
      default size up to a MAX_BUFSIZE (512KB). This can benefit protocols
      like SFTP.
      
      Closes #1222
      6b761669
  20. Jan 16, 2017
  21. Jan 13, 2017
    • Isaac Boukris's avatar
      unix_socket: add support for abstract unix domain socket · 1d786fae
      Isaac Boukris authored
      
      
      In addition to unix domain sockets, Linux also supports an
      abstract namespace which is independent of the filesystem.
      
      In order to support it, add new CURLOPT_ABSTRACT_UNIX_SOCKET
      option which uses the same storage as CURLOPT_UNIX_SOCKET_PATH
      internally, along with a flag to specify abstract socket.
      
      On non-supporting platforms, the abstract address will be
      interpreted as an empty string and fail gracefully.
      
      Also add new --abstract-unix-socket tool parameter.
      
      Signed-off-by: default avatarIsaac Boukris <iboukris@gmail.com>
      Reported-by: Chungtsun Li (typeless)
      Reviewed-by: Daniel Stenberg
      Reviewed-by: Peter Wu
      Closes #1197
      Fixes #1061
      1d786fae
  22. Dec 29, 2016
  23. Dec 23, 2016
  24. Dec 21, 2016
  25. Dec 16, 2016
  26. Dec 13, 2016
  27. Nov 26, 2016
  28. Nov 25, 2016
  29. 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
  30. Nov 09, 2016
  31. Nov 07, 2016