summaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-06-05 15:50:49 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-06-10 00:47:48 +0200
commit094b5f3540fec1401f514bc470f11f441527d30a (patch)
tree734089c8dbbcb1019310b98a729c0de6130eebff /lib/url.c
parentfb2839db24b0344d0c2a563787a70880486a19c8 (diff)
downloadcurl-094b5f3540fec1401f514bc470f11f441527d30a.tar.gz
multi: make sure 'data' can present in several sockhash entries
Since more than one socket can be used by each transfer at a given time, each sockhash entry how has its own hash table with transfers using that socket. In addition, the sockhash entry can now be marked 'blocked = TRUE'" which then makes the delete function just set 'removed = TRUE' instead of removing it "for real", as a way to not rip out the carpet under the feet of a parent function that iterates over the transfers of that same sockhash entry. Reported-by: Tom van der Woerdt Fixes #3961 Fixes #3986 Fixes #3995 Fixes #4004 Closes #3997
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/lib/url.c b/lib/url.c
index eb22dcc37..c37ce0494 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -1673,13 +1673,6 @@ static void free_idnconverted_hostname(struct hostname *host)
#endif
}
-static void llist_dtor(void *user, void *element)
-{
- (void)user;
- (void)element;
- /* Do nothing */
-}
-
/*
* Allocate and initialize a new connectdata object.
*/
@@ -1791,7 +1784,7 @@ static struct connectdata *allocate_conn(struct Curl_easy *data)
#endif
/* Initialize the easy handle list */
- Curl_llist_init(&conn->easyq, (curl_llist_dtor) llist_dtor);
+ Curl_llist_init(&conn->easyq, NULL);
#ifdef HAVE_GSSAPI
conn->data_prot = PROT_CLEAR;