]> git.ipfire.org Git - pakfire.git/commitdiff
xfer: Add a function to add a JSON request body
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 16:24:06 +0000 (16:24 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 16:24:06 +0000 (16:24 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/xfer.c
src/pakfire/xfer.h

index 21d9c10cdcae4430b4b4c015e894792c4f99b886..0c018e625fcf88b2a8c0e84c72662b725539fb08 100644 (file)
@@ -706,6 +706,18 @@ int pakfire_xfer_set_payload(struct pakfire_xfer* self, const char* payload) {
        return 0;
 }
 
+int pakfire_xfer_set_json_payload(struct pakfire_xfer* self, struct json_object* json) {
+       const char* s = NULL;
+
+       // Convert the payload to string
+       s = pakfire_json_to_string(json);
+       if (!s)
+               return -EINVAL;
+
+       // Set the payload
+       return pakfire_xfer_set_payload(self, s);
+}
+
 static void pakfire_xfer_reset_output(struct pakfire_xfer* xfer) {
        if (xfer->fin) {
                fclose(xfer->fin);
index 1dd2d167699fd4cab6451074c46cc66c6032abf2..aaf5e0b920c34259ca45c7c0323cc5df4dd4c461 100644 (file)
@@ -120,7 +120,9 @@ int pakfire_xfer_add_query(struct pakfire_xfer* xfer,
 int pakfire_xfer_add_param(struct pakfire_xfer* xfer,
        const char* key, const char* format, ...) __attribute__((format(printf, 3, 4)));
 
+// Payload
 int pakfire_xfer_set_payload(struct pakfire_xfer* self, const char* payload);
+int pakfire_xfer_set_json_payload(struct pakfire_xfer* self, struct json_object* json);
 
 // Output
 int pakfire_xfer_set_output(struct pakfire_xfer* xfer, FILE* f);