chiark / gitweb /
[PATCH] handle netdev in udevruler
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Sat, 3 Apr 2004 04:10:35 +0000 (20:10 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:35:14 +0000 (21:35 -0700)
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.

udevruler.c

index a13bd62..a065591 100644 (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)