diff options
Diffstat (limited to 'src/kadmin/server')
-rw-r--r-- | src/kadmin/server/ipropd_svc.c | 6 | ||||
-rw-r--r-- | src/kadmin/server/ovsec_kadmd.c | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/kadmin/server/ipropd_svc.c b/src/kadmin/server/ipropd_svc.c index 62a0a2b..76d3fda 100644 --- a/src/kadmin/server/ipropd_svc.c +++ b/src/kadmin/server/ipropd_svc.c @@ -36,6 +36,7 @@ extern short l_port; extern char *kdb5_util; extern char *kprop; extern char *dump_file; +extern char *kprop_port; static char *reply_ok_str = "UPDATE_OK"; static char *reply_err_str = "UPDATE_ERROR"; @@ -392,10 +393,9 @@ ipropx_resync(uint32_t vers, struct svc_req *rqstp) DPRINT("%s: exec `kprop -r %s -f %s %s' ...\n", whoami, handle->params.realm, dump_file, clhost); - /* XXX Yuck! */ - if (getenv("KPROP_PORT")) { + if (kprop_port != NULL) { pret = execl(kprop, "kprop", "-r", handle->params.realm, "-f", - dump_file, "-P", getenv("KPROP_PORT"), clhost, NULL); + dump_file, "-P", kprop_port, clhost, NULL); } else { pret = execl(kprop, "kprop", "-r", handle->params.realm, "-f", dump_file, clhost, NULL); diff --git a/src/kadmin/server/ovsec_kadmd.c b/src/kadmin/server/ovsec_kadmd.c index 89bf4e6..bf780dc 100644 --- a/src/kadmin/server/ovsec_kadmd.c +++ b/src/kadmin/server/ovsec_kadmd.c @@ -72,6 +72,7 @@ int nofork = 0; char *kdb5_util = KPROPD_DEFAULT_KDB5_UTIL; char *kprop = KPROPD_DEFAULT_KPROP; char *dump_file = KPROP_DEFAULT_FILE; +char *kprop_port = NULL; static krb5_context context; static char *progname; @@ -86,7 +87,7 @@ usage() fprintf(stderr, _("Usage: kadmind [-x db_args]* [-r realm] [-m] [-nofork] " "[-port port-number]\n" "\t\t[-proponly] [-p path-to-kdb5_util] [-F dump-file]\n" - "\t\t[-K path-to-kprop] [-P pid_file]\n" + "\t\t[-K path-to-kprop] [-k kprop-port] [-P pid_file]\n" "\nwhere,\n\t[-x db_args]* - any number of database " "specific arguments.\n" "\t\t\tLook at each database documentation for " @@ -433,6 +434,11 @@ main(int argc, char *argv[]) if (!argc) usage(); kprop = *argv; + } else if (strcmp(*argv, "-k") == 0) { + argc--, argv++; + if (!argc) + usage(); + kprop_port = *argv; } else { break; } @@ -529,6 +535,9 @@ main(int argc, char *argv[]) } } + if (kprop_port == NULL) + kprop_port = getenv("KPROP_PORT"); + krb5_klog_syslog(LOG_INFO, _("starting")); if (nofork) fprintf(stderr, _("%s: starting...\n"), progname); |