>From 8530143608374b64a0bd4de954fdfe4800b9e7d6 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 25 Jun 2014 12:42:30 +0200 Subject: [PATCH 5/7] MONITOR: Signal InfoPipe to reconnect on SIGUSR2 When the monitor receives SIGUSR2, it also signals the IFP responder to attempt to reconnect to the system bus using the sysbusReconnect SBUS method. No action is taken by other responders. --- src/monitor/monitor.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 5e6eb37fdbf30c4079b309d98a1b05fdffdf65c7..5feba706af63e579403296329e3275c7ba8c12e9 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -759,6 +759,10 @@ static int service_signal_clear_enum_cache(struct mt_svc *svc) { return service_signal(svc, MON_CLI_IFACE_CLEARENUMCACHE); } +static int service_signal_sysbus_reconnect(struct mt_svc *svc) +{ + return service_signal(svc, MON_CLI_IFACE_SYSBUSRECONNECT); +} static int check_domain_ranges(struct sss_domain_info *domains) { @@ -1351,6 +1355,7 @@ static void monitor_hup(struct tevent_context *ev, if (!strcmp(SSS_AUTOFS_SBUS_SERVICE_NAME, cur_svc->name)) { service_signal_clear_enum_cache(cur_svc); } + } } @@ -1539,6 +1544,10 @@ static void signal_offline_reset(struct tevent_context *ev, if (cur_svc->provider) { service_signal_reset_offline(cur_svc); } + + if (strcmp(SSS_IFP_SBUS_SERVICE_NAME, cur_svc->name) == 0) { + service_signal_sysbus_reconnect(cur_svc); + } } signal_res_init(monitor); } -- 1.9.3