Skip to content
  1. Apr 27, 2013
  2. Apr 12, 2013
  3. 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
  4. Mar 12, 2013
  5. Mar 11, 2013
  6. Mar 08, 2013
  7. Mar 07, 2013
  8. Feb 06, 2013
  9. Feb 04, 2013
  10. Jan 08, 2013
    • Yang Tse's avatar
      build: fix circular header inclusion with other packages · 5a053ffe
      Yang Tse authored
      This commit renames lib/setup.h to lib/curl_setup.h and
      renames lib/setup_once.h to lib/curl_setup_once.h.
      
      Removes the need and usage of a header inclusion guard foreign
      to libcurl. [1]
      
      Removes the need and presence of an alarming notice we carried
      in old setup_once.h [2]
      
      ----------------------------------------
      
      1 - lib/setup_once.h used __SETUP_ONCE_H macro as header inclusion guard
          up to commit ec691ca3 which changed this to HEADER_CURL_SETUP_ONCE_H,
          this single inclusion guard is enough to ensure that inclusion of
          lib/setup_once.h done from lib/setup.h is only done once.
      
          Additionally lib/setup.h has always used __SETUP_ONCE_H macro to
          protect inclusion of setup_once.h even after commit ec691ca3, this
          was to avoid a circular header inclusion triggered when building a
          c-ares enabled version with c-ares sources available which also has
          a setup_once.h header. Commit ec691ca3 exposes the real nature of
          __SETUP_ONCE_H usage in lib/setup.h, it is a header inclusion guard
          foreign to libcurl belonging to c-ares's setup_once.h
      
          The renaming this commit does, fixes the circular header inclusion,
          and as such removes the need and usage of a header inclusion guard
          foreign to libcurl. Macro __SETUP_ONCE_H no longer used in libcurl.
      
      2 - Due to the circular interdependency of old lib/setup_once.h and the
          c-ares setup_once.h header, old file lib/setup_once.h has carried
          back from 2006 up to now days an alarming and prominent notice about
          the need of keeping libcurl's and c-ares's setup_once.h in sync.
      
          Given that this commit fixes the circular interdependency, the need
          and presence of mentioned notice is removed.
      
          All mentioned interdependencies come back from now old days when
          the c-ares project lived inside a curl subdirectory. This commit
          removes last traces of such fact.
      5a053ffe
  11. Jan 06, 2013
    • Yang Tse's avatar
      Revert changes relative to lib/*.[ch] recent renaming · 4a5aa668
      Yang Tse authored
      This reverts renaming and usage of lib/*.h header files done
      28-12-2012, reverting 2 commits:
      
        f871de00... build: make use of 76 lib/*.h renamed files
        ffd8e127... build: rename 76 lib/*.h files
      
      This also reverts removal of redundant include guard (redundant thanks
      to changes in above commits) done 2-12-2013, reverting 1 commit:
      
        c087374c... curl_setup.h: remove redundant include guard
      
      This also reverts renaming and usage of lib/*.c source files done
      3-12-2013, reverting 3 commits:
      
        13606bbf... build: make use of 93 lib/*.c renamed files
        5b6e7927... build: rename 93 lib/*.c files
        7d83dfff... build: commit 13606bbf follow-up 1
      
      Start of related discussion thread:
      
        http://curl.haxx.se/mail/lib-2013-01/0012.html
      
      Asking for confirmation on pushing this revertion commit:
      
        http://curl.haxx.se/mail/lib-2013-01/0048.html
      
      Confirmation summary:
      
        http://curl.haxx.se/mail/lib-2013-01/0079.html
      
      NOTICE: The list of 2 files that have been modified by other
      intermixed commits, while renamed, and also by at least one
      of the 6 commits this one reverts follows below. These 2 files
      will exhibit a hole in history unless git's '--follow' option
      is used when viewing logs.
      
        lib/curl_imap.h
        lib/curl_smtp.h
      4a5aa668
  12. Dec 28, 2012
  13. Nov 23, 2012
    • Yang Tse's avatar
      build: fix AIX compilation and usage · 665adcd4
      Yang Tse authored
      AIX sys/poll.h header file defines 'events' and 'revents' as C
      preprocessor macros. Usage of these literals in libcurl's external
      API was introduced in commit de24d7bd causing AIX build failures.
      Appropriate inclusion of sys/poll.h by libcurl's external interface
      fixes AIX build and usage issues while avoiding a SONAME bump.
      665adcd4
  14. Nov 20, 2012
  15. Oct 10, 2012
  16. Sep 26, 2012
  17. Sep 16, 2012
  18. Sep 01, 2012
    • Sara Golemon's avatar
      multi: add curl_multi_wait() · de24d7bd
      Sara Golemon authored
      /*
       * Name:     curl_multi_wait()
       *
       * Desc:     Poll on all fds within a CURLM set as well as any
       *           additional fds passed to the function.
       *
       * Returns:  CURLMcode type, general multi error code.
       */
      CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
                                            struct curl_waitfd extra_fds[],
                                            unsigned int extra_nfds,
                                            int timeout_ms);
      de24d7bd
  19. Aug 27, 2012
  20. 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
  21. Aug 08, 2012
  22. Jul 27, 2012
  23. 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
  24. Jun 03, 2012
  25. May 24, 2012
  26. May 22, 2012
  27. Apr 18, 2012
  28. Apr 14, 2012
  29. Apr 06, 2012
    • Yang Tse's avatar
      curl tool: use configuration files from lib directory · 919c97fa
      Yang Tse authored
      Configuration files such as curl_config.h and all config-*.h no longer exist
      nor are generated/copied into 'src' directory, now these only exist in 'lib'
      directory from where curl tool sources uses them.
      
      Additionally old src/setup.h has been refactored into src/tool_setup.h which
      now pulls lib/setup.h
      
      The possibility of a makefile needing an include path adjustment exists.
      919c97fa
  30. Apr 05, 2012
  31. Mar 23, 2012
  32. 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
    • Daniel Stenberg's avatar
      LIBCURL_VERSION_NUM: 0x071900 · 02012805
      Daniel Stenberg authored
      I accidentally left the lowest bits 01 before
      02012805
  33. Feb 13, 2012
  34. 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