From cf17d012e67e632ddc2f83f498486d6ac766a752 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Mon, 13 Jan 2003 03:45:31 +0000 Subject: Merge of remove "winbindd holding pattern" from appliance. It's a bit simpler as the rescanning of trusted domains helps us out a bit. (This used to be commit 089729c02cb2088e85f0e7f8ec79afb58fe98be7) --- source3/nsswitch/winbindd.c | 6 ------ source3/nsswitch/winbindd_misc.c | 6 +++++- source3/nsswitch/winbindd_util.c | 26 +++++--------------------- 3 files changed, 10 insertions(+), 28 deletions(-) (limited to 'source3') diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index eadbf56074..815d691485 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -714,12 +714,6 @@ BOOL winbind_setup_common(void) if (!winbindd_param_init()) return False; - /* Get list of domains we look up requests for. This includes the - domain which we are a member of as well as any trusted - domains. */ - - init_domain_list(); - /* Winbind daemon initialisation */ if (!winbindd_idmap_init()) diff --git a/source3/nsswitch/winbindd_misc.c b/source3/nsswitch/winbindd_misc.c index d656c3ca4d..74748f1aed 100644 --- a/source3/nsswitch/winbindd_misc.c +++ b/source3/nsswitch/winbindd_misc.c @@ -113,7 +113,11 @@ enum winbindd_result winbindd_list_trusted_domains(struct winbindd_cli_state have changed since we last looked. There may be a sequence number or something we should use but I haven't found it yet. */ - init_domain_list(); + if (!init_domain_list()) { + DEBUG(1, ("winbindd_list_trusted_domains: could not " + "refresh trusted domain list\n")); + return WINBINDD_ERROR; + } for(domain = domain_list(); domain; domain = domain->next) { diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index f5b4bb4497..6d39df9c0a 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -202,7 +202,6 @@ void rescan_trusted_domains(void) /* Look up global info for the winbind daemon */ BOOL init_domain_list(void) { - NTSTATUS result; extern struct winbindd_methods cache_methods; struct winbindd_domain *domain; @@ -211,27 +210,12 @@ BOOL init_domain_list(void) /* Add ourselves as the first entry */ domain = add_trusted_domain(lp_workgroup(), NULL, &cache_methods, NULL); - - /* - * Now we *must* get the domain sid for our primary domain. Go into - * a holding pattern until that is available - */ - - result = cache_methods.domain_sid(domain, &domain->sid); - while (!NT_STATUS_IS_OK(result)) { - - sleep(10); - DEBUG(1,("Retrying startup domain sid fetch for %s\n", - domain->name)); - result = cache_methods.domain_sid(domain, &domain->sid); - - /* If we don't call lp_talloc_free() here we end up - accumulating memory in the "global" lp_talloc in - param/loadparm.c */ - - lp_talloc_free(); + if (!secrets_fetch_domain_sid(domain->name, &domain->sid)) { + DEBUG(1, ("Could not fetch sid for our domain %s\n", + domain->name)); + return False; } - + /* get any alternate name for the primary domain */ cache_methods.alternate_name(domain); -- cgit