]> git.ipfire.org Git - pakfire.git/commitdiff
downloader: Add support for FTP
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 May 2021 12:35:08 +0000 (12:35 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 May 2021 12:35:08 +0000 (12:35 +0000)
It seems that we have quite a few packages with FTP sources, so we will
have to support this for now.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/downloader.c

index c0c1a5d9c70e71af8de4be3569dda54388dcf9d3..b5f28b7480caa985aa0f134f3959dc480d209f73 100644 (file)
@@ -318,9 +318,9 @@ static struct pakfire_transfer* pakfire_downloader_create_transfer(
        curl_easy_setopt(transfer->handle, CURLOPT_DEBUGDATA, downloader->pakfire);
 #endif
 
-       // Limit protocols to HTTPS, HTTP, and FILE
+       // Limit protocols to HTTPS, HTTP, FTP and FILE
        curl_easy_setopt(transfer->handle, CURLOPT_PROTOCOLS,
-               CURLPROTO_HTTPS|CURLPROTO_HTTP|CURLPROTO_FILE);
+               CURLPROTO_HTTPS|CURLPROTO_HTTP|CURLPROTO_FTP|CURLPROTO_FILE);
 
        // Reference back to this transfer
        curl_easy_setopt(transfer->handle, CURLOPT_PRIVATE, transfer);
@@ -537,6 +537,14 @@ static int pakfire_transfer_done(struct pakfire_downloader* downloader,
                                        return 1;
                        }
                        break;
+
+               case CURLPROTO_FTP:
+                       if (response_code == 226)
+                               r = pakfire_transfer_save(downloader, transfer);
+                       else
+                               r = pakfire_transfer_fail(downloader, transfer, code);
+
+                       return r;
        }
 
        // Success