summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa/ipa_subdomains.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2013-06-19 10:50:44 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-06-28 22:22:20 +0200
commitf8a4a5f6240156809e1b5ef03816f673281e3fa0 (patch)
tree4963a9bbe4f56c50093df9f826fa7a268b6fd335 /src/providers/ipa/ipa_subdomains.c
parent59415636c92c6e9764ddc65a85ad61002310519d (diff)
downloadsssd-f8a4a5f6240156809e1b5ef03816f673281e3fa0.tar.gz
sssd-f8a4a5f6240156809e1b5ef03816f673281e3fa0.tar.xz
sssd-f8a4a5f6240156809e1b5ef03816f673281e3fa0.zip
IPA: Initialize server mode ctx if server mode is on
This patch introduces a new structure that holds information about a subdomain and its ad_id_ctx. This structure will be used only in server mode to make it possible to search subdomains with a particular ad_id_ctx. Subtask of: https://fedorahosted.org/sssd/ticket/1962
Diffstat (limited to 'src/providers/ipa/ipa_subdomains.c')
-rw-r--r--src/providers/ipa/ipa_subdomains.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/providers/ipa/ipa_subdomains.c b/src/providers/ipa/ipa_subdomains.c
index a67526c83..652726daf 100644
--- a/src/providers/ipa/ipa_subdomains.c
+++ b/src/providers/ipa/ipa_subdomains.c
@@ -925,3 +925,36 @@ int ipa_subdom_init(struct be_ctx *be_ctx,
return EOK;
}
+
+int ipa_ad_subdom_init(struct be_ctx *be_ctx,
+ struct ipa_id_ctx *id_ctx)
+{
+ char *realm;
+ char *hostname;
+
+ if (dp_opt_get_bool(id_ctx->ipa_options->basic,
+ IPA_SERVER_MODE) == false) {
+ return EOK;
+ }
+
+ realm = dp_opt_get_string(id_ctx->ipa_options->basic, IPA_KRB5_REALM);
+ if (realm == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("No Kerberos realm for IPA?\n"));
+ return EINVAL;
+ }
+
+ hostname = dp_opt_get_string(id_ctx->ipa_options->basic, IPA_HOSTNAME);
+ if (hostname == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("No host name for IPA?\n"));
+ return EINVAL;
+ }
+
+ id_ctx->server_mode = talloc(id_ctx, struct ipa_server_mode_ctx);
+ if (id_ctx->server_mode == NULL) {
+ return ENOMEM;
+ }
+ id_ctx->server_mode->realm = realm;
+ id_ctx->server_mode->hostname = hostname;
+
+ return EOK;
+}