Merge pull request #739 from orozery/cleanup_failing_curl_handles

cleanup curl handle state on retries
This commit is contained in:
Takeshi Nakatani 2018-04-01 22:45:04 +09:00 committed by GitHub
commit 1a23b880d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1762,7 +1762,9 @@ bool S3fsCurl::DestroyCurlHandle(void)
S3fsCurl::curl_times.erase(hCurl);
S3fsCurl::curl_progress.erase(hCurl);
sCurlPool->ReturnHandler(hCurl);
if(retry_count == 0){
sCurlPool->ReturnHandler(hCurl);
}
hCurl = NULL;
ClearInternalData();
@ -1872,7 +1874,12 @@ bool S3fsCurl::RemakeHandle(void)
partdata.size = b_partdata_size;
// reset handle
curl_easy_cleanup(hCurl);
hCurl = curl_easy_init();
ResetHandle();
// disable ssl cache, so that a new session will be created
curl_easy_setopt(hCurl, CURLOPT_SSL_SESSIONID_CACHE, 0);
curl_easy_setopt(hCurl, CURLOPT_SHARE, NULL);
// set options
switch(type){