From: Michael Tremer Date: Fri, 28 Nov 2025 17:34:52 +0000 (+0000) Subject: sources: Pass the source itself to the init function X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c7f5b0d80b2d7b34ef2c3b5a3b7a5bc80a8f641;p=telemetry.git sources: Pass the source itself to the init function Signed-off-by: Michael Tremer --- diff --git a/src/daemon/source.c b/src/daemon/source.c index d1f645e..6cbbe2e 100644 --- a/src/daemon/source.c +++ b/src/daemon/source.c @@ -385,7 +385,7 @@ static int td_source_init(td_source* self) { return 0; // Initialize the source - r = self->impl->init(self->ctx); + r = self->impl->init(self->ctx, self); if (r < 0) { ERROR(self->ctx, "Failed to initialize %s: %s\n", td_source_name(self), strerror(-r)); diff --git a/src/daemon/source.h b/src/daemon/source.h index 4696d7e..e66b881 100644 --- a/src/daemon/source.h +++ b/src/daemon/source.h @@ -65,7 +65,7 @@ typedef struct td_source_impl { td_rrd_rra rrd_rras[MAX_RRA]; // Init - int (*init)(td_ctx* ctx); + int (*init)(td_ctx* ctx, td_source* source); // Free int (*free)(td_ctx* ctx); diff --git a/src/daemon/sources/contextswitches.c b/src/daemon/sources/contextswitches.c index 9053ce1..92a5122 100644 --- a/src/daemon/sources/contextswitches.c +++ b/src/daemon/sources/contextswitches.c @@ -36,7 +36,7 @@ static int perf_event_open(struct perf_event_attr* hw_event, static unsigned int num_cpus = 0; static int* perf_eventfds = NULL; -static int contextswitches_init(td_ctx* ctx) { +static int contextswitches_init(td_ctx* ctx, td_source* source) { struct perf_event_attr event = { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CONTEXT_SWITCHES, diff --git a/src/daemon/sources/interfaces.c b/src/daemon/sources/interfaces.c index f4ea08c..263f990 100644 --- a/src/daemon/sources/interfaces.c +++ b/src/daemon/sources/interfaces.c @@ -41,7 +41,7 @@ typedef struct interfaces_stats { rtnl_link_stat_id_t id; } interfaces_stats; -static int interfaces_init(td_ctx* ctx) { +static int interfaces_init(td_ctx* ctx, td_source* source) { int r; // Don't open the socket again diff --git a/src/daemon/sources/nftables.c b/src/daemon/sources/nftables.c index 765d9d7..aabfe53 100644 --- a/src/daemon/sources/nftables.c +++ b/src/daemon/sources/nftables.c @@ -55,7 +55,7 @@ typedef struct nftables_comments { unsigned int num_comments; } nftables_comments; -static int nftables_init(td_ctx* ctx) { +static int nftables_init(td_ctx* ctx, td_source* source) { int r; // Don't create another socket if one is already open