diff options
author | shemminger <shemminger> | 2006-01-31 19:33:58 +0000 |
---|---|---|
committer | shemminger <shemminger> | 2006-01-31 19:33:58 +0000 |
commit | 1a3515681b242f0d91c8853fffd10e46b19355f0 (patch) | |
tree | 84c2653778f9a16bddb2c4e59382d676e5db3947 /libbridge/libbridge_init.c | |
parent | 2b0648e659667228eb102856321ac074b1f70551 (diff) | |
download | android_external_brctl-1a3515681b242f0d91c8853fffd10e46b19355f0.tar.gz android_external_brctl-1a3515681b242f0d91c8853fffd10e46b19355f0.tar.bz2 android_external_brctl-1a3515681b242f0d91c8853fffd10e46b19355f0.zip |
Update bridge utils to support new sysfsutils 2.0 version
of libsysfs
Diffstat (limited to 'libbridge/libbridge_init.c')
-rw-r--r-- | libbridge/libbridge_init.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c index b194705..7cbf767 100644 --- a/libbridge/libbridge_init.c +++ b/libbridge/libbridge_init.c @@ -206,9 +206,8 @@ int br_foreach_port(const char *brname, { #ifdef HAVE_LIBSYSFS struct sysfs_class_device *dev; - struct sysfs_directory *dir; - struct sysfs_link *plink; - struct dlist *links; + struct dlist *list; + const char *name; int err = 0; char path[SYSFS_PATH_MAX]; @@ -220,28 +219,23 @@ int br_foreach_port(const char *brname, dev->path, SYSFS_BRIDGE_PORT_SUBDIR); dprintf("path=%s\n", path); - dir = sysfs_open_directory(path); - if (!dir) { + list = sysfs_open_directory_list(path); + if (!list) { /* no /sys/class/net/ethX/brif subdirectory * either: old kernel, or not really a bridge */ + dprintf("sysfs_open_directory failed\n"); goto old; } - links = sysfs_get_dir_links(dir); - if (!links) { - err = -ENOSYS; - goto out; - } - err = 0; - dlist_for_each_data(links, plink, struct sysfs_link) { + dlist_for_each_data(list, name, const char) { ++err; - if (iterator(brname, plink->name, arg)) + if (iterator(brname, name, arg)) break; } - out: - sysfs_close_directory(dir); + + sysfs_close_list(list); return err; old: |