- if (init_uevent_netlink_sock() < 0) {
- dbg("uevent socket not available");
- }
-
- if (init_udevd_socket() < 0) {
- if (errno == EADDRINUSE)
- dbg("another udevd running, exit");
- else
- dbg("error initialising udevd socket: %s", strerror(errno));
-
- goto exit;
- }
-
- /* override of forked udev binary, used for testing */
- udev_bin = getenv("UDEV_BIN");
- if (udev_bin != NULL)
- info("udev binary is set to '%s'", udev_bin);
- else
- udev_bin = UDEV_BIN;
-
- /* init of expected_seqnum value */
- value = getenv("UDEVD_EXPECTED_SEQNUM");
- if (value) {
- expected_seqnum = strtoull(value, NULL, 10);
- info("initialize expected_seqnum to %llu", expected_seqnum);
- }
-
- /* timeout to wait for missing events */
- value = getenv("UDEVD_EVENT_TIMEOUT");
- if (value)
- event_timeout = strtoul(value, NULL, 10);
- else
- event_timeout = UDEVD_EVENT_TIMEOUT;
- info("initialize event_timeout to %u", event_timeout);
+ /* watch rules directory */
+ inotify_fd = inotify_init();
+ if (inotify_fd > 0)
+ inotify_add_watch(inotify_fd, udev_rules_filename, IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);