summaryrefslogtreecommitdiff
path: root/source3/nsswitch/winbindd_misc.c
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2002-01-11 05:33:45 +0000
committerTim Potter <tpot@samba.org>2002-01-11 05:33:45 +0000
commitda84e2a7568eac084ad04793d60523c63ec664c3 (patch)
treedb38aa3765865c9a44c6cd40da9ba1a7d34a70ee /source3/nsswitch/winbindd_misc.c
parent5047a66d39fdd56a5895037de8c519a828a03b19 (diff)
downloadsamba-da84e2a7568eac084ad04793d60523c63ec664c3.tar.gz
samba-da84e2a7568eac084ad04793d60523c63ec664c3.tar.bz2
samba-da84e2a7568eac084ad04793d60523c63ec664c3.zip
Always query the PDC for the list of trusted domains rather than interating
the list received at startup or we get an out of date list. I thought there might be some sequence number that is incremented when a trusted domain is added or removed - perhaps there is but I just haven't found it yet. - Renamed get_domain_info() to init_domain_list() - Made an accessor function to return the list of trusted domains rather than using a global so we don't have to remember to put a magic init function - The getent state can not keep a pointer to a winbind_domain structure as it may be freed if init_domain_list() is called again so we keep the domain name instead (This used to be commit 37216c649a394b449eaaaa6644709eafb3bf37ff)
Diffstat (limited to 'source3/nsswitch/winbindd_misc.c')
-rw-r--r--source3/nsswitch/winbindd_misc.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source3/nsswitch/winbindd_misc.c b/source3/nsswitch/winbindd_misc.c
index d820bb35dc..883f9a4e22 100644
--- a/source3/nsswitch/winbindd_misc.c
+++ b/source3/nsswitch/winbindd_misc.c
@@ -104,10 +104,13 @@ enum winbindd_result winbindd_list_trusted_domains(struct winbindd_cli_state
DEBUG(3, ("[%5d]: list trusted domains\n", state->pid));
- if (domain_list == NULL)
- get_domain_info();
+ /* We need to refresh the trusted domain list as the domains may
+ have changed since we last looked. There may be a sequence
+ number or something we should use but I haven't found it yet. */
- for(domain = domain_list; domain; domain = domain->next) {
+ init_domain_list();
+
+ for(domain = domain_list(); domain; domain = domain->next) {
/* Skip own domain */