]> git.ipfire.org Git - pakfire.git/commitdiff
downloader: Implement using custom methods
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 19 Oct 2023 21:14:36 +0000 (21:14 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 19 Oct 2023 21:14:36 +0000 (21:14 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/downloader.c
src/libpakfire/include/pakfire/downloader.h

index f437e02b1bf6dddbb6949371bdd09b95f66e6552..28fc77cb21a7c24c153b735c556583b86a8fc3a5 100644 (file)
@@ -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;
index aed84475ad8880876de5a6e235d517ea90936f3a..cddb8d3fe30bb4340d3411850b96f2f00c683743 100644 (file)
@@ -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);