From de69927053fcc56a337af4ab0c93d24444eb6c24 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 20 Mar 2009 11:10:56 -0400 Subject: Enhance server_setup Now it can load from scratch default configuration that is valid for all daemons. First thing, make it possible for each daemon/provider to set its own debug level in its configuration entry. --- server/providers/data_provider.c | 6 ++++-- server/providers/data_provider_be.c | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'server/providers') diff --git a/server/providers/data_provider.c b/server/providers/data_provider.c index cc437c9a3..183fdc4e5 100644 --- a/server/providers/data_provider.c +++ b/server/providers/data_provider.c @@ -43,6 +43,8 @@ #include "monitor/monitor_interfaces.h" #include "responder/pam/pamsrv.h" +#define DP_CONF_ENTRY "config/services/dp" + struct dp_backend; struct dp_frontend; @@ -1004,7 +1006,7 @@ static int dp_srv_init(struct dp_ctx *dpctx) } ret = confdb_get_string(dpctx->cdb, tmp_ctx, - "config/services/dataprovider", "dpbusAddress", + DP_CONF_ENTRY, "dpbusAddress", default_dp_address, &dpbus_address); if (ret != EOK) goto done; @@ -1100,7 +1102,7 @@ int main(int argc, const char *argv[]) poptFreeContext(pc); /* set up things like debug , signals, daemonization, etc... */ - ret = server_setup("sssd[dp]", 0, &main_ctx); + ret = server_setup("sssd[dp]", 0, DP_CONF_ENTRY, &main_ctx); if (ret != EOK) return 2; ret = dp_process_init(main_ctx, diff --git a/server/providers/data_provider_be.c b/server/providers/data_provider_be.c index 8796ec14b..675fb6342 100644 --- a/server/providers/data_provider_be.c +++ b/server/providers/data_provider_be.c @@ -47,6 +47,8 @@ #include "monitor/monitor_interfaces.h" #include "../sss_client/sss_cli.h" +#define BE_CONF_ENTRY "config/domains/%s" + typedef int (*be_init_fn_t)(TALLOC_CTX *, struct be_mod_ops **, void **); static int service_identity(DBusMessage *message, struct sbus_conn_ctx *sconn); @@ -881,6 +883,7 @@ int main(int argc, const char *argv[]) char *be_name; char *be_domain; char *srv_name; + char *conf_entry; struct main_context *main_ctx; int ret; @@ -911,7 +914,10 @@ int main(int argc, const char *argv[]) srv_name = talloc_asprintf(NULL, "sssd[be[%s]]", be_name); if (!srv_name) return 2; - ret = server_setup(srv_name, 0, &main_ctx); + conf_entry = talloc_asprintf(NULL, BE_CONF_ENTRY, be_domain); + if (!conf_entry) return 2; + + ret = server_setup(srv_name, 0, conf_entry, &main_ctx); if (ret != EOK) { DEBUG(0, ("Could not set up mainloop [%d]\n", ret)); return 2; -- cgit