diff options
| -rw-r--r-- | source3/nsswitch/winbindd.c | 6 | ||||
| -rw-r--r-- | source3/nsswitch/winbindd_misc.c | 6 | ||||
| -rw-r--r-- | source3/nsswitch/winbindd_util.c | 26 | 
3 files changed, 10 insertions, 28 deletions
| 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); | 
