From: Michael Tremer Date: Mon, 30 Jan 2023 20:55:42 +0000 (+0000) Subject: networkd: Call function when we are connected to dbus X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bf42846c2ac47b5ecb8eea5cba618b130a6401ab;p=network.git networkd: Call function when we are connected to dbus Signed-off-by: Michael Tremer --- diff --git a/src/networkd/bus.c b/src/networkd/bus.c index 95862d2d..36ae7c99 100644 --- a/src/networkd/bus.c +++ b/src/networkd/bus.c @@ -28,10 +28,18 @@ #include "daemon.h" #include "logging.h" -static int nw_bus_daemon_reload(sd_bus_message* m, void* data, sd_bus_error* ret_error) { +static int nw_bus_daemon_reload(sd_bus_message* m, void* data, sd_bus_error* error) { return 1; } +static int nw_bus_on_connect(sd_bus_message* m, void* data, sd_bus_error* error) { + struct nw_daemon* daemon = (struct nw_daemon*)data; + + DEBUG("Connected to D-Bus\n"); + + return 0; +} + static const sd_bus_vtable daemon_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_METHOD("Reload", SD_BUS_NO_ARGS, SD_BUS_NO_RESULT, @@ -127,5 +135,13 @@ int nw_bus_connect(sd_bus* bus, sd_event* loop) { return 1; } + // Request receiving a connect signal + r = sd_bus_match_signal_async(bus, NULL, "org.freedesktop.DBus.Local", + NULL, "org.freedesktop.DBus.Local", "Connected", nw_bus_on_connect, NULL, NULL); + if (r < 0) { + ERROR("Could not request match on Connected signal: %s\n", strerror(-r)); + return 1; + } + return 0; }