summaryrefslogtreecommitdiffstats
path: root/source/nsswitch
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-01-19 20:21:29 +0000
committerJeremy Allison <jra@samba.org>2002-01-19 20:21:29 +0000
commit1bd96b3094b530c3426b22b6f891c7fc055e7033 (patch)
tree95cc123861d52c717bd20e40e0b0340fb3b44338 /source/nsswitch
parent6b123adda901ff05b0271eeda060297448f64eec (diff)
downloadsamba-1bd96b3094b530c3426b22b6f891c7fc055e7033.tar.gz
samba-1bd96b3094b530c3426b22b6f891c7fc055e7033.tar.xz
samba-1bd96b3094b530c3426b22b6f891c7fc055e7033.zip
Fix to close winbindd_idmap on exit. Pointed out by Alexander Bokovoy.
Jeremy.
Diffstat (limited to 'source/nsswitch')
-rw-r--r--source/nsswitch/winbindd.c2
-rw-r--r--source/nsswitch/winbindd_idmap.c7
-rw-r--r--source/nsswitch/winbindd_proto.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c
index 25b69cee6d8..ee373c7101f 100644
--- a/source/nsswitch/winbindd.c
+++ b/source/nsswitch/winbindd.c
@@ -154,6 +154,8 @@ static void flush_caches(void)
static void terminate(void)
{
pstring path;
+
+ winbindd_idmap_close();
/* Remove socket file */
snprintf(path, sizeof(path), "%s/%s",
diff --git a/source/nsswitch/winbindd_idmap.c b/source/nsswitch/winbindd_idmap.c
index a96111a6084..06d442c5655 100644
--- a/source/nsswitch/winbindd_idmap.c
+++ b/source/nsswitch/winbindd_idmap.c
@@ -240,6 +240,13 @@ BOOL winbindd_idmap_init(void)
return True;
}
+BOOL winbindd_idmap_close(void)
+{
+ if (idmap_tdb)
+ return (tdb_close(idmap_tdb) == 0);
+ return True;
+}
+
/* Dump status information to log file. Display different stuff based on
the debug level:
diff --git a/source/nsswitch/winbindd_proto.h b/source/nsswitch/winbindd_proto.h
index 565c08f549c..cc936642edc 100644
--- a/source/nsswitch/winbindd_proto.h
+++ b/source/nsswitch/winbindd_proto.h
@@ -61,6 +61,7 @@ BOOL winbindd_idmap_get_rid_from_uid(uid_t uid, uint32 *user_rid,
BOOL winbindd_idmap_get_rid_from_gid(gid_t gid, uint32 *group_rid,
struct winbindd_domain **domain);
BOOL winbindd_idmap_init(void);
+BOOL winbindd_idmap_close(void);
void winbindd_idmap_status(void);
/* The following definitions come from nsswitch/winbindd_misc.c */