summaryrefslogtreecommitdiffstats
path: root/src/responder/common/responder_get_domains.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/responder/common/responder_get_domains.c')
-rw-r--r--src/responder/common/responder_get_domains.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/responder/common/responder_get_domains.c b/src/responder/common/responder_get_domains.c
index a98e66341..aff06e630 100644
--- a/src/responder/common/responder_get_domains.c
+++ b/src/responder/common/responder_get_domains.c
@@ -233,6 +233,7 @@ static errno_t get_domains_done(struct tevent_req *req)
struct sss_domain_info **new_sd_list = NULL;
size_t subdomain_count;
struct sysdb_subdom **subdomains;
+ struct sysdb_subdom *master_info;
state = tevent_req_data(req, struct sss_dp_domains_info);
domain = state->dom;
@@ -280,6 +281,20 @@ static errno_t get_domains_done(struct tevent_req *req)
--c;
}
+ if (domain->flat_name == NULL) {
+ ret = sysdb_master_domain_get_info(domain, domain->sysdb, &master_info);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_FUNC_DATA, ("sysdb_master_domain_get_info " \
+ "failed.\n"));
+ goto done;
+ }
+
+ domain->flat_name = talloc_strdup(domain, master_info->flat_name);
+ talloc_free(master_info);
+ DEBUG(SSSDBG_TRACE_LIBS, ("Adding flat name [%s] to domain [%s].\n",
+ domain->flat_name, domain->name));
+ }
+
errno = 0;
ret = gettimeofday(&domain->subdomains_last_checked, NULL);
if (ret == -1) {