Moved the secondarysocket cleanup. The 'conn' struct may have been cleared
already at that other place.
This commit is contained in:
Родитель
131645dc31
Коммит
407583e8e2
|
@ -1188,12 +1188,20 @@ CURLcode Curl_perform(struct SessionHandle *data)
|
|||
* may be free()ed in the Curl_done() function.
|
||||
*/
|
||||
newurl = conn->newurl?strdup(conn->newurl):NULL;
|
||||
else
|
||||
else {
|
||||
/* The transfer phase returned error, we mark the connection to get
|
||||
* closed to prevent being re-used. This is becasue we can't
|
||||
* possibly know if the connection is in a good shape or not now. */
|
||||
conn->bits.close = TRUE;
|
||||
|
||||
if(-1 !=conn->secondarysocket) {
|
||||
/* if we failed anywhere, we must clean up the secondary socket if
|
||||
it was used */
|
||||
sclose(conn->secondarysocket);
|
||||
conn->secondarysocket=-1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Always run Curl_done(), even if some of the previous calls
|
||||
failed, but return the previous (original) error code */
|
||||
res2 = Curl_done(conn);
|
||||
|
@ -1414,13 +1422,6 @@ CURLcode Curl_perform(struct SessionHandle *data)
|
|||
if(!res && res2)
|
||||
res = res2;
|
||||
|
||||
if(conn && (-1 !=conn->secondarysocket)) {
|
||||
/* if we failed anywhere, we must clean up the secondary socket if it
|
||||
was used */
|
||||
sclose(conn->secondarysocket);
|
||||
conn->secondarysocket=-1;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче