summaryrefslogtreecommitdiffstats
path: root/src/kadmin/v4server/admin_server.c
diff options
context:
space:
mode:
authorBarry Jaspan <bjaspan@mit.edu>1996-09-26 21:54:59 +0000
committerBarry Jaspan <bjaspan@mit.edu>1996-09-26 21:54:59 +0000
commit4d650fed0d764dd9b9feef8ba59a43a17f84eb56 (patch)
treed6d9a7acf77df4763a23af46b83387273c5464c7 /src/kadmin/v4server/admin_server.c
parent77529ef21b563bd90d7a44082d4b4777c339ec2d (diff)
downloadkrb5-4d650fed0d764dd9b9feef8ba59a43a17f84eb56.tar.gz
krb5-4d650fed0d764dd9b9feef8ba59a43a17f84eb56.tar.xz
krb5-4d650fed0d764dd9b9feef8ba59a43a17f84eb56.zip
* admin_server.c (process_client): allow keytab to be specified on
command line; default is still wrong git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9125 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/v4server/admin_server.c')
-rw-r--r--src/kadmin/v4server/admin_server.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/kadmin/v4server/admin_server.c b/src/kadmin/v4server/admin_server.c
index 2d2c253cf..e9b09bea1 100644
--- a/src/kadmin/v4server/admin_server.c
+++ b/src/kadmin/v4server/admin_server.c
@@ -66,6 +66,11 @@ admin_params prm; /* The command line parameters struct */
char prog[32]; /* WHY IS THIS NEEDED??????? */
char *progname = prog;
char *acldir = DEFAULT_ACL_DIR;
+#ifdef OVSEC_KADM
+char *keytab = "FILE:/krb5/ovsec_adm.srvtab";
+#else
+char *keytab = NULL;
+#endif
char krbrlm[REALM_SZ];
extern Kadm_Server server_parm;
krb5_context kadm_context;
@@ -113,7 +118,7 @@ char *argv[];
memset(krbrlm, 0, sizeof(krbrlm));
fascist_cpw = 1; /* by default, enable fascist mode */
- while ((c = getopt(argc, argv, "Df:hnd:a:r:FN")) != EOF)
+ while ((c = getopt(argc, argv, "Df:hnd:a:r:FNk:")) != EOF)
switch(c) {
case 'D':
debug++;
@@ -147,7 +152,10 @@ char *argv[];
case 'r':
(void) strncpy(krbrlm, optarg, sizeof(krbrlm) - 1);
break;
- case 'h': /* get help on using admin_server */
+ case 'k':
+ keytab = optarg;
+ break;
+ case 'h': /* get help on using admin_server */
default:
printf("Usage: admin_server [-h] [-n] [-F] [-N] [-r realm] [-d dbname] [-f filename] [-a acldir]\n");
exit(-1); /* failure */
@@ -302,8 +310,10 @@ kadm_listen()
}
}
if (bind(admin_fd, (struct sockaddr *)&server_parm.admin_addr,
- sizeof(struct sockaddr_in)) < 0)
- return KADM_NO_BIND;
+ sizeof(struct sockaddr_in)) < 0) {
+ syslog(LOG_ERR, "bind: %m");
+ return KADM_NO_BIND;
+ }
(void) listen(admin_fd, 1);
FD_ZERO(&mask);
FD_SET(admin_fd, &mask);
@@ -383,7 +393,6 @@ void process_client(fd, who)
int status;
#ifdef OVSEC_KADM
-#define OVSEC_KADM_SRVTAB "FILE:/krb5/ovsec_adm.srvtab"
char *service_name;
service_name = (char *) malloc(strlen(server_parm.sname) +
@@ -397,7 +406,7 @@ void process_client(fd, who)
server_parm.sinst, server_parm.krbrlm);
retval = ovsec_kadm_init_with_skey(service_name,
- OVSEC_KADM_SRVTAB,
+ keytab,
OVSEC_KADM_ADMIN_SERVICE, krbrlm,
OVSEC_KADM_STRUCT_VERSION,
OVSEC_KADM_API_VERSION_1,