dnsmasq: add interface to ubus notification
authorBorja Salazar <borja.salazar@fon.com>
Wed, 29 Nov 2017 08:32:36 +0000 (09:32 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Wed, 29 Nov 2017 21:03:39 +0000 (22:03 +0100)
Signed-off-by: Borja Salazar <borja.salazar@fon.com>
package/network/services/dnsmasq/patches/240-ubus.patch

index 0e0b1dd1b0b4409294db291d9cf011b31504f10d..0a380ca8248dd10e30eaf695f5ab10fe3307ac2f 100644 (file)
@@ -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);
 +}
 +
  #  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
              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)