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

multiple connection support initial commit

parent 5f3d63ed
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
@@ -6,6 +6,54 @@

                               History of Changes

** curl 7.7 DOES NOT currently WORK. **

Daniel (20 February 2001)
- Added the docs/examples/win32sockets.c file for our windows friends.

- Linus Nielsen Feltzing provided brand new TELNET functionality and
  improvements:

  * Negotiation is now passive. Curl does not negotiate until the peer does.
  * Possibility to set negotiation options on the command line, currently only
    XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
  * Now sends the USER environment variable if the -u switch is used.
  * Use -t to set telnet options (Linus even updated the man page, awesome!)

- Haven't done this big changes to curl for a while. Moved around a lot of
  struct fields and stuff to make multiple connections get connection specific
  data in separate structs so that they can co-exist in a nice way. See the
  mailing lists for discussions around how this is gonna be implemented. Docs
  and more will follow.

  Studied the HTTP RFC to find out better how persistant connections should
  work. Seems cool enough.

Daniel (19 February 2001)
- Bob Schader brought me two files that help set up a MS VC++ libcurl project
  easier. He also provided me with an up-to-date libcurl.def file.

- I moved a bunch of prototypes from the public <curl/curl.h> file to the
  library private urldata.h. This is because of the upcoming changes. The
  low level interface is no longer being planned to become reality.

Daniel (15 February 2001)
- CURLOPT_POST is not required anymore. Just setting the POST string with
  CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
  libcurl already works this way, i.e they require only the parameter to
  switch on a feature so I think this works well with the rest. Setting a NULL
  string switches off the POST again.

- Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
  Reese helped me define a way how to incorporate persistant connections into
  libcurl in a very smooth way. If done right, no change may have to be made
  to older programs and they will just start using persistant connections when
  applicable!

Daniel (13 February 2001)
- Changed the word 'timeouted' to 'timed out' in two different error messages.
  Suggested by Larry Fahnoe.

Version 7.6.1

Daniel (9 February 2001)
+2 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ Misc
 - compiles on win32
 - redirectable stderr
 - use selected network interface for outgoing traffic
 - IPv6 support

HTTP
 - GET
@@ -28,7 +29,7 @@ HTTP
 - POST
 - multipart POST
 - authentication
 - resume
 - resume (both GET and PUT)
 - follow redirects
 - maximum amount of redirects to follow
 - custom HTTP request
+9 −6
Original line number Diff line number Diff line
@@ -425,11 +425,14 @@ If this option is used twice, the second will again disable mute.
When used with -s it makes curl show error message if it fails.

If this option is used twice, the second will again disable show error.
.IP "-t/--upload"
.B Deprecated. Use '-T -' instead.
Transfer the stdin data to the specified file. Curl will read
everything from stdin until EOF and store with the supplied name. If
this is used on a http(s) server, the PUT command will be used.
.IP "-t/--telnet-option <OPT=val>"
Pass options to the telnet protocol. Supported options are:

TTYPE=<term> Sets the terminal type.

XDISPLOC=<X display> Sets the X display location.

NEW_ENV=<var,val> Sets an environment variable.
.IP "-T/--upload-file <file>"
Like -t, but this transfers the specified local file. If there is no
file part in the specified URL, Curl will append the local file
@@ -758,7 +761,7 @@ If you do find bugs, mail them to curl-bug@haxx.se.
 - Lars J. Aas <larsa@sim.no>
 - Jörn Hartroth <Joern.Hartroth@computer.org>
 - Matthew Clarke <clamat@van.maves.ca>
 - Linus Nielsen <Linus.Nielsen@haxx.se>
 - Linus Nielsen Feltzing <linus@haxx.se>
 - Felix von Leitner <felix@convergence.de>
 - Dan Zitter <dzitter@zitter.net>
 - Jongki Suwandi <Jongki.Suwandi@eng.sun.com>
