summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/examples/sssd.conf1
-rw-r--r--server/monitor/monitor.c17
2 files changed, 17 insertions, 1 deletions
diff --git a/server/examples/sssd.conf b/server/examples/sssd.conf
index a480b549..1841152a 100644
--- a/server/examples/sssd.conf
+++ b/server/examples/sssd.conf
@@ -60,6 +60,7 @@ description = Domains served by SSSD
; [domains/LOCAL]
; description = LOCAL Users domain
+; provider = local
; enumerate = 3
; minId = 500
; maxId = 999
diff --git a/server/monitor/monitor.c b/server/monitor/monitor.c
index 1d8f33e4..91015410 100644
--- a/server/monitor/monitor.c
+++ b/server/monitor/monitor.c
@@ -516,6 +516,11 @@ static int service_signal_reload(struct mt_svc *svc)
DBusConnection *conn;
DBusPendingCall *pending_reply;
+ if (svc->provider && strcasecmp(svc->provider, "local") == 0) {
+ /* The local provider requires no signaling */
+ return EOK;
+ }
+
conn = sbus_get_connection(svc->mt_conn->conn_ctx);
msg = dbus_message_new_method_call(NULL,
SERVICE_PATH,
@@ -954,7 +959,7 @@ static int update_monitor_config(struct mt_ctx *ctx)
cur_svc = cur_svc->next;
}
if (cur_svc == NULL) {
- DEBUG(0, ("Service entry missing data\n"));
+ DEBUG(0, ("Service entry missing data for [%s]\n", new_dom->name));
/* This shouldn't be possible
*/
talloc_free(new_config);
@@ -1911,6 +1916,16 @@ static void service_startup_handler(struct tevent_context *ev,
return;
}
+ if (mt_svc->provider && strcasecmp(mt_svc->provider, "local") == 0) {
+ /* The LOCAL provider requires no back-end currently
+ * We'll add it to the service list, but we don't need
+ * to poll it.
+ */
+ DLIST_ADD(mt_svc->mt_ctx->svc_list, mt_svc);
+ talloc_set_destructor((TALLOC_CTX *)mt_svc, delist_service);
+ return;
+ }
+
mt_svc->pid = fork();
if (mt_svc->pid != 0) {
if (mt_svc->pid == -1) {