X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevd.c;h=7dedf078f3ef91ebea9963830c0845e95e0eedae;hb=e2ecb34ffd4fd8b0d31a65ec0c59dc4f8023ad6d;hp=fe01d8d4b909b6eef41719f758780b1dabfd8280;hpb=9f1f67b168b78c24e3ecfc4c50e00bf142f6746f;p=elogind.git diff --git a/udevd.c b/udevd.c index fe01d8d4b..7dedf078f 100644 --- a/udevd.c +++ b/udevd.c @@ -76,15 +76,16 @@ void log_message(int priority, const char *format, ...) if (priority > udev_log_priority) return; - va_start(args, format); - vsyslog(priority, format, args); - va_end(args); - if (verbose) { + printf("[%d] ", (int) getpid()); va_start(args, format); vprintf(format, args); va_end(args); printf("\n"); + } else { + va_start(args, format); + vsyslog(priority, format, args); + va_end(args); } } @@ -134,24 +135,8 @@ static int udev_event_process(struct udevd_uevent_msg *msg) retval = udev_device_event(&rules, udev); /* run programs collected by RUN-key*/ - if (retval == 0 && !udev->ignore_device && udev_run) { - struct name_entry *name_loop; - - dbg("executing run list"); - list_for_each_entry(name_loop, &udev->run_list, node) { - if (strncmp(name_loop->name, "socket:", strlen("socket:")) == 0) - pass_env_to_socket(&name_loop->name[strlen("socket:")], udev->dev->devpath, udev->action); - else { - char program[PATH_SIZE]; - - strlcpy(program, name_loop->name, sizeof(program)); - udev_rules_apply_format(udev, program, sizeof(program)); - if (run_program(program, udev->dev->subsystem, NULL, 0, NULL, - (udev_log_priority >= LOG_INFO))) - retval = -1; - } - } - } + if (retval == 0 && !udev->ignore_device && udev_run) + retval = udev_rules_run(udev); udev_device_cleanup(udev); return retval; @@ -257,7 +242,7 @@ static void udev_event_run(struct udevd_uevent_msg *msg) setpriority(PRIO_PROCESS, 0, UDEV_PRIORITY); retval = udev_event_process(msg); - info("seq %llu finished", msg->seqnum); + info("seq %llu finished with %i", msg->seqnum, retval); logging_close(); if (retval) @@ -335,6 +320,7 @@ static int mem_size_mb(void) } } + fclose(f); return memsize; } @@ -956,7 +942,6 @@ int main(int argc, char *argv[], char *envp[]) selinux_init(); dbg("version %s", UDEV_VERSION); - /* parse commandline options */ while (1) { option = getopt_long(argc, argv, "dtvhV", options, NULL); if (option == -1)