http_proxy: only wait for writable socket while sending request

Otherwise it would wait socket writability even after the entire CONNECT
request has sent and make curl basically busy-loop while waiting for a
response to come back.

The previous fix attempt in #7484 (c27a70a591) was inadequate.

Reported-by: zloi-user on github
Reported-by: Oleguer Llopart
Fixes #7589
Closes #7647
This commit is contained in:
Daniel Stenberg 2021-08-27 17:42:40 +02:00
parent 5dc594e44f
commit 4fee6c644f
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -148,7 +148,7 @@ int Curl_connect_getsock(struct connectdata *conn)
DEBUGASSERT(conn->connect_state);
http = &conn->connect_state->http_proxy;
if(http->sending)
if(http->sending == HTTPSEND_REQUEST)
return GETSOCK_WRITESOCK(0);
return GETSOCK_READSOCK(0);