Skip to content
  1. Aug 20, 2013
    • Daniel Stenberg's avatar
      CURLM_ADDED_ALREADY: new error code · 19122c07
      Daniel Stenberg authored
      Doing curl_multi_add_handle() on an easy handle that is already added to
      a multi handle now returns this error code. It previously returned
      CURLM_BAD_EASY_HANDLE for this condition.
      19122c07
  2. Aug 12, 2013
  3. Jul 18, 2013
    • Daniel Stenberg's avatar
      CURLOPT_XFERINFOFUNCTION: introducing a new progress callback · 12d01cb6
      Daniel Stenberg authored
      CURLOPT_XFERINFOFUNCTION is now the preferred progress callback function
      and CURLOPT_PROGRESSFUNCTION is considered deprecated.
      
      This new callback uses pure 'curl_off_t' arguments to pass on full
      resolution sizes. It otherwise retains the same characteristics: the
      same call rate, the same meanings for the arguments and the return code
      is used the same way.
      
      The progressfunc.c example is updated to show how to use the new
      callback for newer libcurls while supporting the older one if built with
      an older libcurl or even built with a newer libcurl while running with
      an older.
      12d01cb6
  4. Jun 22, 2013
  5. Apr 27, 2013
  6. Apr 12, 2013
  7. 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
  8. Mar 12, 2013
  9. Mar 11, 2013
  10. Mar 08, 2013
  11. Mar 07, 2013
  12. Feb 06, 2013
  13. Feb 04, 2013
  14. 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
  15. Jan 06, 2013
  16. Dec 28, 2012
  17. 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
  18. Nov 20, 2012
  19. Oct 10, 2012
  20. Sep 26, 2012
  21. Sep 16, 2012
  22. 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
  23. Aug 27, 2012
  24. 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
  25. Aug 08, 2012
  26. Jul 27, 2012
  27. 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
  28. Jun 03, 2012
  29. May 24, 2012
  30. May 22, 2012
  31. Apr 18, 2012
  32. Apr 14, 2012
  33. 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
  34. Apr 05, 2012
  35. Mar 23, 2012