From c473d9e47f943a3c6b238127554bb475a014e80a Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Sun, 6 May 2007 21:36:20 +0000 Subject: r22726: When performing an offline logon for a user in a trusted domain, take care not to expire the name2sid cache entry just because that child does not know that the primary domain is offline. (This used to be commit 0399f52a1cdbb1acf8d41afddf498529ff4923cf) --- source3/nsswitch/winbindd_cache.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source3/nsswitch/winbindd_cache.c') diff --git a/source3/nsswitch/winbindd_cache.c b/source3/nsswitch/winbindd_cache.c index 5bb98b17da..ed0d4131f6 100644 --- a/source3/nsswitch/winbindd_cache.c +++ b/source3/nsswitch/winbindd_cache.c @@ -2448,6 +2448,7 @@ BOOL lookup_cached_name(TALLOC_CTX *mem_ctx, struct cache_entry *centry = NULL; NTSTATUS status; fstring uname; + BOOL original_online_state; domain = find_lookup_domain_from_name(domain_name); if (domain == NULL) { @@ -2463,7 +2464,14 @@ BOOL lookup_cached_name(TALLOC_CTX *mem_ctx, fstrcpy(uname, name); strupper_m(uname); + /* If we are doing a cached logon, temporarily set the domain + offline so the cache won't expire the entry */ + + original_online_state = domain->online; + domain->online = False; centry = wcache_fetch(cache, domain, "NS/%s/%s", domain_name, uname); + domain->online = original_online_state; + if (centry == NULL) { return False; } -- cgit