From: Michael Tremer Date: Fri, 4 Oct 2024 16:01:22 +0000 (+0000) Subject: worker: Store a reference to the daemon's HTTP client X-Git-Tag: 0.9.30~1174 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f81c54d8f9d494d17846e1bd75ecfb7e886ec633;p=pakfire.git worker: Store a reference to the daemon's HTTP client Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/daemon.c b/src/libpakfire/daemon.c index 5bf010f14..4de32f5ab 100644 --- a/src/libpakfire/daemon.c +++ b/src/libpakfire/daemon.c @@ -723,6 +723,10 @@ sd_event* pakfire_daemon_loop(struct pakfire_daemon* daemon) { return sd_event_ref(daemon->loop); } +struct pakfire_httpclient* pakfire_daemon_httpclient(struct pakfire_daemon* daemon) { + return pakfire_httpclient_ref(daemon->client); +} + int pakfire_daemon_main(struct pakfire_daemon* daemon) { int r; diff --git a/src/libpakfire/include/pakfire/daemon.h b/src/libpakfire/include/pakfire/daemon.h index b2e11d843..62e4a7877 100644 --- a/src/libpakfire/include/pakfire/daemon.h +++ b/src/libpakfire/include/pakfire/daemon.h @@ -34,6 +34,7 @@ struct pakfire_daemon* pakfire_daemon_ref(struct pakfire_daemon* daemon); struct pakfire_daemon* pakfire_daemon_unref(struct pakfire_daemon* daemon); sd_event* pakfire_daemon_loop(struct pakfire_daemon* daemon); +struct pakfire_httpclient* pakfire_daemon_httpclient(struct pakfire_daemon* daemon); int pakfire_daemon_main(struct pakfire_daemon* daemon); diff --git a/src/libpakfire/worker.c b/src/libpakfire/worker.c index f2f1626e7..e77d8da6f 100644 --- a/src/libpakfire/worker.c +++ b/src/libpakfire/worker.c @@ -45,6 +45,9 @@ struct pakfire_worker { // Event Loop sd_event* loop; + // HTTP Client + struct pakfire_httpclient* client; + uuid_t job_id; char name[NAME_MAX]; @@ -224,6 +227,8 @@ static int pakfire_parse_job(struct pakfire_worker* worker, json_object* data) { } static void pakfire_worker_free(struct pakfire_worker* worker) { + if (worker->client) + pakfire_httpclient_unref(worker->client); if (worker->loop) sd_event_unref(worker->loop); if (worker->daemon) @@ -357,6 +362,14 @@ int pakfire_worker_create(struct pakfire_worker** worker, struct pakfire_ctx* ct goto ERROR; } + // Fetch a reference to the HTTP client + w->client = pakfire_daemon_httpclient(daemon); + if (!w->client) { + CTX_ERROR(w->ctx, "Could not fetch the HTTP client: %m\n"); + r = -errno; + goto ERROR; + } + // Initialize the PID file descriptor w->pidfd = -1;