]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Deprecate kpropd -S option
authorNicolas Williams <nico@cryptonector.com>
Mon, 24 Sep 2012 15:17:53 +0000 (10:17 -0500)
committerGreg Hudson <ghudson@mit.edu>
Fri, 5 Oct 2012 18:23:33 +0000 (14:23 -0400)
ticket: 7376

doc/rst_source/krb_admins/admin_commands/kpropd.rst
src/slave/kpropd.c

index 8f048b5b4b5fa30a993ecaf55843b152d6c0b976..d881a62837e64f84075eae10c20ed40520c7c40d 100644 (file)
@@ -14,7 +14,6 @@ SYNOPSIS
 [**-p** *kdb5_util_prog*]
 [**-P** *port*]
 [**-d**]
-[**-S**]
 
 DESCRIPTION
 -----------
@@ -74,11 +73,12 @@ OPTIONS
     ``/kdb5_util``.
 
 **-S**
-    Turn on standalone mode.  Normally, kpropd is invoked out of
+    [DEPRECATED] Enable standalone mode.  Normally kpropd is invoked by
     inetd(8) so it expects a network connection to be passed to it
-    from inetd(8).  If the **-S** option is specified, kpropd will put
-    itself into the background, and wait for connections on port 754
-    (or the port specified with the **-P** option if given).
+    from inetd(8).  If the **-S** option is specified, or if standard
+    input is not a socket, kpropd will put itself into the background,
+    and wait for connections on port 754 (or the port specified with the
+    **-P** option if given).
 
 **-d**
     Turn on debug mode.  In this mode, if the **-S** option is
index a4e47467dfae7b87c74ff51f14347b1875cdca08..367380edecea42ad938e5f70727d37bc732c5bf5 100644 (file)
@@ -236,10 +236,21 @@ main(argc, argv)
     krb5_error_code retval;
     kdb_log_context *log_ctx;
     int devnull, sock;
+    struct stat st;
 
     setlocale(LC_ALL, "");
     PRS(argv);
 
+    if (fstat(0, &st) == -1) {
+        com_err(progname, errno, _("while checking if stdin is a socket"));
+        exit(1);
+    }
+    /*
+     * Detect whether we're running from inetd; if not then we're in
+     * standalone mode.
+     */
+    standalone = !S_ISSOCK(st.st_mode);
+
     log_ctx = kpropd_context->kdblog_context;
 
     signal_wrapper(SIGPIPE, SIG_IGN);
@@ -1143,7 +1154,7 @@ void PRS(argv)
                     debug++;
                     break;
                 case 'S':
-                    standalone++;
+                    /* Standalone mode is now auto-detected; see main(). */
                     break;
                 case 'a':
                     if (*word)