aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/multi.c3
-rw-r--r--lib/url.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c
index b3b571612..02d225759 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -317,6 +317,9 @@ struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */
multi->closure_handle->state.conn_cache = multi->conn_cache;
multi->max_pipeline_length = 5;
+
+ /* -1 means it not set by user, use the default value */
+ multi->maxconnects = -1;
return (CURLM *) multi;
error:
diff --git a/lib/url.c b/lib/url.c
index c0aebef16..4d7508eee 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -3190,7 +3190,8 @@ ConnectionDone(struct SessionHandle *data, struct connectdata *conn)
{
/* data->multi->maxconnects can be negative, deal with it. */
size_t maxconnects =
- (data->multi->maxconnects < 0) ? 0 : data->multi->maxconnects;
+ (data->multi->maxconnects < 0) ? data->multi->num_easy * 4:
+ data->multi->maxconnects;
struct connectdata *conn_candidate = NULL;
/* Mark the current connection as 'unused' */