From f3ad8bb00acf680863902721c57091d2bf622b72 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 17 Jan 2007 19:11:45 +0000 Subject: r20860: Adding some small tweaks. When we have no sitename, there is no need to ask for the list of DCs twice. Guenther (This used to be commit a9baf27e1348dd6dadd7a2fafdf9c269087b80ac) --- source3/libads/kerberos.c | 25 ++++++++++++++----------- source3/nsswitch/winbindd_cm.c | 20 +++++++++++--------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c index 95eed6fe27..d35b59f4cd 100644 --- a/source3/libads/kerberos.c +++ b/source3/libads/kerberos.c @@ -484,18 +484,21 @@ static char *get_kdc_ip_string(char *mem_ctx, const char *realm, const char *sit /* Get the KDC's only in this site. */ - get_kdc_list(realm, sitename, &ip_srv_site, &count_site); + if (sitename) { - for (i = 0; i < count_site; i++) { - if (ip_equal(ip_srv_site[i].ip, primary_ip)) { - continue; - } - /* Append to the string - inefficient but not done often. */ - kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n", - kdc_str, inet_ntoa(ip_srv_site[i].ip)); - if (!kdc_str) { - SAFE_FREE(ip_srv_site); - return NULL; + get_kdc_list(realm, sitename, &ip_srv_site, &count_site); + + for (i = 0; i < count_site; i++) { + if (ip_equal(ip_srv_site[i].ip, primary_ip)) { + continue; + } + /* Append to the string - inefficient but not done often. */ + kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n", + kdc_str, inet_ntoa(ip_srv_site[i].ip)); + if (!kdc_str) { + SAFE_FREE(ip_srv_site); + return NULL; + } } } diff --git a/source3/nsswitch/winbindd_cm.c b/source3/nsswitch/winbindd_cm.c index 70ab9b0582..c854efd9b2 100644 --- a/source3/nsswitch/winbindd_cm.c +++ b/source3/nsswitch/winbindd_cm.c @@ -1121,18 +1121,20 @@ static BOOL get_dcs(TALLOC_CTX *mem_ctx, const struct winbindd_domain *domain, get_dc_name(domain->name, lp_realm(), dcname, &ip); sitename = sitename_fetch(); + if (sitename) { - /* Do the site-specific AD dns lookup first. */ - get_sorted_dc_list(domain->alt_name, sitename, &ip_list, &iplist_size, True); + /* Do the site-specific AD dns lookup first. */ + get_sorted_dc_list(domain->alt_name, sitename, &ip_list, &iplist_size, True); - for ( i=0; iname, inet_ntoa(ip_list[i].ip), - ip_list[i].ip, dcs, num_dcs); - } + for ( i=0; iname, inet_ntoa(ip_list[i].ip), + ip_list[i].ip, dcs, num_dcs); + } - SAFE_FREE(ip_list); - SAFE_FREE(sitename); - iplist_size = 0; + SAFE_FREE(ip_list); + SAFE_FREE(sitename); + iplist_size = 0; + } /* Now we add DCs from the main AD dns lookup. */ get_sorted_dc_list(domain->alt_name, NULL, &ip_list, &iplist_size, True); -- cgit