From 6b5d45693f01eec55128eb3508266cda73071d93 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 7 Apr 2009 19:25:48 -0400 Subject: Change the way we retrieve domains To be able to correctly filter out duplicate names when multiple non-fully qualified domains are in use we need to be able to specify the domains order. This is now accomplished by the configuration paramets 'domains' in the config/domains entry. 'domains' is a comma separated list of domain names. This paramter allows also to have disbaled domains in the configuration without requiring to completely delete them. The domains list is now kept in a linked list of sss_domain_info objects. The first domain is also the "default" domain. --- server/responder/common/responder.h | 3 +-- server/responder/common/responder_common.c | 36 +----------------------------- 2 files changed, 2 insertions(+), 37 deletions(-) (limited to 'server/responder/common') diff --git a/server/responder/common/responder.h b/server/responder/common/responder.h index 4b6bfeee..6f737a14 100644 --- a/server/responder/common/responder.h +++ b/server/responder/common/responder.h @@ -63,8 +63,7 @@ struct resp_ctx { struct service_sbus_ctx *ss_ctx; struct service_sbus_ctx *dp_ctx; - struct btreemap *domain_map; - char *default_domain; + struct sss_domain_info *domains; struct sbus_method *sss_sbus_methods; struct sss_cmd_table *sss_cmds; diff --git a/server/responder/common/responder_common.c b/server/responder/common/responder_common.c index 855c78a7..50cda623 100644 --- a/server/responder/common/responder_common.c +++ b/server/responder/common/responder_common.c @@ -453,40 +453,6 @@ failed: return EIO; } -static int sss_init_domains(struct resp_ctx *rctx) -{ - int ret; - int retval; - - ret = confdb_get_domains(rctx->cdb, rctx, &rctx->domain_map); - if (ret != EOK) { - retval = ret; - goto done; - } - - if (rctx->domain_map == NULL) { - /* No domains configured! - * Note: this should never happen, since LOCAL should - * always be configured */ - DEBUG(0, ("No domains configured on this client!\n")); - retval = EINVAL; - goto done; - } - - ret = confdb_get_string(rctx->cdb, rctx, - "config/domains", "default", - NULL, &rctx->default_domain); - if (ret != EOK) { - retval = ret; - goto done; - } - - retval = EOK; - -done: - return retval; -} - int sss_names_init(struct resp_ctx *rctx) { struct sss_names_ctx *ctx; @@ -571,7 +537,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx, rctx->confdb_service_path = confdb_service_path; rctx->dp_methods = dp_methods; - ret = sss_init_domains(rctx); + ret = confdb_get_domains(rctx->cdb, rctx, &rctx->domains); if (ret != EOK) { DEBUG(0, ("fatal error setting up domain map\n")); return ret; -- cgit