+22 −2
Original line number Diff line number Diff line
@@ -158,6 +158,9 @@ typedef enum {
  CURLE_BAD_PASSWORD_ENTERED, /* when the my_getpass() returns fail */
  CURLE_TOO_MANY_REDIRECTS , /* catch endless re-direct loops */

  CURLE_UNKNOWN_TELNET_OPTION , /* User specified an unknown option */
  CURLE_TELNET_OPTION_SYNTAX , /* Malformed telnet option */

  CURL_LAST
} CURLcode;

@@ -406,6 +409,9 @@ typedef enum {
     document! Pass a NULL to shut it off. */
  CINIT(FILETIME, OBJECTPOINT, 69),

  /* This points to a linked list of telnet options */
  CINIT(TELNETOPTIONS, OBJECTPOINT, 70),

  CURLOPT_LASTENTRY /* the last unusued */
} CURLoption;

@@ -452,8 +458,8 @@ char *curl_getenv(char *variable);
char *curl_version(void);

/* This is the version number */
#define LIBCURL_VERSION "7.6.1"
#define LIBCURL_VERSION_NUM 0x070601
#define LIBCURL_VERSION "7.7-alpha1"
#define LIBCURL_VERSION_NUM 0x070000

/* linked-list structure for the CURLOPT_QUOTE option (and other) */
struct curl_slist {
@@ -520,6 +526,20 @@ typedef enum {
 */
CURLcode curl_getinfo(CURL *curl, CURLINFO info, ...);


typedef enum {
  CURLCLOSEPOLICY_NONE, /* first, never use this */

  CURLCLOSEPOLICY_OLDEST,
  CURLCLOSEPOLICY_LEAST_RECENTLY_USED,
  CURLCLOSEPOLICY_LEAST_TRAFFIC,
  CURLCLOSEPOLICY_SLOWEST,
  CURLCLOSEPOLICY_CALLBACK,
 
  CURLCLOSEPOLICY_LAST /* last, never use this */
} curl_closepolicy;


#ifdef  __cplusplus
}
#endif
+6 −6
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ CURLcode Curl_dict(struct connectdata *conn)
      nth = atoi(nthdef);
    }
      
    Curl_sendf(data->firstsocket, conn,
    Curl_sendf(conn->firstsocket, conn,
               "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\n"
               "MATCH "
               "%s "    /* database */
@@ -154,7 +154,7 @@ CURLcode Curl_dict(struct connectdata *conn)
               word
               );
    
    result = Curl_Transfer(conn, data->firstsocket, -1, FALSE, bytecount,
    result = Curl_Transfer(conn, conn->firstsocket, -1, FALSE, bytecount,
                           -1, NULL); /* no upload */
      
    if(result)
@@ -191,7 +191,7 @@ CURLcode Curl_dict(struct connectdata *conn)
      nth = atoi(nthdef);
    }
      
    Curl_sendf(data->firstsocket, conn,
    Curl_sendf(conn->firstsocket, conn,
               "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\n"
               "DEFINE "
               "%s "     /* database */
@@ -202,7 +202,7 @@ CURLcode Curl_dict(struct connectdata *conn)
               word
               );
    
    result = Curl_Transfer(conn, data->firstsocket, -1, FALSE, bytecount,
    result = Curl_Transfer(conn, conn->firstsocket, -1, FALSE, bytecount,
                           -1, NULL); /* no upload */
    
    if(result)
@@ -220,13 +220,13 @@ CURLcode Curl_dict(struct connectdata *conn)
        if (ppath[i] == ':')
          ppath[i] = ' ';
      }
      Curl_sendf(data->firstsocket, conn,
      Curl_sendf(conn->firstsocket, conn,
                 "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\n"
                 "%s\n"
                 "QUIT\n",
                 ppath);
      
      result = Curl_Transfer(conn, data->firstsocket, -1, FALSE, bytecount,
      result = Curl_Transfer(conn, conn->firstsocket, -1, FALSE, bytecount,
                             -1, NULL);
      
      if(result)
Loading