Fix bug #6098 - When the DNS server is invalid, the ads_find_dc() does not work corre...
authorYasuma Takeda <yasuma@osstech.co.jp>
Wed, 11 Feb 2009 22:10:21 +0000 (14:10 -0800)
committerJeremy Allison <jra@samba.org>
Wed, 11 Feb 2009 22:10:21 +0000 (14:10 -0800)
1. If DNS server is invalid, the get_sorted_dc_list() is called with
realm(FQDN) and it fails.
2. On the next step, the get_sorted_dc_list() is called with realm(FQDN) again.

I think "again" is wrong place.
On the 2nd step, get_sorted_dc_list() should be called with realm(WORKGROUP).

source/libads/ldap.c

index 36e8693618064523f2b5e11d5c38689f0d616b36..65f13cd7810df1be88adb6f301ebc536c0425dae 100644 (file)
@@ -275,6 +275,8 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
        if (c_realm && *c_realm) 
                got_realm = True;
                   
+ again:
+
        /* we need to try once with the realm name and fallback to the 
           netbios domain name if we fail (if netbios has not been disabled */
           
@@ -326,8 +328,6 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
 
        sitename = sitename_fetch(realm);
 
- again:
-
        DEBUG(6,("ads_find_dc: (cldap) looking for %s '%s'\n",
                (got_realm ? "realm" : "domain"), realm));