{
unsigned int status = SUCCESS; /* Return status */
static char krbrealm[REALM_SZ]; /* kerberos realm name */
+ static char hostbuf[BUFSIZ], *host; /* local hostname in principal fmt */
static int inited = 0;
+ char *p;
#ifdef DEBUG
com_err(whoami, 0, "Entering ureg_kadm_init");
com_err(whoami, status, " fetching kerberos realm");
exit(1);
}
+ if (gethostname(hostbuf, sizeof(hostbuf)) < 0)
+ com_err(whoami, errno, "getting local hostname");
+ host = canonicalize_hostname(strsave(hostbuf));
+ for (p = host; *p && *p != '.'; p++)
+ if (isupper(*p))
+ *p = tolower(*p);
+ *p = 0;
}
/* Get keys for interacting with Kerberos admin server. */
/* principal, instance, realm, service, service instance, life, file */
- if (status = krb_get_svc_in_tkt("register", "sms", krbrealm, PWSERV_NAME,
+ if (status = krb_get_svc_in_tkt(MOIRA_SNAME, host, krbrealm, PWSERV_NAME,
KADM_SINST, 1, KEYFILE))
status += krb_err_base;