Moved the secondarysocket cleanup. The 'conn' struct may have been cleared

already at that other place.
This commit is contained in:
Daniel Stenberg 2002-06-12 22:04:25 +00:00
Родитель 131645dc31
Коммит 407583e8e2
1 изменённых файлов: 9 добавлений и 8 удалений

Просмотреть файл

@ -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;
}