mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
ipa-kdb: cache KDC hostname on startup
We need KDC hostname for several purposes: - short-circuit detection of principals on the same server as KDC - generating NetBIOS name Make sure we cache hostname information on startup and use it instead of detecting the hostname in run-time. This will miss the case that KDC hostname got changed but such cases are not supported anyway without restarting KDC and making changes to principals.
This commit is contained in:
@@ -1905,16 +1905,13 @@ done:
|
||||
return kerr;
|
||||
}
|
||||
|
||||
static char *get_server_netbios_name(void)
|
||||
static char *get_server_netbios_name(struct ipadb_context *ipactx)
|
||||
{
|
||||
char hostname[MAXHOSTNAMELEN + 1]; /* NOTE: this is 64, too little ? */
|
||||
char *p;
|
||||
int ret;
|
||||
|
||||
ret = gethostname(hostname, MAXHOSTNAMELEN);
|
||||
if (ret) {
|
||||
return NULL;
|
||||
}
|
||||
strncpy(hostname, ipactx->kdc_hostname, MAXHOSTNAMELEN);
|
||||
/* May miss termination */
|
||||
hostname[MAXHOSTNAMELEN] = '\0';
|
||||
for (p = hostname; *p; p++) {
|
||||
@@ -2245,7 +2242,7 @@ krb5_error_code ipadb_reinit_mspac(struct ipadb_context *ipactx)
|
||||
free(resstr);
|
||||
|
||||
free(ipactx->mspac->flat_server_name);
|
||||
ipactx->mspac->flat_server_name = get_server_netbios_name();
|
||||
ipactx->mspac->flat_server_name = get_server_netbios_name(ipactx);
|
||||
if (!ipactx->mspac->flat_server_name) {
|
||||
kerr = ENOMEM;
|
||||
goto done;
|
||||
|
||||
Reference in New Issue
Block a user