diff options
author | Gerald Carter <jerry@samba.org> | 2007-05-06 21:34:24 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:21:50 -0500 |
commit | 78c27bb77000d6f97938e633e7be936c0de92636 (patch) | |
tree | f64a9e8874b083c5fae6b458e7bacf9c4491a78a /source3/nsswitch | |
parent | 189b694ee938953cd52448db7f7e101d5b6a2546 (diff) | |
download | samba-78c27bb77000d6f97938e633e7be936c0de92636.tar.gz samba-78c27bb77000d6f97938e633e7be936c0de92636.tar.bz2 samba-78c27bb77000d6f97938e633e7be936c0de92636.zip |
r22725: * Don't try to update the sequence_number when offline
* Log the NTSTATUS when saving name/sid cache entry
* Allow the backend loolkup_usergroups() call in winbindd_{rpc,ads}.c
to inform the wcache manager that the group list should not be cached
(needed for one-way trusts).
(This used to be commit 693ab48408dbb775b57dcc5140e27ad9221852a1)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r-- | source3/nsswitch/winbindd_cache.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source3/nsswitch/winbindd_cache.c b/source3/nsswitch/winbindd_cache.c index ceeb4988c2..5bb98b17da 100644 --- a/source3/nsswitch/winbindd_cache.c +++ b/source3/nsswitch/winbindd_cache.c @@ -458,6 +458,10 @@ static void refresh_sequence_number(struct winbindd_domain *domain, BOOL force) time_t t = time(NULL); unsigned cache_time = lp_winbind_cache_time(); + if ( IS_DOMAIN_OFFLINE(domain) ) { + return; + } + get_cache( domain ); #if 0 /* JERRY -- disable as the default cache time is now 5 minutes */ @@ -829,8 +833,8 @@ static void wcache_save_name_to_sid(struct winbindd_domain *domain, fstrcpy(uname, name); strupper_m(uname); centry_end(centry, "NS/%s/%s", domain_name, uname); - DEBUG(10,("wcache_save_name_to_sid: %s\\%s -> %s\n", domain_name, uname, - sid_string_static(sid))); + DEBUG(10,("wcache_save_name_to_sid: %s\\%s -> %s (%s)\n", domain_name, uname, + sid_string_static(sid), nt_errstr(status))); centry_free(centry); } @@ -853,7 +857,8 @@ static void wcache_save_sid_to_name(struct winbindd_domain *domain, NTSTATUS sta centry_put_string(centry, name); } centry_end(centry, "SN/%s", sid_to_string(sid_string, sid)); - DEBUG(10,("wcache_save_sid_to_name: %s -> %s\n", sid_string, name)); + DEBUG(10,("wcache_save_sid_to_name: %s -> %s (%s)\n", sid_string, + name, nt_errstr(status))); centry_free(centry); } @@ -1748,6 +1753,9 @@ do_query: status = domain->backend->lookup_usergroups(domain, mem_ctx, user_sid, num_groups, user_gids); + if ( NT_STATUS_EQUAL(status, NT_STATUS_SYNCHRONIZATION_REQUIRED) ) + goto skip_save; + /* and save it */ refresh_sequence_number(domain, False); centry = centry_start(domain, status); |