From: Michael Tremer Date: Wed, 8 Sep 2021 11:57:18 +0000 (+0000) Subject: downloader: Add reference to downloaders to transfers X-Git-Tag: 0.9.28~972 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cfa15dc659632a4137d2a591500ad4c890b33628;p=pakfire.git downloader: Add reference to downloaders to transfers This is needed to call logging functions in callbacks. Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/downloader.c b/src/libpakfire/downloader.c index 8befa7073..dcf5908e8 100644 --- a/src/libpakfire/downloader.c +++ b/src/libpakfire/downloader.c @@ -52,6 +52,8 @@ struct pakfire_mirror { }; struct pakfire_transfer { + struct pakfire_downloader* downloader; + TAILQ_ENTRY(pakfire_transfer) nodes; CURL* handle; @@ -275,6 +277,10 @@ static struct pakfire_transfer* pakfire_downloader_create_transfer( if (!transfer) return NULL; + // Keep a reference to downloader (without increasing the refcounter to avoid + // circular connections) + transfer->downloader = downloader; + // Copy title if (title) { pakfire_string_set(transfer->title, title); @@ -606,8 +612,8 @@ static size_t pakfire_downloader_write(char* data, size_t size, size_t nmemb, vo if (transfer->evp) { r = EVP_DigestUpdate(transfer->evp, data, nmemb); if (r != 1) { - //ERROR(downloader->pakfire, "EVP_DigestUpdate failed: %s\n", - // ERR_error_string(ERR_get_error(), NULL)); + ERROR(transfer->downloader->pakfire, "EVP_DigestUpdate failed: %s\n", + ERR_error_string(ERR_get_error(), NULL)); return 0; } }