summaryrefslogtreecommitdiffstats
path: root/server/responder/common
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-04-07 19:25:48 -0400
committerSimo Sorce <ssorce@redhat.com>2009-04-08 10:55:03 -0400
commit6b5d45693f01eec55128eb3508266cda73071d93 (patch)
treec51ca00f2fb243e5eaf06128e8092583fba1bd8c /server/responder/common
parente8a7526b06acf4af322fdab593c8bafbd9f4a103 (diff)
downloadsssd-6b5d45693f01eec55128eb3508266cda73071d93.tar.gz
sssd-6b5d45693f01eec55128eb3508266cda73071d93.tar.xz
sssd-6b5d45693f01eec55128eb3508266cda73071d93.zip
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.
Diffstat (limited to 'server/responder/common')
-rw-r--r--server/responder/common/responder.h3
-rw-r--r--server/responder/common/responder_common.c36
2 files changed, 2 insertions, 37 deletions
diff --git a/server/responder/common/responder.h b/server/responder/common/responder.h
index 4b6bfeee1..6f737a142 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 855c78a71..50cda623a 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;