From 7bee4140e886773a370b76eec80a264c0e7f142d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 19 Nov 2003 14:35:40 +0000 Subject: respect bits.close even if an error already is set, but make sure that the existing error is the one returned back --- lib/url.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/url.c b/lib/url.c index 6b0d19170..2ee6c0722 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3236,9 +3236,15 @@ CURLcode Curl_done(struct connectdata *conn) if conn->bits.close is TRUE, it means that the connection should be closed in spite of all our efforts to be nice, due to protocol restrictions in our or the server's end */ - if(data->set.reuse_forbid || - ((CURLE_OK == result) && conn->bits.close)) - result = Curl_disconnect(conn); /* close the connection */ + if(data->set.reuse_forbid || conn->bits.close) { + CURLcode res2; + res2 = Curl_disconnect(conn); /* close the connection */ + + /* If we had an error already, make sure we return that one. But + if we got a new error, return that. */ + if(!result && res2) + result = res2; + } else infof(data, "Connection #%d left intact\n", conn->connectindex); -- cgit v1.2.3