diff options
Diffstat (limited to 'src/monitor/monitor.c')
-rw-r--r-- | src/monitor/monitor.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 5e6eb37fd..5feba706a 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); } |