]> git.ipfire.org Git - pakfire.git/commitdiff
downloader: Correctly initialize cURL
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 25 Sep 2023 15:34:57 +0000 (15:34 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 25 Sep 2023 15:34:57 +0000 (15:34 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/downloader.c

index c11c86c22066610c9a90edf69db24e19261008a5..38fad822bb78783e646d6a5f35cbcf2b29d6837b 100644 (file)
@@ -106,6 +106,15 @@ static char* pakfire_url_join(const char* part1, const char* part2) {
 }
 
 static int pakfire_downloader_setup_curl(struct pakfire_downloader* downloader) {
+       int r;
+
+       // Initialize cURL
+       r = curl_global_init(CURL_GLOBAL_DEFAULT);
+       if (r) {
+               ERROR(downloader->pakfire, "Could not initialize cURL: %d\n", r);
+               return r;
+       }
+
        // Create a new multi handle
        downloader->curl = curl_multi_init();
        if (!downloader->curl) {
@@ -161,6 +170,8 @@ static void pakfire_downloader_free(struct pakfire_downloader* downloader) {
 }
 
 int pakfire_downloader_create(struct pakfire_downloader** downloader, struct pakfire* pakfire) {
+       int r;
+
        // Fail if pakfire is running in offline mode
        if (pakfire_has_flag(pakfire, PAKFIRE_FLAGS_OFFLINE)) {
                ERROR(pakfire, "Cannot initialize downloader in offline mode\n");
@@ -185,7 +196,7 @@ int pakfire_downloader_create(struct pakfire_downloader** downloader, struct pak
        TAILQ_INIT(&d->transfers);
 
        // Setup cURL
-       int r = pakfire_downloader_setup_curl(d);
+       r = pakfire_downloader_setup_curl(d);
        if (r)
                goto ERROR;