Commit b7eeb6e6 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Major overhaul introducing http pipelining support and shared connection

cache within the multi handle.
parent 7e4193b5
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -6,6 +6,25 @@

                                  Changelog

Daniel (6 September 2006)
- Ravi Pratap and I have implemented HTTP Pipelining support. Enable it for a
  multi handle using CURLMOPT_PIPELINING and all HTTP connections done on that
  handle will be attempted to get pipelined instead of done in parallell as
  they are performed otherwise.

  As a side-effect from this work, connections are now shared between all easy
  handles within a multi handle, so if you use N easy handles for transfers,
  each of them can pick up and re-use a connection that was previously used by
  any of the handles, be it the same or one of the others.

  This separation of the tight relationship between connections and easy
  handles is most noticable when you close easy handles that have been used in
  a multi handle and check amount of used memory or watch the debug output, as
  there are times when libcurl will keep the easy handle around for a while
  longer to be able to close it properly. Like for sending QUIT to close down
  an FTP connection.

  This is a major change.
  
Daniel (4 September 2006)
- Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a
+3 −2
Original line number Diff line number Diff line
Curl and libcurl 7.15.6
Curl and libcurl 7.16.0

 Public curl release number:               96
 Releases counted from the very beginning: 123
@@ -11,6 +11,7 @@ Curl and libcurl 7.15.6

This release includes the following changes:

 o CURLMOPT_PIPELINING added for enabling pipelined transfers
 o Added support for other MS-DOS compilers (besides djgpp)
 o CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA were added
 o (FTP) libcurl avoids sending TYPE if the desired type was already set
@@ -43,6 +44,6 @@ advice from friends like these:

 Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs,
 Peter Sylvester, David McCreedy, Dmitriy Sergeyev, Dmitry Rechkin,
 Jari Sundell
 Jari Sundell, Ravi Pratap

        Thanks! (and sorry if I forgot to mention someone)
+7 −0
Original line number Diff line number Diff line
@@ -32,6 +32,13 @@ details.
Pass a pointer to whatever you want passed to the curl_socket_callback's forth
argument, the userp pointer. This is not used by libcurl but only passed-thru
as-is. Set the callback pointer with \fICURLMOPT_SOCKETFUNCTION\fP.
.IP CURLMOPT_PIPELINING
Pass a long set to 1 to enable or 0 to disable. Enabling pipelining on a multi
handle will make it attempt to perform HTTP Pipelining as far as possible for
transfers using this handle. This means that if you add a second request that
can use an already existing connection, the second request will be \&"piped"
on the same connection rather than being executed in parallell. (Added in
7.16.0)
.SH RETURNS
The standard CURLMcode for multi interface error codes. Note that it returns a
CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
+4 −4
Original line number Diff line number Diff line
@@ -28,13 +28,13 @@

/* This is the version number of the libcurl package from which this header
   file origins: */
#define LIBCURL_VERSION "7.15.6-CVS"
#define LIBCURL_VERSION "7.16.0-CVS"

/* The numeric version number is also available "in parts" by using these
   defines: */
#define LIBCURL_VERSION_MAJOR 7
#define LIBCURL_VERSION_MINOR 15
#define LIBCURL_VERSION_PATCH 6
#define LIBCURL_VERSION_MINOR 16
#define LIBCURL_VERSION_PATCH 0

/* This is the numeric version of the libcurl version number, meant for easier
   parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -51,6 +51,6 @@
   and it is always a greater number in a more recent release. It makes
   comparisons with greater than and less than work.
*/
#define LIBCURL_VERSION_NUM 0x070f06
#define LIBCURL_VERSION_NUM 0x071000

#endif /* __CURL_CURLVER_H */
+3 −0
Original line number Diff line number Diff line
@@ -270,6 +270,9 @@ typedef enum {
  /* This is the argument passed to the socket callback */
  CINIT(SOCKETDATA, OBJECTPOINT, 2),

    /* set to 1 to enable pipelining for this multi handle */
  CINIT(PIPELINING, LONG, 3),

  CURLMOPT_LASTENTRY /* the last unused */
} CURLMoption;

Loading