aboutsummaryrefslogtreecommitdiffstats
path: root/libbridge/libbridge_init.c
diff options
context:
space:
mode:
authorshemminger <shemminger>2006-01-31 19:33:58 +0000
committershemminger <shemminger>2006-01-31 19:33:58 +0000
commit1a3515681b242f0d91c8853fffd10e46b19355f0 (patch)
tree84c2653778f9a16bddb2c4e59382d676e5db3947 /libbridge/libbridge_init.c
parent2b0648e659667228eb102856321ac074b1f70551 (diff)
downloadandroid_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.c24
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: