X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fgssd%2Fgssd_main_loop.c;h=917b66221bfd536419146f1881b293a2831bf406;hp=0559f7b7c7b9478dd223f2e76eb71818265eb332;hb=d78a45a152d2270b6e92b451b6b4585567ec2f8a;hpb=f5954afaeeee07ca6ded6c4cdcbf965f02f7a670 diff --git a/utils/gssd/gssd_main_loop.c b/utils/gssd/gssd_main_loop.c index 0559f7b..917b662 100644 --- a/utils/gssd/gssd_main_loop.c +++ b/utils/gssd/gssd_main_loop.c @@ -28,9 +28,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +#include +#endif /* HAVE_CONFIG_H */ + #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif + #include #include #include @@ -99,6 +104,7 @@ gssd_run() int ret; struct sigaction dn_act; int fd; + sigset_t set; /* Taken from linux/Documentation/dnotify.txt: */ dn_act.sa_sigaction = dir_notify_handler; @@ -106,6 +112,11 @@ gssd_run() dn_act.sa_flags = SA_SIGINFO; sigaction(DNOTIFY_SIGNAL, &dn_act, NULL); + /* just in case the signal is blocked... */ + sigemptyset(&set); + sigaddset(&set, DNOTIFY_SIGNAL); + sigprocmask(SIG_UNBLOCK, &set, NULL); + if ((fd = open(pipefs_nfsdir, O_RDONLY)) == -1) { printerr(0, "ERROR: failed to open %s: %s\n", pipefs_nfsdir, strerror(errno)); @@ -116,6 +127,7 @@ gssd_run() init_client_list(); + printerr(1, "beginning poll\n"); while (1) { while (dir_changed) { dir_changed = 0;