diff options
author | Daniel Stenberg <daniel@haxx.se> | 2013-08-02 00:09:59 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2013-08-03 22:51:35 +0200 |
commit | 09b9fc9009bfe6b7b6fd5ba82e81b4ca76539d8d (patch) | |
tree | f3ac39747fce5bad3f067cb2746783b3473bf202 /lib/urldata.h | |
parent | 7da3caaf954c3688acbfcb0be7cf188bbfd65fa4 (diff) | |
download | curl-09b9fc9009bfe6b7b6fd5ba82e81b4ca76539d8d.tar.gz |
multi: remove 'Curl_one_easy' struct, phase 1
The motivation for having a separate struct that keep track of an easy
handle when using the multi handle was removed when we switched to
always using the multi interface internally. Now they were just two
separate struct that was always allocated for each easy handle.
This first step just moves the Curl_one_easy struct members into the
SessionHandle struct and hides this somehow (== keeps the source code
changes to a minimum) by defining Curl_one_easy to SessionHandle
The biggest changes in this commit are:
1 - the linked list of easy handles had to be changed somewhat due
to the new struct layout. This made the main linked list pointer
get renamed to 'easyp' and there's also a new pointer to the last
node, called easylp. It is no longer circular but ends with ->next
pointing to NULL. New nodes are still added last.
2 - easy->state is now called easy->mstate to avoid name collision
Diffstat (limited to 'lib/urldata.h')
-rw-r--r-- | lib/urldata.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/urldata.h b/lib/urldata.h index e245bfb4f..520fe2ca6 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -188,6 +188,7 @@ #include "http.h" #include "rtsp.h" #include "wildcard.h" +#include "multihandle.h" #ifdef HAVE_GSSAPI # ifdef HAVE_GSSGNU @@ -1619,6 +1620,25 @@ struct Names { */ struct SessionHandle { + /* first, two fields for the linked list of these */ + struct Curl_one_easy *next; + struct Curl_one_easy *prev; + + struct SessionHandle *easy_handle; /* the easy handle for this unit */ + struct connectdata *easy_conn; /* the "unit's" connection */ + + CURLMstate mstate; /* the handle's state */ + CURLcode result; /* previous result */ + + struct Curl_message msg; /* A single posted message. */ + + /* Array with the plain socket numbers this handle takes care of, in no + particular order. Note that all sockets are added to the sockhash, where + the state etc are also kept. This array is mostly used to detect when a + socket is to be removed from the hash. See singlesocket(). */ + curl_socket_t sockets[MAX_SOCKSPEREASYHANDLE]; + int numsocks; + struct Names dns; struct Curl_multi *multi; /* if non-NULL, points to the multi handle struct to which this "belongs" when used by |