From: Borja Salazar Date: Wed, 29 Nov 2017 08:32:36 +0000 (+0100) Subject: dnsmasq: add interface to ubus notification X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=759785c01ad85fe560019d315011960fe987e73b;p=librecmc%2Flibrecmc.git dnsmasq: add interface to ubus notification Signed-off-by: Borja Salazar --- diff --git a/package/network/services/dnsmasq/patches/240-ubus.patch b/package/network/services/dnsmasq/patches/240-ubus.patch index 0e0b1dd1b0..0a380ca824 100644 --- a/package/network/services/dnsmasq/patches/240-ubus.patch +++ b/package/network/services/dnsmasq/patches/240-ubus.patch @@ -9,7 +9,7 @@ struct daemon *daemon; static volatile pid_t pid = 0; -@@ -32,6 +34,62 @@ static void fatal_event(struct event_des +@@ -32,6 +34,64 @@ static void fatal_event(struct event_des static int read_event(int fd, struct event_desc *evp, char **msg); static void poll_resolv(int force, int do_reload, time_t now); @@ -25,7 +25,7 @@ + .type = &ubus_object_type, +}; + -+void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name) ++void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface) +{ + if (!ubus || !ubus_object.has_subscribers) + return; @@ -37,6 +37,8 @@ + blobmsg_add_string(&b, "ip", ip); + if (name) + blobmsg_add_string(&b, "name", name); ++ if (interface) ++ blobmsg_add_string(&b, "interface", interface); + ubus_notify(ubus, &ubus_object, type, b.head, -1); +} + @@ -106,7 +108,7 @@ # endif #endif -+void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name); ++void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface); + /* ipset.c */ #ifdef HAVE_IPSET @@ -118,9 +120,9 @@ string ? string : "", err ? err : ""); + if (!strcmp(type, "DHCPACK")) -+ ubus_event_bcast("dhcp.ack", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL); ++ ubus_event_bcast("dhcp.ack", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL, interface); + else if (!strcmp(type, "DHCPRELEASE")) -+ ubus_event_bcast("dhcp.release", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL); ++ ubus_event_bcast("dhcp.release", daemon->namebuff, addr ? inet_ntoa(a) : NULL, string ? string : NULL, interface); } static void log_options(unsigned char *start, u32 xid)