From cce8c72eb141c8f279003f526de3dc02abc98d43 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 17 Aug 2011 15:21:52 -0400 Subject: s3-lsasd: Listen on parent messages Signed-off-by: Andreas Schneider Signed-off-by: Simo Sorce --- source3/rpc_server/lsasd.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/source3/rpc_server/lsasd.c b/source3/rpc_server/lsasd.c index c6c3dc21b0..23e11e0b1d 100644 --- a/source3/rpc_server/lsasd.c +++ b/source3/rpc_server/lsasd.c @@ -233,6 +233,22 @@ static bool lsasd_setup_chld_hup_handler(struct tevent_context *ev_ctx, return true; } +static void parent_ping(struct messaging_context *msg_ctx, + void *private_data, + uint32_t msg_type, + struct server_id server_id, + DATA_BLOB *data) +{ + + /* The fact we received this message is enough to let make the event + * loop if it was idle. lsasd_children_main will cycle through + * lsasd_next_client at least once. That function will take whatever + * action is necessary */ + + DEBUG(10, ("Got message that the parent changed status.\n")); + return; +} + static bool lsasd_child_init(struct tevent_context *ev_ctx, int child_id, struct pf_worker_data *pf) @@ -262,6 +278,8 @@ static bool lsasd_child_init(struct tevent_context *ev_ctx, messaging_register(msg_ctx, ev_ctx, MSG_SMB_CONF_UPDATED, lsasd_smb_conf_updated); + messaging_register(msg_ctx, ev_ctx, + MSG_PREFORK_PARENT_EVENT, parent_ping); status = rpc_lsarpc_init(NULL); if (!NT_STATUS_IS_OK(status)) { -- cgit