diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-18 15:56:03 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-18 15:56:03 +0200 |
commit | 282988c4f8a85c28468e6442e86efe51dc71cc93 (patch) | |
tree | fda0a6ba62adffd8f7c4762b9694ab77e4ea563f /udevd.c | |
parent | 41dd741442ab496901c38f6cd38404bd954f1857 (diff) |
move default rules from /etc/udev/rules.d/ to /lib/udev/rules.d/
None of these rules is supposed to be changed by users, so move
them out of /etc. Custom rules, and automatically generated rules
stay in /etc. All rules are still processed in lexical order,
regardless which directory they live in.
Diffstat (limited to 'udevd.c')
-rw-r--r-- | udevd.c | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -1142,14 +1142,23 @@ int main(int argc, char *argv[], char *envp[]) /* watch rules directory */ inotify_fd = inotify_init(); if (inotify_fd >= 0) { - char filename[PATH_MAX]; - - inotify_add_watch(inotify_fd, udev_rules_dir, IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); - - /* watch dynamic rules directory */ - strlcpy(filename, udev_root, sizeof(filename)); - strlcat(filename, "/"RULES_DYN_DIR, sizeof(filename)); - inotify_add_watch(inotify_fd, filename, IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + if (udev_rules_dir[0] != '\0') { + inotify_add_watch(inotify_fd, udev_rules_dir, + IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + } else { + char filename[PATH_MAX]; + + inotify_add_watch(inotify_fd, RULES_LIB_DIR, + IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + inotify_add_watch(inotify_fd, RULES_ETC_DIR, + IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + + /* watch dynamic rules directory */ + strlcpy(filename, udev_root, sizeof(filename)); + strlcat(filename, "/"RULES_DYN_DIR, sizeof(filename)); + inotify_add_watch(inotify_fd, filename, + IN_CREATE | IN_DELETE | IN_MOVE | IN_CLOSE_WRITE); + } } else if (errno == ENOSYS) err("the kernel does not support inotify, udevd can't monitor rules file changes\n"); else |