@@ -476,23 +476,17 @@ void CCDBDownloader::transferFinished(CURL* easy_handle, CURLcode curlCode)
476476 } break ;
477477 case ASYNCHRONOUS: {
478478 DownloaderRequestData* requestData = performData->requestData ;
479-
480479 if (requestData->headers ) {
481480 for (auto & p : requestData->hoPair .header ) {
482481 (*requestData->headers )[p.first ] = p.second ;
483482 }
484483 }
485- if (requestData->errorflag && requestData->headers ) {
486- (*requestData->headers )[" Error" ] = " An error occurred during retrieval" ;
487- }
488-
489484 // Log that transfer finished
490485 long httpCode;
491486 curl_easy_getinfo (easy_handle, CURLINFO_RESPONSE_CODE, &httpCode);
492487 char * url;
493488 curl_easy_getinfo (easy_handle, CURLINFO_EFFECTIVE_URL, &url);
494489 LOG (debug) << " Transfer for " << url << " finished with code " << httpCode << " \n " ;
495-
496490 std::string currentHost = requestData->hosts [performData->hostInd ];
497491 std::string loggingMessage = prepareLogMessage (currentHost, requestData->userAgent , requestData->path , requestData->timestamp , requestData->headers , httpCode);
498492
@@ -527,12 +521,18 @@ void CCDBDownloader::transferFinished(CURL* easy_handle, CURLcode curlCode)
527521
528522 if (!rescheduled) {
529523 // No more transfers will be done for this request, do cleanup specific for ASYNCHRONOUS calls
530- --(*performData->requestsLeft );
531- delete requestData;
532- delete performData->codeDestination ;
533524 if (!contentRetrieved) {
525+ if (requestData->hoPair .object ) {
526+ requestData->hoPair .object ->clear ();
527+ }
528+ if (requestData->headers ) {
529+ (*requestData->headers )[" Error" ] = " An error occurred during retrieval" ;
530+ }
534531 LOGP (alarm, " Curl request to {}, response code: {}" , url, httpCode);
535532 }
533+ --(*performData->requestsLeft );
534+ delete requestData;
535+ delete performData->codeDestination ;
536536 }
537537 } break ;
538538 }
0 commit comments