summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-06-03 10:14:37 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-06-14 21:48:07 +0200
commit7abec79ff6eeaff043c995bbb0a152ca3e0744e7 (patch)
tree5cbe807a94db9ea3d6fa3f88588b945a9f4a52e5
parent3b9f34f653a610f63e88ee0f174a5c47e0d8fe0d (diff)
downloadsssd-7abec79ff6eeaff043c995bbb0a152ca3e0744e7.tar.gz
sssd-7abec79ff6eeaff043c995bbb0a152ca3e0744e7.tar.xz
sssd-7abec79ff6eeaff043c995bbb0a152ca3e0744e7.zip
LDAP: Consolidate SDAP_SASL_REALM/SDAP_KRB5_REALM behaviour
Reviewed-by: Sumit Bose <sbose@redhat.com>
-rw-r--r--src/providers/ldap/ldap_common.c14
-rw-r--r--src/providers/ldap/ldap_common.h2
-rw-r--r--src/providers/ldap/sdap_async_connection.c8
3 files changed, 16 insertions, 8 deletions
diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c
index 8133431cc..840a09871 100644
--- a/src/providers/ldap/ldap_common.c
+++ b/src/providers/ldap/ldap_common.c
@@ -399,6 +399,18 @@ done:
return realm;
}
+const char *sdap_gssapi_realm(struct dp_option *opts)
+{
+ const char *realm;
+
+ realm = dp_opt_get_cstring(opts, SDAP_SASL_REALM);
+ if (!realm) {
+ realm = dp_opt_get_cstring(opts, SDAP_KRB5_REALM);
+ }
+
+ return realm;
+}
+
int sdap_gssapi_init(TALLOC_CTX *mem_ctx,
struct dp_option *opts,
struct be_ctx *bectx,
@@ -419,7 +431,7 @@ int sdap_gssapi_init(TALLOC_CTX *mem_ctx,
krb5_servers = dp_opt_get_string(opts, SDAP_KRB5_KDC);
krb5_backup_servers = dp_opt_get_string(opts, SDAP_KRB5_BACKUP_KDC);
- krb5_opt_realm = dp_opt_get_string(opts, SDAP_KRB5_REALM);
+ krb5_opt_realm = sdap_gssapi_realm(opts);
if (krb5_opt_realm == NULL) {
DEBUG(SSSDBG_OP_FAILURE,
"Missing krb5_realm option, will use libkrb default\n");
diff --git a/src/providers/ldap/ldap_common.h b/src/providers/ldap/ldap_common.h
index c142af345..424eacb1d 100644
--- a/src/providers/ldap/ldap_common.h
+++ b/src/providers/ldap/ldap_common.h
@@ -138,6 +138,8 @@ int sdap_service_init(TALLOC_CTX *memctx, struct be_ctx *ctx,
const char *urls, const char *backup_urls,
struct sdap_service **_service);
+const char *sdap_gssapi_realm(struct dp_option *opts);
+
int sdap_gssapi_init(TALLOC_CTX *mem_ctx,
struct dp_option *opts,
struct be_ctx *bectx,
diff --git a/src/providers/ldap/sdap_async_connection.c b/src/providers/ldap/sdap_async_connection.c
index 431845d3f..34db75a4e 100644
--- a/src/providers/ldap/sdap_async_connection.c
+++ b/src/providers/ldap/sdap_async_connection.c
@@ -1708,12 +1708,6 @@ static void sdap_cli_kinit_step(struct tevent_req *req)
struct sdap_cli_connect_state *state = tevent_req_data(req,
struct sdap_cli_connect_state);
struct tevent_req *subreq;
- const char *realm;
-
- realm = dp_opt_get_string(state->opts->basic, SDAP_SASL_REALM);
- if (!realm) {
- realm = dp_opt_get_string(state->opts->basic, SDAP_KRB5_REALM);
- }
subreq = sdap_kinit_send(state, state->ev,
state->be,
@@ -1725,7 +1719,7 @@ static void sdap_cli_kinit_step(struct tevent_req *req)
SDAP_KRB5_KEYTAB),
dp_opt_get_string(state->opts->basic,
SDAP_SASL_AUTHID),
- realm,
+ sdap_gssapi_realm(state->opts->basic),
dp_opt_get_bool(state->opts->basic,
SDAP_KRB5_CANONICALIZE),
dp_opt_get_int(state->opts->basic,