diff options
-rw-r--r-- | source3/lib/id_cache.c | 4 | ||||
-rw-r--r-- | source3/lib/id_cache.h | 2 | ||||
-rw-r--r-- | source3/smbd/msg_idmap.c | 1 |
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) |