1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

r10337: This grubby little hack is the implementation of a concept discussed

on the kerberos mailing lists a couple of weeks ago: Don't use DNS at
all for expanding short names into long names.

Using the 'override krb5_init_context' code already in the tree, this
removes the DNS lag on a kerberos session setup/connection.

Andrew Bartlett
(This used to be commit de3ceab3d064a286e8662a2b9b62b212f0454156)
This commit is contained in:
Andrew Bartlett 2005-09-20 07:03:47 +00:00 committed by Gerald (Jerry) Carter
parent 5b02ee9b9d
commit f9263dd102
4 changed files with 16 additions and 0 deletions

View File

@ -117,6 +117,11 @@ static void smb_krb5_debug_wrapper(const char *timestr, const char *msg, void *p
talloc_steal(parent_ctx, *smb_krb5_context);
talloc_free(tmp_ctx);
/* Set options in kerberos */
(*smb_krb5_context)->krb5_context->fdns = FALSE;
return 0;
}

View File

@ -182,6 +182,7 @@ init_context_from_config_file(krb5_context context)
INIT_FIELD(context, bool, srv_lookup, context->srv_lookup, "dns_lookup_kdc");
INIT_FIELD(context, int, large_msg_size, 6000, "large_message_size");
context->default_cc_name = NULL;
INIT_FIELD(context, bool, fdns, TRUE, "fdns");
return 0;
}

View File

@ -65,6 +65,10 @@ krb5_expand_hostname (krb5_context context,
memset (&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;
if (!context->fdns) {
return copy_hostname (context, orig_hostname, new_hostname);
}
error = getaddrinfo (orig_hostname, NULL, &hints, &ai);
if (error)
return copy_hostname (context, orig_hostname, new_hostname);
@ -124,6 +128,11 @@ krb5_expand_hostname_realms (krb5_context context,
int error;
krb5_error_code ret = 0;
if (!context->fdns) {
return vanilla_hostname (context, orig_hostname, new_hostname,
realms);
}
memset (&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;

View File

@ -443,6 +443,7 @@ typedef struct krb5_context_data {
int pkinit_flags;
void *mutex; /* protects error_string/error_buf */
int large_msg_size;
krb5_boolean fdns; /* Lookup hostnames to find full name, or send as-is */
} krb5_context_data;
enum {