summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/id_cache.c4
-rw-r--r--source3/lib/id_cache.h2
-rw-r--r--source3/smbd/msg_idmap.c1
3 files changed, 5 insertions, 2 deletions
diff --git a/source3/lib/id_cache.c b/source3/lib/id_cache.c
index 71693c1464..e71934d6e3 100644
--- a/source3/lib/id_cache.c
+++ b/source3/lib/id_cache.c
@@ -138,7 +138,7 @@ static void flush_uid_cache(void)
memcache_flush(NULL, SID_UID_CACHE);
memcache_flush(NULL, UID_SID_CACHE);
}
-static void delete_from_cache(const struct id_cache_ref* id)
+void id_cache_delete_from_cache(const struct id_cache_ref* id)
{
switch(id->type) {
case UID:
@@ -195,7 +195,7 @@ static void id_cache_delete(struct messaging_context *msg_ctx,
return;
}
- delete_from_cache(&id);
+ id_cache_delete_from_cache(&id);
}
void id_cache_register_msgs(struct messaging_context *ctx)
diff --git a/source3/lib/id_cache.h b/source3/lib/id_cache.h
index 208ce60e96..00fd2853c9 100644
--- a/source3/lib/id_cache.h
+++ b/source3/lib/id_cache.h
@@ -29,4 +29,6 @@ struct id_cache_ref {
bool id_cache_ref_parse(const char* str, struct id_cache_ref* id);
+void id_cache_delete_from_cache(const struct id_cache_ref* id);
+
void id_cache_register_msgs(struct messaging_context *ctx);
diff --git a/source3/smbd/msg_idmap.c b/source3/smbd/msg_idmap.c
index e4a5652a9e..cb8fbcd42f 100644
--- a/source3/smbd/msg_idmap.c
+++ b/source3/smbd/msg_idmap.c
@@ -132,6 +132,7 @@ static void id_cache_kill(struct messaging_context *msg_ctx,
if (id_in_use(validated_users, &id)) {
exit_server_cleanly(msg);
}
+ id_cache_delete_from_cache(&id);
}
void id_cache_register_kill_msg(struct messaging_context *ctx)