]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/gssd/svcgssd.c
nfs-utils: Fix source code character encoding
[nfs-utils.git] / utils / gssd / svcgssd.c
index 37e04075c7d8edb981ece4dfb36bacc8ae06e2ca..e7375a49ce6b472106cc2ce64f26bb5eb3184537 100644 (file)
@@ -37,7 +37,9 @@
 
 */
 
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /* HAVE_CONFIG_H */
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -115,22 +117,32 @@ mydaemon(int nochdir, int noclose)
 
        if (noclose == 0) {
                tempfd = open("/dev/null", O_RDWR);
-               dup2(tempfd, 0);
-               dup2(tempfd, 1);
-               dup2(tempfd, 2);
-               closeall(3);
+               if (tempfd >= 0) {
+                       dup2(tempfd, 0);
+                       dup2(tempfd, 1);
+                       dup2(tempfd, 2);
+                       close(tempfd);
+               } else {
+                       printerr(1, "mydaemon: can't open /dev/null: errno %d "
+                                   "(%s)\n", errno, strerror(errno));
+                       exit(1);
+               }
        }
 
        return;
 }
 
 static void
-release_parent()
+release_parent(void)
 {
        int status;
 
        if (pipefds[1] > 0) {
-               write(pipefds[1], &status, 1);
+               if (write(pipefds[1], &status, 1) != 1) {
+                       printerr(1, 
+                               "WARN: writing to parent pipe failed: errno %d (%s)\n",
+                               errno, strerror(errno));
+               }
                close(pipefds[1]);
                pipefds[1] = -1;
        }
@@ -148,7 +160,7 @@ void
 sig_hup(int signal)
 {
        /* don't exit on SIGHUP */
-       printerr(1, "Received SIGHUP... Ignoring.\n");
+       printerr(1, "Received SIGHUP(%d)... Ignoring.\n", signal);
        return;
 }
 
@@ -202,6 +214,8 @@ main(int argc, char *argv[])
 
        initerr(progname, verbosity, fg);
 #ifdef HAVE_AUTHGSS_SET_DEBUG_LEVEL
+       if (verbosity && rpc_verbosity == 0)
+               rpc_verbosity = verbosity;
        authgss_set_debug_level(rpc_verbosity);
 #else
        if (rpc_verbosity > 0)
@@ -209,6 +223,8 @@ main(int argc, char *argv[])
                            "support setting debug level\n");
 #endif
 #ifdef HAVE_NFS4_SET_DEBUG
+               if (verbosity && idmap_verbosity == 0)
+                       idmap_verbosity = verbosity;
         nfs4_set_debug(idmap_verbosity, NULL);
 #else
        if (idmap_verbosity > 0)