From 11f6aef693e712af9ed67c4803617a06ce8d73b3 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 30 Aug 2023 17:53:39 +0000 Subject: [PATCH] downloader: Drop using deprecated CURLOPT_PROTOCOLS This reverts commit bf0f7d4ad237169f0da6a02c5b19981348616d30. It looks like we no longer need to support Buster, so this commit is now safe to apply. Signed-off-by: Michael Tremer --- src/libpakfire/downloader.c | 74 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/src/libpakfire/downloader.c b/src/libpakfire/downloader.c index 1752d253b..ccb0b2498 100644 --- a/src/libpakfire/downloader.c +++ b/src/libpakfire/downloader.c @@ -397,8 +397,7 @@ static struct pakfire_transfer* pakfire_downloader_create_transfer( #endif // Limit protocols to HTTPS, HTTP, FTP and FILE - curl_easy_setopt(transfer->handle, CURLOPT_PROTOCOLS, - CURLPROTO_HTTPS|CURLPROTO_HTTP|CURLPROTO_FTP|CURLPROTO_FILE); + curl_easy_setopt(transfer->handle, CURLOPT_PROTOCOLS_STR, "HTTPS,HTTP,FTP,FILE"); // Reference back to this transfer curl_easy_setopt(transfer->handle, CURLOPT_PRIVATE, transfer); @@ -549,9 +548,8 @@ static int pakfire_transfer_fail(struct pakfire_downloader* downloader, static int pakfire_transfer_done(struct pakfire_downloader* downloader, struct pakfire_transfer* transfer, int code) { CURL* h = transfer->handle; - int r; - long protocol; + char* scheme = NULL; const char* url; long response_code; long http_version; @@ -573,7 +571,7 @@ static int pakfire_transfer_done(struct pakfire_downloader* downloader, } // Protocol - curl_easy_getinfo(h, CURLINFO_PROTOCOL, &protocol); + curl_easy_getinfo(h, CURLINFO_SCHEME, &scheme); // Effective URL curl_easy_getinfo(h, CURLINFO_EFFECTIVE_URL, &url); @@ -641,44 +639,44 @@ static int pakfire_transfer_done(struct pakfire_downloader* downloader, } } - switch (protocol) { - case CURLPROTO_FILE: - // Handle any errors - if (code) - r = pakfire_transfer_fail(downloader, transfer, code); - else - r = pakfire_transfer_save(downloader, transfer); + // FILE + if (strcmp(scheme, "FILE") == 0) { + // Handle any errors + if (code) + r = pakfire_transfer_fail(downloader, transfer, code); + else + r = pakfire_transfer_save(downloader, transfer); - return r; - - case CURLPROTO_HTTPS: - case CURLPROTO_HTTP: - switch (response_code) { - // 200 - OK - case 200: - r = pakfire_transfer_save(downloader, transfer); - if (r) - return r; - break; - - // Treat all other response codes as an error - default: - r = pakfire_transfer_fail(downloader, transfer, code); - if (r) - return r; - - // Error - return 1; - } - break; + return r; - case CURLPROTO_FTP: - if (response_code == 226) + // HTTPS + HTTP + } else if ((strcmp(scheme, "HTTPS") == 0) || (strcmp(scheme, "HTTP") == 0)) { + switch (response_code) { + // 200 - OK + case 200: r = pakfire_transfer_save(downloader, transfer); - else + if (r) + return r; + break; + + // Treat all other response codes as an error + default: r = pakfire_transfer_fail(downloader, transfer, code); + if (r) + return r; - return r; + // Error + return 1; + } + + // FTP + } else if (strcmp(scheme, "FTP") == 0) { + if (response_code == 226) + r = pakfire_transfer_save(downloader, transfer); + else + r = pakfire_transfer_fail(downloader, transfer, code); + + return r; } // Success -- 2.39.5