[systemd-commits] src/udev

Kay Sievers kay at kemper.freedesktop.org
Tue Jan 8 05:56:01 PST 2013


 src/udev/udev-builtin-net_id.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit 72bc96f07868d532596477604b6fb41633ebd124
Author: Kay Sievers <kay at vrfy.org>
Date:   Tue Jan 8 14:54:12 2013 +0100

    udev: net_id - skip stacked network devices

diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
index d5db762..1975c6d 100644
--- a/src/udev/udev-builtin-net_id.c
+++ b/src/udev/udev-builtin-net_id.c
@@ -366,6 +366,7 @@ static int ieee_oui(struct udev_device *dev, struct netnames *names, bool test)
 
 static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool test) {
         const char *s;
+        const char *p;
         unsigned int i;
         const char *devtype;
         const char *prefix = "en";
@@ -380,6 +381,16 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
         if (i != 1)
                 return 0;
 
+        /* skip stacked devices, like VLANs, ... */
+        s = udev_device_get_sysattr_value(dev, "ifindex");
+        if (!s)
+                return EXIT_FAILURE;
+        p = udev_device_get_sysattr_value(dev, "iflink");
+        if (!p)
+                return EXIT_FAILURE;
+        if (strcmp(s, p) != 0)
+                return 0;
+
         devtype = udev_device_get_devtype(dev);
         if (devtype) {
                 if (streq("wlan", devtype))



More information about the systemd-commits mailing list