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:
parent
5b02ee9b9d
commit
f9263dd102
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user