]> git.ipfire.org Git - pakfire.git/commitdiff
downloader: Drop using deprecated CURLOPT_PROTOCOLS
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 30 Aug 2023 17:53:39 +0000 (17:53 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 30 Aug 2023 17:53:39 +0000 (17:53 +0000)
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 <michael.tremer@ipfire.org>
src/libpakfire/downloader.c

index 1752d253b6df49ac1cbff0b5d3e1bb102693694d..ccb0b2498e5c09616f21f424e91e7339ed0e94fb 100644 (file)
@@ -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