krb5 commit: Deprecate kpropd -S option
Greg Hudson
ghudson at MIT.EDU
Fri Oct 5 14:37:16 EDT 2012
https://github.com/krb5/krb5/commit/54d4ec82e2a236dc7cfd3f0b52534b14dd51c6a0
commit 54d4ec82e2a236dc7cfd3f0b52534b14dd51c6a0
Author: Nicolas Williams <nico at cryptonector.com>
Date: Mon Sep 24 10:17:53 2012 -0500
Deprecate kpropd -S option
ticket: 7376
.../krb_admins/admin_commands/kpropd.rst | 10 +++++-----
src/slave/kpropd.c | 13 ++++++++++++-
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/doc/rst_source/krb_admins/admin_commands/kpropd.rst b/doc/rst_source/krb_admins/admin_commands/kpropd.rst
index 8f048b5..d881a62 100644
--- a/doc/rst_source/krb_admins/admin_commands/kpropd.rst
+++ b/doc/rst_source/krb_admins/admin_commands/kpropd.rst
@@ -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
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index a4e4746..367380e 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -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)
More information about the cvs-krb5
mailing list