chiark / gitweb /
063 release
[elogind.git] / udevstart.c
index 4e922bb716a734d21e94fd7b5f5f358a40d72c33..0bcbc3973723d605987c31c44b1d8a1903dd0e5e 100644 (file)
@@ -2,10 +2,12 @@
  * udevstart.c
  *
  * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
- * 
+ * Copyright (C) 2004 Kay Sievers <kay@vrfy.org>
+ *
  * Quick and dirty way to populate a /dev with udev if your system
- * does not have access to a shell.  Based originally on a patch to udev 
- * from Harald Hoyer <harald@redhat.com>
+ * does not have access to a shell.  Based originally on a patch
+ * from:
+ *     Harald Hoyer <harald@redhat.com>
  *
  *     This program is free software; you can redistribute it and/or modify it
  *     under the terms of the GNU General Public License as published by the
 #include "udev.h"
 #include "udev_version.h"
 #include "logging.h"
-#include "udev_rules.h"
 #include "udev_utils.h"
+#include "udev_rules.h"
 #include "list.h"
 
 static const char *udev_run_str;
 static const char *udev_log_str;
+static struct udev_rules rules;
 
 #ifdef USE_LOG
 void log_message(int priority, const char *format, ...)
@@ -135,11 +138,11 @@ static int add_device(const char *path, const char *subsystem)
 
        udev_init_device(&udev, devpath, subsystem, "add");
        udev.devt = get_devt(class_dev);
-       if (!udev.devt) {
+       if (!udev.devt && udev.type != DEV_NET) {
                dbg("sysfs_open_class_device_path failed");
                return -1;
        }
-       udev_rules_get_name(&udev, class_dev);
+       udev_rules_get_name(&rules, &udev, class_dev);
        if (udev.ignore_device) {
                dbg("device event will be ignored");
                goto exit;
@@ -337,7 +340,7 @@ int main(int argc, char *argv[], char *envp[])
 {
        struct sigaction act;
 
-       logging_init("udev");
+       logging_init("udevstart");
        udev_init_config();
        dbg("version %s", UDEV_VERSION);
 
@@ -358,13 +361,14 @@ int main(int argc, char *argv[], char *envp[])
        sigaction(SIGTERM, &act, NULL);
 
        /* trigger timeout to prevent hanging processes */
-       alarm(ALARM_TIMEOUT);
+       alarm(UDEV_ALARM_TIMEOUT);
 
-       udev_rules_init();
+       udev_rules_init(&rules, 1);
 
        udev_scan_block();
        udev_scan_class();
 
+       udev_rules_close(&rules);
        logging_close();
        return 0;
 }