]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/gssd/gssd_main_loop.c
gssd: Use same style for including config.h that rest of nfs-utils uses
[nfs-utils.git] / utils / gssd / gssd_main_loop.c
index 0559f7b7c7b9478dd223f2e76eb71818265eb332..917b66221bfd536419146f1881b293a2831bf406 100644 (file)
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /* HAVE_CONFIG_H */
+
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
 #endif
+
 #include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/poll.h>
@@ -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;