X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudev-event.c;h=7591d5e314b3693fa55d903dbbf6582aef843147;hp=9c2ce1d3882aeb1398e7b011fd378c83578b7285;hb=52934a60c447ae78873b07a01b7fa25e60c86fe4;hpb=f2291cd07f24d2e1b7c3295ea6570f64b935ba55 diff --git a/udev/udev-event.c b/udev/udev-event.c index 9c2ce1d38..7591d5e31 100644 --- a/udev/udev-event.c +++ b/udev/udev-event.c @@ -111,7 +111,7 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char * s = dest; l = size; - while (1) { + for (;;) { enum subst_type type = SUBST_UNKNOWN; char attrbuf[UTIL_PATH_SIZE]; char *attr = NULL; @@ -681,6 +681,10 @@ int udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask) udev_event_apply_format(event, cmd, program, sizeof(program)); envp = udev_device_get_properties_envp(event->dev); + if (event->exec_delay > 0) { + info(event->udev, "delay execution of '%s'\n", program); + sleep(event->exec_delay); + } if (util_run_program(event->udev, program, envp, NULL, 0, NULL, sigmask, true) != 0) { if (udev_list_entry_get_flags(list_entry)) err = -1;