diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2015-05-15 13:35:22 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-06-14 21:47:23 +0200 |
commit | de2bad8ae08f09964834bda0f88db9de39f47c5c (patch) | |
tree | 473f93dec98af4ed37ccbcf25482d0c9e2f45811 /src/providers/ad | |
parent | 933314e53fac878d1a9b126af216454172cb945a (diff) | |
download | sssd-de2bad8ae08f09964834bda0f88db9de39f47c5c.tar.gz sssd-de2bad8ae08f09964834bda0f88db9de39f47c5c.tar.xz sssd-de2bad8ae08f09964834bda0f88db9de39f47c5c.zip |
IPA/AD: Set up AD domain in ad_create_2way_trust_options
Related:
https://fedorahosted.org/sssd/ticket/2638
Removed code duplication. Amends unit test to make sure we don't
regress.
Reviewed-by: Sumit Bose <sbose@redhat.com>
Diffstat (limited to 'src/providers/ad')
-rw-r--r-- | src/providers/ad/ad_common.c | 8 | ||||
-rw-r--r-- | src/providers/ad/ad_common.h | 1 | ||||
-rw-r--r-- | src/providers/ad/ad_subdomains.c | 14 |
3 files changed, 13 insertions, 10 deletions
diff --git a/src/providers/ad/ad_common.c b/src/providers/ad/ad_common.c index 60b234dc2..22af7cbd2 100644 --- a/src/providers/ad/ad_common.c +++ b/src/providers/ad/ad_common.c @@ -138,6 +138,7 @@ ad_create_default_options(TALLOC_CTX *mem_ctx) struct ad_options * ad_create_2way_trust_options(TALLOC_CTX *mem_ctx, const char *realm, + const char *ad_domain, const char *hostname) { struct ad_options *ad_options; @@ -153,6 +154,13 @@ ad_create_2way_trust_options(TALLOC_CTX *mem_ctx, return NULL; } + ret = dp_opt_set_string(ad_options->basic, AD_DOMAIN, ad_domain); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, "Cannot set AD domain\n"); + talloc_free(ad_options); + return NULL; + } + ret = dp_opt_set_string(ad_options->basic, AD_HOSTNAME, hostname); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "Cannot set AD domain\n"); diff --git a/src/providers/ad/ad_common.h b/src/providers/ad/ad_common.h index 07b9d734f..0766b4dc9 100644 --- a/src/providers/ad/ad_common.h +++ b/src/providers/ad/ad_common.h @@ -107,6 +107,7 @@ struct ad_options *ad_create_default_options(TALLOC_CTX *mem_ctx); struct ad_options *ad_create_2way_trust_options(TALLOC_CTX *mem_ctx, const char *realm, + const char *ad_domain, const char *hostname); errno_t diff --git a/src/providers/ad/ad_subdomains.c b/src/providers/ad/ad_subdomains.c index f67d49a85..9b42f03a0 100644 --- a/src/providers/ad/ad_subdomains.c +++ b/src/providers/ad/ad_subdomains.c @@ -110,28 +110,22 @@ ad_subdom_ad_ctx_new(struct be_ctx *be_ctx, realm = dp_opt_get_cstring(id_ctx->ad_options->basic, AD_KRB5_REALM); hostname = dp_opt_get_cstring(id_ctx->ad_options->basic, AD_HOSTNAME); - if (realm == NULL || hostname == NULL) { + ad_domain = subdom->name; + if (realm == NULL || hostname == NULL || ad_domain == NULL) { DEBUG(SSSDBG_CONF_SETTINGS, "Missing realm or hostname.\n"); return EINVAL; } - ad_options = ad_create_2way_trust_options(id_ctx, realm, hostname); + ad_options = ad_create_2way_trust_options(id_ctx, realm, + ad_domain, hostname); if (ad_options == NULL) { DEBUG(SSSDBG_OP_FAILURE, "Cannot initialize AD options\n"); talloc_free(ad_options); return ENOMEM; } - ad_domain = subdom->name; ad_site_override = dp_opt_get_string(ad_options->basic, AD_SITE); - ret = dp_opt_set_string(ad_options->basic, AD_DOMAIN, ad_domain); - if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, "Cannot set AD domain\n"); - talloc_free(ad_options); - return ret; - } - gc_service_name = talloc_asprintf(ad_options, "%s%s", "gc_", subdom->name); if (gc_service_name == NULL) { talloc_free(ad_options); |