Ignore bonding Ethernet interfaces
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 26 Aug 2009 02:40:36 +0000 (19:40 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 26 Aug 2009 02:40:36 +0000 (19:40 -0700)
src/inet.c

index 09183a0..a797c9d 100644 (file)
@@ -309,11 +309,15 @@ enum connman_device_type __connman_inet_get_device_type(int index)
        devname = ifr.ifr_name;
 
        if (type == ARPHRD_ETHER) {
-               char bridge_path[PATH_MAX], wimax_path[PATH_MAX];
+               char bonding_path[PATH_MAX];
+               char bridge_path[PATH_MAX];
+               char wimax_path[PATH_MAX];
                struct stat st;
                struct iwreq iwr;
                char *devnode;
 
+               snprintf(bonding_path, PATH_MAX,
+                                       "/sys/class/net/%s/bonding", devname);
                snprintf(bridge_path, PATH_MAX,
                                        "/sys/class/net/%s/bridge", devname);
                snprintf(wimax_path, PATH_MAX,
@@ -341,6 +345,8 @@ enum connman_device_type __connman_inet_get_device_type(int index)
                        devtype = CONNMAN_DEVICE_TYPE_WIMAX;
                else if (stat(bridge_path, &st) == 0 && (st.st_mode & S_IFDIR))
                        devtype = CONNMAN_DEVICE_TYPE_UNKNOWN;
+               else if (stat(bonding_path, &st) == 0 && (st.st_mode & S_IFDIR))
+                       devtype = CONNMAN_DEVICE_TYPE_UNKNOWN;
                else if (ioctl(sk, SIOCGIWNAME, &iwr) == 0)
                        devtype = CONNMAN_DEVICE_TYPE_WIFI;
                else