]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
lldpd: Fix netlink notification group for address changes
authorSam Tannous <stannous@cumulusnetworks.com>
Tue, 8 Jul 2014 19:15:41 +0000 (15:15 -0400)
committerVincent Bernat <vincent@bernat.im>
Tue, 8 Jul 2014 19:44:28 +0000 (21:44 +0200)
The current netlink notification registration registers
for only link changes. This patch fixes it to include address
changes.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: Sam Tannous <stannous@cumulusnetworks.com>
src/daemon/netlink.c

index 3168554a85e54ad7e7374102f694946530a90143..46d653f99a84e69a4d4f0ba1ce7f50336df684a9 100644 (file)
@@ -422,6 +422,12 @@ netlink_get_addresses()
     return ifaddrs;
 }
 
+static int
+netlink_group_mask(int group)
+{
+       return group ? (1 << (group - 1)) : 0;
+}
+
 /**
  * Subscribe to link changes.
  *
@@ -430,6 +436,13 @@ netlink_get_addresses()
 int
 netlink_subscribe_changes()
 {
+    unsigned int groups;
+
     log_debug("netlink", "listening on interface changes");
-    return netlink_connect(NETLINK_ROUTE, RTMGRP_LINK);
+
+    groups = netlink_group_mask(RTNLGRP_LINK) |
+               netlink_group_mask(RTNLGRP_IPV4_IFADDR) |
+               netlink_group_mask(RTNLGRP_IPV6_IFADDR);
+
+    return netlink_connect(NETLINK_ROUTE, groups);
 }