diff options
author | Tim Potter <tpot@samba.org> | 2002-01-11 05:33:45 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-01-11 05:33:45 +0000 |
commit | da84e2a7568eac084ad04793d60523c63ec664c3 (patch) | |
tree | db38aa3765865c9a44c6cd40da9ba1a7d34a70ee /source3/nsswitch/winbindd_misc.c | |
parent | 5047a66d39fdd56a5895037de8c519a828a03b19 (diff) | |
download | samba-da84e2a7568eac084ad04793d60523c63ec664c3.tar.gz samba-da84e2a7568eac084ad04793d60523c63ec664c3.tar.xz 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.c | 9 |
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 */ |