From: Michael Tremer Date: Thu, 19 Oct 2023 21:14:36 +0000 (+0000) Subject: downloader: Implement using custom methods X-Git-Tag: 0.9.30~1436 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc14e2b45c0250bb982e57a84b71e20c73a0ae61;p=pakfire.git downloader: Implement using custom methods Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/downloader.c b/src/libpakfire/downloader.c index f437e02b1..28fc77cb2 100644 --- a/src/libpakfire/downloader.c +++ b/src/libpakfire/downloader.c @@ -507,6 +507,23 @@ struct pakfire_transfer* pakfire_downloader_transfer_unref(struct pakfire_transf return NULL; } +int pakfire_downloader_transfer_set_method(struct pakfire_transfer* transfer, + const pakfire_transfer_method_t method) { + const char* m = NULL; + + switch (method) { + case PAKFIRE_METHOD_DELETE: + m = "DELETE"; + break; + + default: + return -EINVAL; + } + + return curl_easy_setopt(transfer->handle, CURLOPT_CUSTOMREQUEST, m); +} + + const char* pakfire_downloader_transfer_get_title(struct pakfire_transfer* transfer) { char title[PATH_MAX]; int r; diff --git a/src/libpakfire/include/pakfire/downloader.h b/src/libpakfire/include/pakfire/downloader.h index aed84475a..cddb8d3fe 100644 --- a/src/libpakfire/include/pakfire/downloader.h +++ b/src/libpakfire/include/pakfire/downloader.h @@ -34,6 +34,10 @@ enum pakfire_transfer_flags { PAKFIRE_TRANSFER_NOTEMP = (1 << 1), }; +typedef enum pakfire_transfer_method { + PAKFIRE_METHOD_DELETE, +} pakfire_transfer_method_t; + int pakfire_downloader_create(struct pakfire_downloader** downloader, struct pakfire_ctx* ctx); struct pakfire_downloader* pakfire_downloader_ref(struct pakfire_downloader* downloader); @@ -45,6 +49,8 @@ int pakfire_downloader_transfer_create( struct pakfire_transfer** transfer, struct pakfire_downloader* downloader, const char* url); struct pakfire_transfer* pakfire_downloader_transfer_ref(struct pakfire_transfer* transfer); struct pakfire_transfer* pakfire_downloader_transfer_unref(struct pakfire_transfer* transfer); +int pakfire_downloader_transfer_set_method(struct pakfire_transfer* transfer, + const pakfire_transfer_method_t method); const char* pakfire_downloader_transfer_get_title(struct pakfire_transfer* transfer); int pakfire_downloader_transfer_set_title( struct pakfire_transfer* transfer, const char* title);