- Armel Asselin improved libcurl to behave a lot better when an easy handle
doing an FTP transfer is removed from a multi handle before completion. The fix also fixed the "alive counter" to be correct on "premature removal" for all protocols.
This commit is contained in:
@@ -4087,7 +4087,7 @@ CURLcode Curl_async_resolved(struct connectdata *conn,
|
||||
|
||||
|
||||
CURLcode Curl_done(struct connectdata **connp,
|
||||
CURLcode status) /* an error if this is called after an
|
||||
CURLcode status, bool premature) /* an error if this is called after an
|
||||
error was detected */
|
||||
{
|
||||
CURLcode result;
|
||||
@@ -4127,7 +4127,7 @@ CURLcode Curl_done(struct connectdata **connp,
|
||||
|
||||
/* this calls the protocol-specific function pointer previously set */
|
||||
if(conn->curl_done)
|
||||
result = conn->curl_done(conn, status);
|
||||
result = conn->curl_done(conn, status, premature);
|
||||
else
|
||||
result = CURLE_OK;
|
||||
|
||||
@@ -4193,7 +4193,7 @@ CURLcode Curl_do(struct connectdata **connp, bool *done)
|
||||
infof(data, "Re-used connection seems dead, get a new one\n");
|
||||
|
||||
conn->bits.close = TRUE; /* enforce close of this connection */
|
||||
result = Curl_done(&conn, result); /* we are so done with this */
|
||||
result = Curl_done(&conn, result, FALSE); /* we are so done with this */
|
||||
|
||||
/* conn may no longer be a good pointer */
|
||||
|
||||
|
Reference in New Issue
Block a user