From 3e0dee065f3a286d5ea85e767d2369a4061c8a55 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 24 May 2018 00:21:37 +0200 Subject: multi: provide a socket to wait for in Curl_protocol_getsock ... even when there's no protocol specific handler setup. Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html Reported-by: Sean Miller Closes #2600 --- lib/url.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/url.c') diff --git a/lib/url.c b/lib/url.c index 701f83ab3..411a0c814 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1554,7 +1554,11 @@ int Curl_protocol_getsock(struct connectdata *conn, { if(conn->handler->proto_getsock) return conn->handler->proto_getsock(conn, socks, numsocks); - return GETSOCK_BLANK; + /* Backup getsock logic. Since there is a live socket in use, we must wait + for it or it will be removed from watching when the multi_socket API is + used. */ + socks[0] = conn->sock[FIRSTSOCKET]; + return GETSOCK_READSOCK(0) | GETSOCK_WRITESOCK(0); } int Curl_doing_getsock(struct connectdata *conn, -- cgit v1.2.3