alarm(udev_device_get_event_timeout(dev));
/* execute RUN= */
- if (err == 0 && !udev_event->ignore_device && udev_get_run(udev_event->udev))
+ if (err == 0 && udev_get_run(udev_event->udev))
failed = udev_event_execute_run(udev_event,
&orig_sigmask);
IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
} else {
char filename[UTIL_PATH_SIZE];
+ struct stat statbuf;
inotify_add_watch(pfd[FD_INOTIFY].fd, LIBEXECDIR "/rules.d",
IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
/* watch dynamic rules directory */
util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/.udev/rules.d", NULL);
+ if (stat(filename, &statbuf) != 0) {
+ util_create_path(udev, filename);
+ udev_selinux_setfscreatecon(udev, filename, S_IFDIR|0755);
+ mkdir(filename, 0755);
+ udev_selinux_resetfscreatecon(udev);
+ }
inotify_add_watch(pfd[FD_INOTIFY].fd, filename,
IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);
}