From df5f70b8858c3ce53201a4a0f73e4937359af482 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 16 Sep 2022 18:38:08 +0200 Subject: [PATCH] ubus: notify on network updates Signed-off-by: Felix Fietkau --- network.c | 1 + ubus.c | 7 +++++++ ubus.h | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/network.c b/network.c index cb3e94b..44defdc 100644 --- a/network.c +++ b/network.c @@ -424,6 +424,7 @@ static void network_reload(struct uloop_timeout *t) unetd_write_hosts(); network_do_update(net, true); network_pex_open(net); + unetd_ubus_notify(net); } void network_soft_reload(struct network *net) diff --git a/ubus.c b/ubus.c index df45a54..4cac084 100644 --- a/ubus.c +++ b/ubus.c @@ -295,6 +295,13 @@ ubus_connect_handler(struct ubus_context *ctx) fprintf(stderr, "Failed to add object: %s\n", ubus_strerror(ret)); } +void unetd_ubus_notify(struct network *net) +{ + blob_buf_init(&b, 0); + blobmsg_add_string(&b, "network", network_name(net)); + ubus_notify(&conn.ctx, &unetd_object, "network_update", b.head, -1); +} + void unetd_ubus_netifd_update(struct blob_attr *data) { uint32_t id; diff --git a/ubus.h b/ubus.h index dfc0fa1..e18eaa8 100644 --- a/ubus.h +++ b/ubus.h @@ -7,12 +7,16 @@ #ifdef UBUS_SUPPORT void unetd_ubus_init(void); +void unetd_ubus_notify(struct network *net); void unetd_ubus_netifd_update(struct blob_attr *data); void unetd_ubus_netifd_add_route(struct network *net, union network_endpoint *ep); #else static inline void unetd_ubus_init(void) { } +static inline void unetd_ubus_notify(struct network *net) +{ +} static inline void unetd_ubus_netifd_update(struct blob_attr *data) { } -- 2.30.2