chiark / gitweb /
db: don't create a db file for only a node name to store
[elogind.git] / udevstart.c
index 8f8342ff48f80a19d841b3c83f85e45e47cbd95a..d0a1ded2be069cf16d0f8931a840f272875702d2 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "udev.h"
 #include "udev_rules.h"
+#include "udev_selinux.h"
 
 static const char *udev_run_str;
 static const char *udev_log_str;
@@ -108,7 +109,7 @@ static int add_device(const char *devpath)
 {
        struct sysfs_device *dev;
        struct udevice *udev;
-       int retval;
+       int retval = 0;
 
        /* clear and set environment for next event */
        clearenv();
@@ -130,7 +131,6 @@ static int add_device(const char *devpath)
        /* override built-in sysfs device */
        udev->dev = dev;
        strcpy(udev->action, "add");
-       udev->devt = udev_device_get_devt(udev);
 
        if (strcmp(udev->dev->subsystem, "net") != 0) {
                udev->devt = udev_device_get_devt(udev);
@@ -148,13 +148,11 @@ static int add_device(const char *devpath)
                goto exit;
        }
        if (udev->name[0] != '\0')
-               retval = udev_add_device(udev);
-       else {
+               retval = udev_device_event(&rules, udev);
+       else
                info("device node creation supressed");
-               goto exit;
-       }
 
-       if (retval == 0 && !udev->ignore_device && udev_run) {
+       if (retval == 0 && udev_run) {
                struct name_entry *name_loop;
 
                dbg("executing run list");
@@ -342,6 +340,7 @@ int main(int argc, char *argv[], char *envp[])
 
        logging_init("udevstart");
        udev_config_init();
+       selinux_init();
        dbg("version %s", UDEV_VERSION);
 
        udev_run_str = getenv("UDEV_RUN");