]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-netlink: add support for subscribing to ROUTE messages
authorTom Gundersen <teg@jklm.no>
Fri, 9 Oct 2015 19:37:04 +0000 (21:37 +0200)
committerTom Gundersen <teg@jklm.no>
Sun, 11 Oct 2015 13:04:16 +0000 (15:04 +0200)
Also, explicitly don't support subscribing to GET or SET messages, as these will
never be emitted by the kernel.

src/libsystemd/sd-netlink/sd-netlink.c

index d248869c8dab917e01718e836112ee94dc33fe6b..f4a0a358a9cb69a14eb677fb380e77e8ccd78aa2 100644 (file)
@@ -856,8 +856,6 @@ int sd_netlink_add_match(sd_netlink *rtnl,
 
         switch (type) {
                 case RTM_NEWLINK:
-                case RTM_SETLINK:
-                case RTM_GETLINK:
                 case RTM_DELLINK:
                         r = socket_join_broadcast_group(rtnl, RTNLGRP_LINK);
                         if (r < 0)
@@ -865,7 +863,6 @@ int sd_netlink_add_match(sd_netlink *rtnl,
 
                         break;
                 case RTM_NEWADDR:
-                case RTM_GETADDR:
                 case RTM_DELADDR:
                         r = socket_join_broadcast_group(rtnl, RTNLGRP_IPV4_IFADDR);
                         if (r < 0)
@@ -876,6 +873,16 @@ int sd_netlink_add_match(sd_netlink *rtnl,
                                 return r;
 
                         break;
+                case RTM_NEWROUTE:
+                case RTM_DELROUTE:
+                        r = socket_join_broadcast_group(rtnl, RTNLGRP_IPV4_ROUTE);
+                        if (r < 0)
+                                return r;
+
+                        r = socket_join_broadcast_group(rtnl, RTNLGRP_IPV6_ROUTE);
+                        if (r < 0)
+                                return r;
+                        break;
                 default:
                         return -EOPNOTSUPP;
         }