[PATCH] handle netdev in udevruler

Here we get the netdev handling for udevruler, after all information
is available now in the udev database. It also fixes the way libsysfs is
used.
This commit is contained in:
kay.sievers@vrfy.org 2004-04-02 20:10:35 -08:00 committed by Greg KH
parent 9a689d5863
commit dd785ba628
1 changed files with 7 additions and 20 deletions

View File

@ -222,6 +222,7 @@ static int add_all_attributes(const char *path, int level)
}
}
sysfs_close_directory(sysfs_dir);
return 0;
}
@ -229,7 +230,6 @@ static int get_all_attributes(char *path)
{
struct sysfs_class_device *class_dev;
struct sysfs_class_device *class_dev_parent;
struct sysfs_attribute *attr;
struct sysfs_device *sysfs_dev;
struct sysfs_device *sysfs_dev_parent;
char key[NAME_SIZE];
@ -246,16 +246,6 @@ static int get_all_attributes(char *path)
return -1;
}
/* read the 'dev' file for major/minor*/
attr = sysfs_get_classdev_attr(class_dev, "dev");
if (attr == NULL) {
dbg("couldn't get the \"dev\" file");
retval = -1;
goto exit;
}
sysfs_close_attribute(attr);
/* open sysfs class device directory and get all attributes */
if (add_all_attributes(class_dev->path, level) != 0) {
dbg("couldn't open class device directory");
@ -266,11 +256,10 @@ static int get_all_attributes(char *path)
/* get the device link (if parent exists look here) */
class_dev_parent = sysfs_get_classdev_parent(class_dev);
if (class_dev_parent != NULL) {
//sysfs_close_class_device(class_dev);
class_dev = class_dev_parent;
}
sysfs_dev = sysfs_get_classdev_device(class_dev);
if (class_dev_parent != NULL)
sysfs_dev = sysfs_get_classdev_device(class_dev_parent);
else
sysfs_dev = sysfs_get_classdev_device(class_dev);
/* look the device chain upwards */
while (sysfs_dev != NULL) {
@ -290,13 +279,11 @@ static int get_all_attributes(char *path)
if (sysfs_dev_parent == NULL)
break;
//sysfs_close_device(sysfs_dev);
sysfs_dev = sysfs_dev_parent;
}
sysfs_close_device(sysfs_dev);
exit:
//sysfs_close_class_device(class_dev);
sysfs_close_class_device(class_dev);
return retval;
}
@ -403,7 +390,7 @@ int main(int argc, char *argv[]) {
int i;
int numitems;
struct attribute **selattr;
char text_rule[80];
char text_rule[255];
answer = newtRunForm(form);
if (answer == quit)