bits.close: introduce connection close tracking

Make all code use connclose() and connkeep() when changing the "close
state" for a connection. These two macros take a string argument with an
explanation, and debug builds of curl will include that in the debug
output. Helps tracking connection re-use/close issues.
This commit is contained in:
Daniel Stenberg
2014-05-20 10:32:23 +02:00
parent 491767418b
commit df13f8e8c2
18 changed files with 85 additions and 48 deletions

View File

@@ -1881,7 +1881,7 @@ static CURLcode imap_connect(struct connectdata *conn, bool *done)
*done = FALSE; /* default to not done yet */
/* We always support persistent connections in IMAP */
conn->bits.close = FALSE;
connkeep(conn, "IMAP default");
/* Set the default response time-out */
pp->response_time = RESP_TIMEOUT;
@@ -1938,7 +1938,7 @@ static CURLcode imap_done(struct connectdata *conn, CURLcode status,
return CURLE_OK;
if(status) {
conn->bits.close = TRUE; /* marked for closure */
connclose(conn, "IMAP done with bad status"); /* marked for closure */
result = status; /* use the already set error code */
}
else if(!data->set.connect_only && !imap->custom &&