X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=test-udev.c;h=4ac2d5a8891cedb53386de53358e42bd611c804f;hp=e40a4484367b1b6d35401cb8f63acb0a70b09f04;hb=8325c84dba74ef8b9bd10d5dc5e4d0ec2574cf68;hpb=456cb387567da8a2beadf003dcbd874022dbc873 diff --git a/test-udev.c b/test-udev.c index e40a44843..4ac2d5a88 100644 --- a/test-udev.c +++ b/test-udev.c @@ -90,10 +90,10 @@ int main(int argc, char *argv[], char *envp[]) logging_init("udev"); if (devnull < 0) - err("open /dev/null failed: %s", strerror(errno)); + err("open /dev/null failed: %s\n", strerror(errno)); udev_config_init(); selinux_init(); - dbg("version %s", UDEV_VERSION); + dbg("version %s\n", UDEV_VERSION); /* set signal handlers */ memset(&act, 0x00, sizeof(act)); @@ -105,7 +105,7 @@ int main(int argc, char *argv[], char *envp[]) sigaction(SIGTERM, &act, NULL); /* trigger timeout to prevent hanging processes */ - alarm(UDEV_ALARM_TIMEOUT); + alarm(UDEV_EVENT_TIMEOUT); action = getenv("ACTION"); devpath = getenv("DEVPATH"); @@ -115,7 +115,7 @@ int main(int argc, char *argv[], char *envp[]) subsystem = argv[1]; if (action == NULL || subsystem == NULL || devpath == NULL) { - err("action, subsystem or devpath missing"); + err("action, subsystem or devpath missing\n"); goto exit; } @@ -132,11 +132,11 @@ int main(int argc, char *argv[], char *envp[]) dev = sysfs_device_get(devpath); if (dev == NULL) { - info("unable to open '%s'", devpath); + info("unable to open '%s'\n", devpath); goto fail; } - udev = udev_device_init(); + udev = udev_device_init(NULL); if (udev == NULL) goto fail; @@ -154,22 +154,12 @@ int main(int argc, char *argv[], char *envp[]) retval = udev_device_event(&rules, udev); - 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:")], devpath, action); - else { - char program[PATH_SIZE]; - - strlcpy(program, name_loop->name, sizeof(program)); - udev_rules_apply_format(udev, program, sizeof(program)); - run_program(program, udev->dev->subsystem, NULL, 0, NULL, (udev_log_priority >= LOG_INFO)); - } - } - } + /* rules may change/disable the timeout */ + if (udev->event_timeout >= 0) + alarm(udev->event_timeout); + + if (retval == 0 && !udev->ignore_device && udev_run) + udev_rules_run(udev); udev_device_cleanup(udev); fail: