]> git.ipfire.org Git - pakfire.git/commitdiff
httpclient: Set the base URL for new xfers
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 15 Sep 2024 02:53:19 +0000 (02:53 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 15 Sep 2024 02:53:19 +0000 (02:53 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/httpclient.c

index 882b29d673e6ad854c6db70e1b1ca04e1bfcc858..9043b788ab8ac594186790b0509a921349ba2fa2 100644 (file)
@@ -496,7 +496,31 @@ int pakfire_httpclient_set_baseurl(struct pakfire_httpclient* client, const char
 
 int pakfire_httpclient_create_xfer(struct pakfire_xfer** xfer,
                        struct pakfire_httpclient* client, const char* url) {
-       return pakfire_xfer_create(xfer, client->ctx, client, url);
+       struct pakfire_xfer* x = NULL;
+       int r;
+
+       // Create a new transfer
+       r = pakfire_xfer_create(&x, client->ctx, client, url);
+       if (r)
+               goto ERROR;
+
+       // Configure the base URL
+       if (*client->baseurl) {
+               r = pakfire_xfer_set_baseurl(x, client->baseurl);
+               if (r)
+                       goto ERROR;
+       }
+
+       // Return the result
+       *xfer = x;
+
+       return 0;
+
+ERROR:
+       if (x)
+               pakfire_xfer_unref(x);
+
+       return r;
 }
 
 int pakfire_httpclient_enqueue_xfer(struct pakfire_httpclient* client,