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:36:51 +0000 (14:36 -0800)
committerKarolin Seeger <kseeger@samba.org>
Mon, 16 Feb 2009 08:57:02 +0000 (09:57 +0100)
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).
(cherry picked from commit a8a7040d7dbffe7b1c2bccb8b46e08fb996786ac)

source/libads/ldap.c

index a91f4ac381303baf44a1e7f54a00f44e7911863a..4fb95300af33adee978000426f0d0e3d0c4bcb06 100644 (file)
@@ -299,6 +299,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 */
 
@@ -350,8 +352,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));