summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2014-01-06 15:15:37 -0800
committerJeremy Allison <jra@samba.org>2014-01-08 09:46:03 -0800
commitcfa6a36467f5679a88e49419e8af32b724c242bd (patch)
tree7a235fb30b9c4b5ea99edea9d335828f92b02cb2
parent175b8e1475c45a6a829941127f018197baec3909 (diff)
downloadsamba-cfa6a36467f5679a88e49419e8af32b724c242bd.tar.gz
samba-cfa6a36467f5679a88e49419e8af32b724c242bd.tar.xz
samba-cfa6a36467f5679a88e49419e8af32b724c242bd.zip
s3: winbindd: Move the logic of whether to set 'domain->primary' into add_trusted_domain().
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10358 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
-rw-r--r--source3/winbindd/winbindd_util.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
index 85b014d97cc..10ca13222b4 100644
--- a/source3/winbindd/winbindd_util.c
+++ b/source3/winbindd/winbindd_util.c
@@ -99,6 +99,7 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
char *idmap_config_option;
const char *param;
const char **ignored_domains, **dom;
+ int role = lp_server_role();
ignored_domains = lp_parm_string_list(-1, "winbind", "ignore domains", NULL);
for (dom=ignored_domains; dom && *dom; dom++) {
@@ -196,6 +197,15 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
sid_copy(&domain->sid, sid);
}
+ /* Is this our primary domain ? */
+ if (strequal(domain_name, get_global_sam_name()) &&
+ (role != ROLE_DOMAIN_MEMBER)) {
+ domain->primary = true;
+ } else if (strequal(domain_name, lp_workgroup()) &&
+ (role == ROLE_DOMAIN_MEMBER)) {
+ domain->primary = true;
+ }
+
/* Link to domain list */
DLIST_ADD_END(_domain_list, domain, struct winbindd_domain *);
@@ -628,9 +638,6 @@ bool init_domain_list(void)
domain = add_trusted_domain(get_global_sam_name(), NULL,
&cache_methods, get_global_sam_sid());
if (domain) {
- if ( role != ROLE_DOMAIN_MEMBER ) {
- domain->primary = True;
- }
setup_domain_child(domain);
}
@@ -647,7 +654,6 @@ bool init_domain_list(void)
domain = add_trusted_domain( lp_workgroup(), lp_realm(),
&cache_methods, &our_sid);
if (domain) {
- domain->primary = True;
setup_domain_child(domain);
/* Even in the parent winbindd we'll need to