summaryrefslogtreecommitdiff
path: root/source3/libsmb/namequery_dc.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2003-08-08 23:53:13 +0000
committerGerald Carter <jerry@samba.org>2003-08-08 23:53:13 +0000
commit4b5257b5b09d2490b2f4dc48e2181fde2a67cb5f (patch)
tree29e4770b2b36667df0db73502a911f9f63579986 /source3/libsmb/namequery_dc.c
parentac8c6e47463545011f5471960c2a2073a9b04979 (diff)
downloadsamba-4b5257b5b09d2490b2f4dc48e2181fde2a67cb5f.tar.gz
samba-4b5257b5b09d2490b2f4dc48e2181fde2a67cb5f.tar.bz2
samba-4b5257b5b09d2490b2f4dc48e2181fde2a67cb5f.zip
fix 2 bugs:
1) don't ask trusted DC's for a list of trusted domains. This causes us to treat non-transitive ones as if they were transitive. Not needed anyways 2) Fix dc lookup bug where we would always try to use DNS to resolve the DC's for a domain (even if it was a trusted NT4 domain). (This used to be commit 4d3acce5066d3adf53ee8fbaa627c42523b3cbc3)
Diffstat (limited to 'source3/libsmb/namequery_dc.c')
-rw-r--r--source3/libsmb/namequery_dc.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source3/libsmb/namequery_dc.c b/source3/libsmb/namequery_dc.c
index c9d45a7acc..a596f00ddb 100644
--- a/source3/libsmb/namequery_dc.c
+++ b/source3/libsmb/namequery_dc.c
@@ -161,18 +161,28 @@ BOOL get_dc_name(const char *domain, fstring srv_name, struct in_addr *ip_out)
{
struct in_addr dc_ip;
BOOL ret;
+ BOOL our_domain = False;
zero_ip(&dc_ip);
ret = False;
- if (lp_security() == SEC_ADS)
+
+ if ( strequal(lp_workgroup(), domain) || strequal(lp_realm(), domain) )
+ our_domain = True;
+
+ /* always try to obey what the admin specified in smb.conf.
+ If it is not our domain, assume that domain names with periods
+ in them are realm names */
+
+ if ( (our_domain && lp_security()==SEC_ADS) || strchr_m(domain, '.') ) {
ret = ads_dc_name(domain, &dc_ip, srv_name);
-
+ }
+
if (!ret) {
/* fall back on rpc methods if the ADS methods fail */
ret = rpc_dc_name(domain, srv_name, &dc_ip);
}
-
+
*ip_out = dc_ip;
return ret;