chiark / gitweb /
Created cdrom_id program to make it easier to determine cdrom types
[elogind.git] / udev.c
diff --git a/udev.c b/udev.c
index 2a6e1efc9932e1699b9f0b69e3b2222a12f8a9a0..f0b2800a912b95951c283557b0b66de12dbad1bd 100644 (file)
--- a/udev.c
+++ b/udev.c
@@ -28,6 +28,7 @@
 #include <errno.h>
 #include <signal.h>
 #include <unistd.h>
+#include <syslog.h>
 
 #include "libsysfs/sysfs/libsysfs.h"
 #include "udev_libc_wrapper.h"
@@ -115,7 +116,7 @@ int main(int argc, char *argv[], char *envp[])
        }
 
        udev_init_device(&udev, devpath, subsystem, action);
-       udev_rules_init(&rules, 0);
+       udev_rules_init(&rules, 1, 0);
 
        retval = udev_process_event(&rules, &udev);
 
@@ -124,13 +125,15 @@ int main(int argc, char *argv[], char *envp[])
 
                dbg("executing run list");
                list_for_each_entry(name_loop, &udev.run_list, node) {
+                       info("RUN key executes '%s'", name_loop->name);
                        if (strncmp(name_loop->name, "socket:", strlen("socket:")) == 0)
                                pass_env_to_socket(&name_loop->name[strlen("socket:")], devpath, action);
                        else
-                               execute_program(name_loop->name, udev.subsystem, NULL, 0, NULL);
+                               run_program(name_loop->name, udev.subsystem, NULL, 0, NULL, (udev_log_priority >= LOG_DEBUG));
                }
        }
 
+       udev_rules_close(&rules);
        udev_cleanup_device(&udev);
 
 exit: