From 0d2be77b143fcbeb6d351c0f1458882289c1df0a Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Mon, 26 Nov 2012 14:31:47 +0100 Subject: [PATCH 04/12] Update domain ID for local domain as well Currently only the flat name of the configured domain is updated if it is not already set. This patch updates the domain ID as well. This is typically the case when trust support is enabled on the server side while sssd is running. --- src/responder/common/responder_get_domains.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/responder/common/responder_get_domains.c b/src/responder/common/responder_get_domains.c index 468dd76..c98c47b 100644 --- a/src/responder/common/responder_get_domains.c +++ b/src/responder/common/responder_get_domains.c @@ -329,7 +329,7 @@ process_subdomains(struct sss_domain_info *domain) --c; } - if (domain->flat_name == NULL) { + if (domain->flat_name == NULL || domain->domain_id == NULL) { ret = sysdb_master_domain_get_info(domain, domain->sysdb, &master_info); if (ret != EOK) { DEBUG(SSSDBG_FUNC_DATA, ("sysdb_master_domain_get_info " \ @@ -337,7 +337,19 @@ process_subdomains(struct sss_domain_info *domain) goto done; } - domain->flat_name = talloc_strdup(domain, master_info->flat_name); + if (domain->flat_name == NULL) { + domain->flat_name = talloc_strdup(domain, master_info->flat_name); + if (domain->flat_name == NULL) { + DEBUG(SSSDBG_MINOR_FAILURE, ("talloc_strdup failed, ignoring")); + } + } + + if (domain->domain_id == NULL) { + domain->domain_id = talloc_strdup(domain, master_info->id); + if (domain->domain_id == NULL) { + DEBUG(SSSDBG_MINOR_FAILURE, ("talloc_strdup failed, ignoring")); + } + } talloc_free(master_info); DEBUG(SSSDBG_TRACE_LIBS, ("Adding flat name [%s] to domain [%s].\n", domain->flat_name, domain->name)); -- 1.7.7.6