summaryrefslogtreecommitdiff
path: root/source3/nsswitch
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2006-09-20 00:15:50 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:00:49 -0500
commita3e1f7e44d2d6a5ef801badc189b3dcf19dc72d9 (patch)
tree67dab5b2cd86ec9a19a77af60cadfd236d2d878e /source3/nsswitch
parent47bb2e183961c7b9726002c6747ec3289898d043 (diff)
downloadsamba-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.c3
-rw-r--r--source3/nsswitch/winbindd_dual.c3
-rw-r--r--source3/nsswitch/winbindd_util.c21
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,