diff options
-rw-r--r-- | policycoreutils/restorecond/watch.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/policycoreutils/restorecond/watch.c b/policycoreutils/restorecond/watch.c index 6a833c30..9a45cba0 100644 --- a/policycoreutils/restorecond/watch.c +++ b/policycoreutils/restorecond/watch.c @@ -186,20 +186,22 @@ int watch(int fd, const char *watch_file) printf("wd=%d mask=%u cookie=%u len=%u\n", event->wd, event->mask, event->cookie, event->len); - if (event->wd == master_wd) - read_config(fd, watch_file); - else { - switch (utmpwatcher_handle(fd, event->wd)) { - case -1: /* Message was not for utmpwatcher */ - if (event->len) - watch_list_find(event->wd, event->name); - break; - case 1: /* utmp has changed need to reload */ + if (event->mask & ~IN_IGNORED) { + if (event->wd == master_wd) read_config(fd, watch_file); - break; - - default: /* No users logged in or out */ - break; + else { + switch (utmpwatcher_handle(fd, event->wd)) { + case -1: /* Message was not for utmpwatcher */ + if (event->len) + watch_list_find(event->wd, event->name); + break; + case 1: /* utmp has changed need to reload */ + read_config(fd, watch_file); + break; + + default: /* No users logged in or out */ + break; + } } } |