ConnectPlease() fixed for the new proxy connect functionality to make sure

'connected' truly is false when the socks connect fails.

Curl_done() fixed for the check-conn->bits.done-before-Curl_getoff_all_pipelines case
This commit is contained in:
Daniel Stenberg 2009-05-09 21:34:48 +00:00
parent ddb0b8d8b8
commit fd5e69f769
1 changed files with 11 additions and 7 deletions

View File

@ -2886,7 +2886,8 @@ static CURLcode ConnectPlease(struct SessionHandle *data,
if(*connected)
result = Curl_connected_proxy(conn);
}
else
if(result)
*connected = FALSE; /* mark it as not connected */
return result;
@ -4777,18 +4778,21 @@ CURLcode Curl_done(struct connectdata **connp,
Curl_expire(data, 0); /* stop timer */
if(conn->bits.done ||
(conn->send_pipe->size + conn->recv_pipe->size != 0 &&
if(conn->bits.done)
/* Stop if Curl_done() has already been called */
return CURLE_OK;
Curl_getoff_all_pipelines(data, conn);
if((conn->send_pipe->size + conn->recv_pipe->size != 0 &&
!data->set.reuse_forbid &&
!conn->bits.close))
/* Stop if Curl_done() has already been called or pipeline
is not empty and we do not have to close connection. */
/* Stop if pipeline is not empty and we do not have to close
connection. */
return CURLE_OK;
conn->bits.done = TRUE; /* called just now! */
Curl_getoff_all_pipelines(data, conn);
/* Cleanup possible redirect junk */
if(data->req.newurl) {
free(data->req.newurl);