summaryrefslogtreecommitdiff
path: root/source3/nsswitch
diff options
context:
space:
mode:
Diffstat (limited to 'source3/nsswitch')
-rw-r--r--source3/nsswitch/winbindd_util.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c
index 3671c88e2b..7a5fa3be20 100644
--- a/source3/nsswitch/winbindd_util.c
+++ b/source3/nsswitch/winbindd_util.c
@@ -199,7 +199,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;
@@ -208,27 +207,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);