summaryrefslogtreecommitdiff
path: root/src/inet.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-08-25 19:40:36 -0700
committerMarcel Holtmann <marcel@holtmann.org>2009-08-25 19:40:36 -0700
commit51f653a6d38fa9e017980058a6c0adba9ea03820 (patch)
tree3bbb5a423f5a654b3a470d8cc1fa33ae9f11ce60 /src/inet.c
parent132d39ba546810e84351d939566308a16572add8 (diff)
downloadconnman-51f653a6d38fa9e017980058a6c0adba9ea03820.tar.gz
connman-51f653a6d38fa9e017980058a6c0adba9ea03820.tar.bz2
connman-51f653a6d38fa9e017980058a6c0adba9ea03820.zip
Ignore bonding Ethernet interfaces
Diffstat (limited to 'src/inet.c')
-rw-r--r--src/inet.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/inet.c b/src/inet.c
index 09183a09..a797c9d3 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -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