diff options
author | Ralph Boehme <slow@samba.org> | 2021-01-20 12:00:16 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2021-02-01 07:50:10 +0000 |
commit | 27dc8f4e90b4222b88cabf0fe7b85b82a04f3504 (patch) | |
tree | 7107b1478337ede846e93645da0f9ca0bc7a9508 | |
parent | 3b5fa17d9bd1b256dcb563f0b066938a95b7eccf (diff) | |
download | samba-27dc8f4e90b4222b88cabf0fe7b85b82a04f3504.tar.gz |
winbind: handle MSG_SMB_CONF_UPDATED in the winbinds children
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14602
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 072ef48001710ed8326c83295f2d3cc301d27cfe)
-rw-r--r-- | source3/winbindd/winbindd_dual.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c index 6cc1305a9b8..b1c86b2979c 100644 --- a/source3/winbindd/winbindd_dual.c +++ b/source3/winbindd/winbindd_dual.c @@ -927,6 +927,16 @@ void winbind_disconnect_dc_parent(struct messaging_context *msg_ctx, forall_children(winbind_msg_relay_fn, &state); } +static void winbindd_msg_reload_services_child(struct messaging_context *msg, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data) +{ + DBG_DEBUG("Got reload-config message\n"); + winbindd_reload_services_file((const char *)private_data); +} + /* React on 'smbcontrol winbindd reload-config' in the same way as on SIGHUP*/ void winbindd_msg_reload_services_parent(struct messaging_context *msg, void *private_data, @@ -934,12 +944,20 @@ void winbindd_msg_reload_services_parent(struct messaging_context *msg, struct server_id server_id, DATA_BLOB *data) { + struct winbind_msg_relay_state state = { + .msg_ctx = msg, + .msg_type = msg_type, + .data = data, + }; + DBG_DEBUG("Got reload-config message\n"); /* Flush various caches */ winbindd_flush_caches(); winbindd_reload_services_file((const char *)private_data); + + forall_children(winbind_msg_relay_fn, &state); } /* Set our domains as offline and forward the offline message to our children. */ @@ -1775,6 +1793,10 @@ static bool fork_domain_child(struct winbindd_child *child) messaging_register(global_messaging_context(), NULL, MSG_WINBIND_DISCONNECT_DC, winbind_msg_disconnect_dc); + messaging_register(global_messaging_context(), + override_logfile ? NULL : child->logfilename, + MSG_SMB_CONF_UPDATED, + winbindd_msg_reload_services_child); primary_domain = find_our_domain(); |