summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-06-25 12:42:30 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-07-16 17:12:06 +0200
commit87d3c7d23885b0b6dca3d7cf0494c7b93225429c (patch)
treeb2b26ccf4f1f01c41b15ba7f5fe3c5175b43a233
parentfbc3f000ca0672bb18797201768bd13e5611eaad (diff)
downloadsssd-87d3c7d23885b0b6dca3d7cf0494c7b93225429c.tar.gz
sssd-87d3c7d23885b0b6dca3d7cf0494c7b93225429c.tar.xz
sssd-87d3c7d23885b0b6dca3d7cf0494c7b93225429c.zip
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. Reviewed-by: Pavel Březina <pbrezina@redhat.com>
-rw-r--r--src/monitor/monitor.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 4c6ab517e..37155b9ef 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -740,6 +740,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)
{
@@ -1333,6 +1337,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);
}
+
}
}
@@ -1521,6 +1526,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);
}