diff options
author | Günther Deschner <gd@samba.org> | 2006-09-20 00:15:50 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:00:49 -0500 |
commit | a3e1f7e44d2d6a5ef801badc189b3dcf19dc72d9 (patch) | |
tree | 67dab5b2cd86ec9a19a77af60cadfd236d2d878e /source3/nsswitch | |
parent | 47bb2e183961c7b9726002c6747ec3289898d043 (diff) | |
download | samba-a3e1f7e44d2d6a5ef801badc189b3dcf19dc72d9.tar.gz samba-a3e1f7e44d2d6a5ef801badc189b3dcf19dc72d9.tar.bz2 samba-a3e1f7e44d2d6a5ef801badc189b3dcf19dc72d9.zip |
r18703: Fix the annoying effect that happens when nscd is running:
We usually do not get the results from user/group script modifications
immediately. A lot of users do add nscd restart/refresh commands into
their scripts to workaround that while we could flush the nscd caches
directly using libnscd.
Guenther
(This used to be commit 7db6ce295afbedfada7b207ad56566d2195a0d21)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r-- | source3/nsswitch/winbindd.c | 3 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_dual.c | 3 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_util.c | 21 |
3 files changed, 4 insertions, 23 deletions
diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index df8f821c8b..8d5a7042c6 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -1063,7 +1063,8 @@ int main(int argc, char **argv) init_idmap_child(); - winbindd_flush_nscd_cache(); + smb_nscd_flush_user_cache(); + smb_nscd_flush_group_cache(); /* Loop waiting for requests */ diff --git a/source3/nsswitch/winbindd_dual.c b/source3/nsswitch/winbindd_dual.c index 128c468dd3..1a3de3f1e5 100644 --- a/source3/nsswitch/winbindd_dual.c +++ b/source3/nsswitch/winbindd_dual.c @@ -606,7 +606,8 @@ static void child_msg_online(int msg_type, struct process_id src, void *buf, siz /* Set our global state as online. */ set_global_winbindd_state_online(); - winbindd_flush_nscd_cache(); + smb_nscd_flush_user_cache(); + smb_nscd_flush_group_cache(); /* Try and mark everything online - delete any negative cache entries to force a reconnect now. */ diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index a99115690d..4d99b0fbe6 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -1218,27 +1218,6 @@ BOOL winbindd_upgrade_idmap(void) return idmap_convert(idmap_name); } -void winbindd_flush_nscd_cache(void) -{ -#ifdef HAVE_NSCD_FLUSH_CACHE - - /* Flush nscd caches to get accurate new information */ - int ret = nscd_flush_cache("passwd"); - if (ret) { - DEBUG(5,("failed to flush nscd cache for 'passwd' service: %s\n", - strerror(errno))); - } - - ret = nscd_flush_cache("group"); - if (ret) { - DEBUG(5,("failed to flush nscd cache for 'group' service: %s\n", - strerror(errno))); - } -#else - return; -#endif -} - NTSTATUS lookup_usergroups_cached(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, const DOM_SID *user_sid, |