s3:libads/ldap.c: pass the real workgroup name to get_dc_name()
authorStefan Metzmacher <metze@samba.org>
Mon, 27 Oct 2008 18:36:25 +0000 (19:36 +0100)
committerStefan Metzmacher <metze@samba.org>
Sat, 13 Dec 2008 17:43:46 +0000 (18:43 +0100)
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Günther Deschner <gd@samba.org>
(cherry picked from commit c2d4a84abe1b6cbf68d6e9f1bb1f8974d0b628fc)
(cherry picked from commit 2f27ffc4a2ba745341a5961b8f04e62da3fb089a)
(cherry picked from commit 132911954715bfa6df8566c0fb382ef07a7da96e)

source/libads/ldap.c

index 004a25881b3a5c65872b0b3cdf06d6e1aa9a390a..9045552c81e4e7b93168140b6c828934c64afbf2 100644 (file)
@@ -267,10 +267,12 @@ bool ads_try_connect(ADS_STRUCT *ads, const char *server )
 
 static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
 {
+       const char *c_domain;
        const char *c_realm;
        int count, i=0;
        struct ip_service *ip_list;
        const char *realm;
+       const char *domain;
        bool got_realm = False;
        bool use_own_domain = False;
        char *sitename;
@@ -308,7 +310,14 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
                return NT_STATUS_INVALID_PARAMETER; /* rather need MISSING_PARAMETER ... */
        }
 
+       if ( use_own_domain ) {
+               c_domain = lp_workgroup();
+       } else {
+               c_domain = ads->server.workgroup;
+       }
+
        realm = c_realm;
+       domain = c_domain;
 
        /*
         * In case of LDAP we use get_dc_name() as that
@@ -321,7 +330,7 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
                DEBUG(6,("ads_find_dc: (ldap) looking for %s '%s'\n",
                        (got_realm ? "realm" : "domain"), realm));
 
-               if (get_dc_name(realm, realm, srv_name, &ip_out)) {
+               if (get_dc_name(domain, realm, srv_name, &ip_out)) {
                        /*
                         * we call ads_try_connect() to fill in the
                         * ads->config details