]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
r22726: When performing an offline logon for a user in a trusted domain,
authorGerald Carter <jerry@samba.org>
Sun, 6 May 2007 21:36:20 +0000 (21:36 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:21:51 +0000 (12:21 -0500)
take care not to expire the name2sid cache entry just because
that child does not know that the primary domain is offline.

source/nsswitch/winbindd_cache.c

index 5bb98b17da411901e2630ab9305bd9f3649ee74d..ed0d4131f618179f0157b6f2af8ec6d21063c41b 100644 (file)
@@ -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;
        }