DONE: consider callback-aborted transfers premature
This bug report properly identified that when doing SMTP and aborting the transfer with a callback, it must be considered aborted prematurely by the code to avoid QUIT etc to be attempted as that would cause a hang. The new test case 1507 verifies this behavior. Reported by: Patricia Muscalu Bug: http://curl.haxx.se/bug/view.cgi?id=1184
This commit is contained in:
@@ -5219,6 +5219,13 @@ CURLcode Curl_done(struct connectdata **connp,
|
||||
conn->dns_entry = NULL;
|
||||
}
|
||||
|
||||
if(status == CURLE_ABORTED_BY_CALLBACK)
|
||||
/* When we're aborted due to a callback return code it basically have to
|
||||
be counted as premature as there is trouble ahead if we don't. We have
|
||||
many callbacks and protocols work differently, we could potentially do
|
||||
this more fine-grained in the future. */
|
||||
premature = TRUE;
|
||||
|
||||
/* this calls the protocol-specific function pointer previously set */
|
||||
if(conn->handler->done)
|
||||
result = conn->handler->done(conn, status, premature);
|
||||
|
||||
Reference in New Issue
Block a user