X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev.c;h=23375b7a3e3af118f7a3a17464a01ccf681edb4c;hp=069cecf973193212f82a89a7c0743e6d256a83fc;hb=e03a196a0d0680868ea230ab8f8d100ee90d0fa4;hpb=e5e322bc627a07d29a07e08f7c96bd644a3ae057 diff --git a/udev.c b/udev.c index 069cecf97..23375b7a3 100644 --- a/udev.c +++ b/udev.c @@ -40,17 +40,16 @@ #include "udev_rules.h" #include "logging.h" - #ifdef USE_LOG -void log_message(int level, const char *format, ...) +void log_message(int priority, const char *format, ...) { va_list args; - if (!udev_log) + if (priority > udev_log_priority) return; va_start(args, format); - vsyslog(level, format, args); + vsyslog(priority, format, args); va_end(args); } #endif @@ -115,13 +114,12 @@ int main(int argc, char *argv[], char *envp[]) } logging_init("udev"); - dbg("version %s", UDEV_VERSION); - udev_init_config(); + dbg("version %s", UDEV_VERSION); /* set signal handlers */ memset(&act, 0x00, sizeof(act)); - act.sa_handler = (void (*) (int))sig_handler; + act.sa_handler = (void (*)(int)) sig_handler; sigemptyset (&act.sa_mask); act.sa_flags = 0; sigaction(SIGALRM, &act, NULL); @@ -143,16 +141,20 @@ int main(int argc, char *argv[], char *envp[]) if (!subsystem && argc == 2) subsystem = argv[1]; - udev_init_device(&udev, devpath, subsystem); + udev_init_device(&udev, devpath, subsystem, action); if (!action || !subsystem || !devpath) { - dbg("action, subsystem or devpath missing"); + err("action, subsystem or devpath missing"); goto hotplug; } /* export logging flag, as called scripts may want to do the same as udev */ - if (udev_log) - setenv("UDEV_LOG", "1", 1); + if (udev_log_priority) { + char priority[32]; + + sprintf(priority, "%i", udev_log_priority); + setenv("UDEV_LOG", priority, 1); + } if (udev.type == DEV_BLOCK || udev.type == DEV_CLASS || udev.type == DEV_NET) { if (strcmp(action, "add") == 0) { @@ -169,7 +171,7 @@ int main(int argc, char *argv[], char *envp[]) path[sizeof(path)-1] = '\0'; class_dev = wait_class_device_open(path); if (class_dev == NULL) { - dbg ("open class device failed"); + dbg("open class device failed"); goto hotplug; } dbg("opened class_dev->name='%s'", class_dev->name); @@ -228,10 +230,11 @@ int main(int argc, char *argv[], char *envp[]) } hotplug: - udev_cleanup_device(&udev); if (udev_hotplug_d && managed_event) udev_multiplex_directory(&udev, HOTPLUGD_DIR, HOTPLUG_SUFFIX); + udev_cleanup_device(&udev); + logging_close(); return retval; }