summaryrefslogtreecommitdiff
path: root/src/providers
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2013-01-06 17:54:02 -0500
committerJakub Hrozek <jhrozek@redhat.com>2013-01-15 10:49:20 +0100
commit5d78919c955c945e78865f322726aac075c71203 (patch)
treed351a11ffe460d1e7a32a6b1d629a1f62eb792b1 /src/providers
parentc3ca06c011a34997cd6ec5d1e5927fee12bf2464 (diff)
downloadsssd-5d78919c955c945e78865f322726aac075c71203.tar.gz
sssd-5d78919c955c945e78865f322726aac075c71203.tar.bz2
sssd-5d78919c955c945e78865f322726aac075c71203.zip
Add domain argument to sysdb_get_user_attr()
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/krb5/krb5_access.c4
-rw-r--r--src/providers/krb5/krb5_auth.c14
-rw-r--r--src/providers/krb5/krb5_utils.c3
-rw-r--r--src/providers/krb5/krb5_utils.h1
-rw-r--r--src/providers/ldap/ldap_auth.c7
-rw-r--r--src/providers/ldap/sdap_access.c4
6 files changed, 18 insertions, 15 deletions
diff --git a/src/providers/krb5/krb5_access.c b/src/providers/krb5/krb5_access.c
index 970633eb..41e62d36 100644
--- a/src/providers/krb5/krb5_access.c
+++ b/src/providers/krb5/krb5_access.c
@@ -88,8 +88,8 @@ struct tevent_req *krb5_access_send(TALLOC_CTX *mem_ctx,
attrs[2] = SYSDB_GIDNUM;
attrs[3] = NULL;
- ret = sysdb_get_user_attr(state, be_ctx->sysdb, state->pd->user, attrs,
- &res);
+ ret = sysdb_get_user_attr(state, be_ctx->sysdb, be_ctx->domain,
+ state->pd->user, attrs, &res);
if (ret) {
DEBUG(5, ("sysdb search for upn of user [%s] failed.\n", pd->user));
goto done;
diff --git a/src/providers/krb5/krb5_auth.c b/src/providers/krb5/krb5_auth.c
index 398f06a8..f03cfcf4 100644
--- a/src/providers/krb5/krb5_auth.c
+++ b/src/providers/krb5/krb5_auth.c
@@ -429,6 +429,7 @@ struct krb5_auth_state {
struct be_ctx *be_ctx;
struct pam_data *pd;
struct sysdb_ctx *sysdb;
+ struct sss_domain_info *domain;
struct krb5_ctx *krb5_ctx;
struct krb5child_req *kr;
@@ -456,7 +457,6 @@ struct tevent_req *krb5_auth_send(TALLOC_CTX *mem_ctx,
struct tevent_req *req;
struct tevent_req *subreq;
int ret;
- struct sss_domain_info *dom;
req = tevent_req_create(mem_ctx, &state, struct krb5_auth_state);
if (req == NULL) {
@@ -472,13 +472,13 @@ struct tevent_req *krb5_auth_send(TALLOC_CTX *mem_ctx,
state->pam_status = PAM_SYSTEM_ERR;
state->dp_err = DP_ERR_FATAL;
- ret = get_domain_or_subdomain(state, be_ctx, pd->domain, &dom);
+ ret = get_domain_or_subdomain(state, be_ctx, pd->domain, &state->domain);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("get_domain_or_subdomain failed.\n"));
goto done;
}
- state->sysdb = dom->sysdb;
+ state->sysdb = state->domain->sysdb;
switch (pd->cmd) {
case SSS_PAM_AUTHENTICATE:
@@ -541,8 +541,8 @@ struct tevent_req *krb5_auth_send(TALLOC_CTX *mem_ctx,
}
kr = state->kr;
- ret = sysdb_get_user_attr(state, state->sysdb, state->pd->user, attrs,
- &res);
+ ret = sysdb_get_user_attr(state, state->sysdb, state->domain,
+ state->pd->user, attrs, &res);
if (ret) {
DEBUG(5, ("sysdb search for upn of user [%s] failed.\n", pd->user));
state->pam_status = PAM_SYSTEM_ERR;
@@ -901,8 +901,8 @@ static void krb5_auth_done(struct tevent_req *subreq)
goto done;
}
- ret = check_if_cached_upn_needs_update(state->sysdb, pd->user,
- res->correct_upn);
+ ret = check_if_cached_upn_needs_update(state->sysdb, state->domain,
+ pd->user, res->correct_upn);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE,
("check_if_cached_upn_needs_update failed.\n"));
diff --git a/src/providers/krb5/krb5_utils.c b/src/providers/krb5/krb5_utils.c
index f99b0f99..b770714b 100644
--- a/src/providers/krb5/krb5_utils.c
+++ b/src/providers/krb5/krb5_utils.c
@@ -58,6 +58,7 @@ errno_t find_or_guess_upn(TALLOC_CTX *mem_ctx, struct ldb_message *msg,
}
errno_t check_if_cached_upn_needs_update(struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
const char *user,
const char *upn)
{
@@ -80,7 +81,7 @@ errno_t check_if_cached_upn_needs_update(struct sysdb_ctx *sysdb,
return ENOMEM;
}
- ret = sysdb_get_user_attr(tmp_ctx, sysdb, user, attrs, &res);
+ ret = sysdb_get_user_attr(tmp_ctx, sysdb, domain, user, attrs, &res);
if (ret != EOK) {
DEBUG(SSSDBG_OP_FAILURE, ("sysdb_get_user_attr failed.\n"));
goto done;
diff --git a/src/providers/krb5/krb5_utils.h b/src/providers/krb5/krb5_utils.h
index 25d8c6cf..a123a795 100644
--- a/src/providers/krb5/krb5_utils.h
+++ b/src/providers/krb5/krb5_utils.h
@@ -38,6 +38,7 @@ errno_t find_or_guess_upn(TALLOC_CTX *mem_ctx, struct ldb_message *msg,
const char *user_dom, char **_upn);
errno_t check_if_cached_upn_needs_update(struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
const char *user,
const char *upn);
diff --git a/src/providers/ldap/ldap_auth.c b/src/providers/ldap/ldap_auth.c
index 3dcb0b2d..cffdf088 100644
--- a/src/providers/ldap/ldap_auth.c
+++ b/src/providers/ldap/ldap_auth.c
@@ -357,6 +357,7 @@ shadow_fail:
static int get_user_dn(TALLOC_CTX *memctx,
struct sysdb_ctx *sysdb,
+ struct sss_domain_info *domain,
struct sdap_options *opts,
const char *username,
char **user_dn,
@@ -394,7 +395,7 @@ static int get_user_dn(TALLOC_CTX *memctx,
attrs[9] = SYSDB_PWD_ATTRIBUTE;
attrs[10] = NULL;
- ret = sysdb_get_user_attr(tmpctx, sysdb, username, attrs, &res);
+ ret = sysdb_get_user_attr(tmpctx, sysdb, domain, username, attrs, &res);
if (ret) {
goto done;
}
@@ -619,8 +620,8 @@ static void auth_connect_done(struct tevent_req *subreq)
state->srv, PORT_WORKING);
}
- ret = get_user_dn(state, state->ctx->be->sysdb, state->ctx->opts,
- state->username, &state->dn,
+ ret = get_user_dn(state, state->ctx->be->sysdb, state->ctx->be->domain,
+ state->ctx->opts, state->username, &state->dn,
&state->pw_expire_type, &state->pw_expire_data);
if (ret) {
tevent_req_error(req, ret);
diff --git a/src/providers/ldap/sdap_access.c b/src/providers/ldap/sdap_access.c
index b198e043..a0d4443f 100644
--- a/src/providers/ldap/sdap_access.c
+++ b/src/providers/ldap/sdap_access.c
@@ -172,10 +172,10 @@ sdap_access_send(TALLOC_CTX *mem_ctx,
ret = ENOMEM;
goto done;
}
- ret = sysdb_get_user_attr(state, user_dom->sysdb,
+ ret = sysdb_get_user_attr(state, user_dom->sysdb, user_dom,
pd->user, attrs, &res);
} else {
- ret = sysdb_get_user_attr(state, be_req->sysdb,
+ ret = sysdb_get_user_attr(state, be_req->sysdb, be_req->domain,
pd->user, attrs, &res);
}
if (ret != EOK) {