summaryrefslogtreecommitdiffstats
path: root/src/providers/ipa
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2013-01-11 12:25:53 -0500
committerJakub Hrozek <jhrozek@redhat.com>2013-01-21 22:17:34 +0100
commit8e5549e453558d4bebdec333a93e215d5d6ffaec (patch)
treea9004b07b800492ecb8bdaeb2019512c3fccb229 /src/providers/ipa
parentccc2af010bbbe6d8a7496fb717216135bc4c1993 (diff)
downloadsssd-8e5549e453558d4bebdec333a93e215d5d6ffaec.tar.gz
sssd-8e5549e453558d4bebdec333a93e215d5d6ffaec.tar.xz
sssd-8e5549e453558d4bebdec333a93e215d5d6ffaec.zip
Introduce be_req_terminate() helper
Call it everywhere instead of directly dereferencing be_req->fn This is in preparation of making be_req opaque.
Diffstat (limited to 'src/providers/ipa')
-rw-r--r--src/providers/ipa/ipa_access.c12
-rw-r--r--src/providers/ipa/ipa_auth.c17
-rw-r--r--src/providers/ipa/ipa_selinux.c8
-rw-r--r--src/providers/ipa/ipa_subdomains.c21
4 files changed, 24 insertions, 34 deletions
diff --git a/src/providers/ipa/ipa_access.c b/src/providers/ipa/ipa_access.c
index 927a9cbc2..1b6260297 100644
--- a/src/providers/ipa/ipa_access.c
+++ b/src/providers/ipa/ipa_access.c
@@ -46,9 +46,9 @@ static void ipa_access_reply(struct hbac_ctx *hbac_ctx, int pam_status)
talloc_zfree(hbac_ctx);
if (pam_status == PAM_SUCCESS || pam_status == PAM_PERM_DENIED) {
- be_req->fn(be_req, DP_ERR_OK, pam_status, NULL);
+ be_req_terminate(be_req, DP_ERR_OK, pam_status, NULL);
} else {
- be_req->fn(be_req, DP_ERR_FATAL, pam_status, NULL);
+ be_req_terminate(be_req, DP_ERR_FATAL, pam_status, NULL);
}
}
@@ -96,7 +96,7 @@ void ipa_access_handler(struct be_req *be_req)
ipa_access_ctx->sdap_access_ctx,
pd);
if (!req) {
- be_req->fn(be_req, DP_ERR_FATAL, PAM_SYSTEM_ERR, NULL);
+ be_req_terminate(be_req, DP_ERR_FATAL, PAM_SYSTEM_ERR, NULL);
return;
}
tevent_req_set_callback(req, ipa_hbac_check, be_req);
@@ -130,12 +130,12 @@ static void ipa_hbac_check(struct tevent_req *req)
* here.
*/
pd->pam_status = PAM_PERM_DENIED;
- be_req->fn(be_req, DP_ERR_OK, PAM_PERM_DENIED, NULL);
+ be_req_terminate(be_req, DP_ERR_OK, PAM_PERM_DENIED, NULL);
return;
default:
/* We got an unexpected error. Return it as-is */
pd->pam_status = PAM_SYSTEM_ERR;
- be_req->fn(be_req, DP_ERR_FATAL, pam_status, NULL);
+ be_req_terminate(be_req, DP_ERR_FATAL, pam_status, NULL);
return;
}
@@ -180,7 +180,7 @@ fail:
/* Return an proper error */
ipa_access_reply(hbac_ctx, pam_status);
} else {
- be_req->fn(be_req, DP_ERR_FATAL, pam_status, NULL);
+ be_req_terminate(be_req, DP_ERR_FATAL, pam_status, NULL);
}
}
diff --git a/src/providers/ipa/ipa_auth.c b/src/providers/ipa/ipa_auth.c
index 5097899f9..c0912e647 100644
--- a/src/providers/ipa/ipa_auth.c
+++ b/src/providers/ipa/ipa_auth.c
@@ -32,11 +32,6 @@
#include "providers/ipa/ipa_common.h"
#include "providers/ipa/ipa_config.h"
-static void ipa_auth_reply(struct be_req *be_req, int dp_err, int result)
-{
- be_req->fn(be_req, dp_err, result, NULL);
-}
-
struct get_password_migration_flag_state {
struct tevent_context *ev;
struct sdap_id_op *sdap_op;
@@ -240,7 +235,7 @@ void ipa_auth(struct be_req *be_req)
fail:
talloc_free(state);
pd->pam_status = PAM_SYSTEM_ERR;
- ipa_auth_reply(be_req, DP_ERR_FATAL, pd->pam_status);
+ be_req_terminate(be_req, DP_ERR_FATAL, pd->pam_status, NULL);
}
static void ipa_auth_handler_done(struct tevent_req *req)
@@ -283,7 +278,7 @@ static void ipa_auth_handler_done(struct tevent_req *req)
}
done:
- ipa_auth_reply(state->be_req, dp_err, state->pd->pam_status);
+ be_req_terminate(state->be_req, dp_err, state->pd->pam_status, NULL);
}
static void ipa_get_migration_flag_done(struct tevent_req *req)
@@ -322,7 +317,7 @@ static void ipa_get_migration_flag_done(struct tevent_req *req)
DEBUG(SSSDBG_CONF_SETTINGS, ("Password migration is not enabled.\n"));
dp_err = DP_ERR_OK;
done:
- ipa_auth_reply(state->be_req, dp_err, state->pd->pam_status);
+ be_req_terminate(state->be_req, dp_err, state->pd->pam_status, NULL);
}
static void ipa_migration_flag_connect_done(struct tevent_req *req)
@@ -385,7 +380,7 @@ static void ipa_migration_flag_connect_done(struct tevent_req *req)
return;
done:
- ipa_auth_reply(state->be_req, dp_err, state->pd->pam_status);
+ be_req_terminate(state->be_req, dp_err, state->pd->pam_status, NULL);
}
static void ipa_auth_ldap_done(struct tevent_req *req)
@@ -429,7 +424,7 @@ static void ipa_auth_ldap_done(struct tevent_req *req)
return;
done:
- ipa_auth_reply(state->be_req, dp_err, state->pd->pam_status);
+ be_req_terminate(state->be_req, dp_err, state->pd->pam_status, NULL);
}
static void ipa_auth_handler_retry_done(struct tevent_req *req)
@@ -452,5 +447,5 @@ static void ipa_auth_handler_retry_done(struct tevent_req *req)
state->pd->pam_status = pam_status;
done:
- ipa_auth_reply(state->be_req, dp_err, state->pd->pam_status);
+ be_req_terminate(state->be_req, dp_err, state->pd->pam_status, NULL);
}
diff --git a/src/providers/ipa/ipa_selinux.c b/src/providers/ipa/ipa_selinux.c
index e130c4c87..8ed17a2f6 100644
--- a/src/providers/ipa/ipa_selinux.c
+++ b/src/providers/ipa/ipa_selinux.c
@@ -120,7 +120,7 @@ void ipa_selinux_handler(struct be_req *be_req)
return;
fail:
- be_req->fn(be_req, DP_ERR_FATAL, PAM_SYSTEM_ERR, NULL);
+ be_req_terminate(be_req, DP_ERR_FATAL, PAM_SYSTEM_ERR, NULL);
}
static struct ipa_selinux_op_ctx *
@@ -248,7 +248,7 @@ static void ipa_selinux_handler_done(struct tevent_req *req)
in_transaction = false;
pd->pam_status = PAM_SUCCESS;
- breq->fn(breq, DP_ERR_OK, EOK, "Success");
+ be_req_terminate(breq, DP_ERR_OK, EOK, "Success");
return;
fail:
@@ -259,9 +259,9 @@ fail:
}
}
if (ret == EAGAIN) {
- breq->fn(breq, DP_ERR_OFFLINE, EAGAIN, "Offline");
+ be_req_terminate(breq, DP_ERR_OFFLINE, EAGAIN, "Offline");
} else {
- breq->fn(breq, DP_ERR_FATAL, ret, NULL);
+ be_req_terminate(breq, DP_ERR_FATAL, ret, NULL);
}
}
diff --git a/src/providers/ipa/ipa_subdomains.c b/src/providers/ipa/ipa_subdomains.c
index 63a82c08e..70806bb44 100644
--- a/src/providers/ipa/ipa_subdomains.c
+++ b/src/providers/ipa/ipa_subdomains.c
@@ -107,11 +107,6 @@ const char *get_flat_name_from_subdomain_name(struct be_ctx *be_ctx,
return NULL;
}
-static void ipa_subdomains_reply(struct be_req *be_req, int dp_err, int result)
-{
- be_req->fn(be_req, dp_err, result, NULL);
-}
-
static errno_t ipa_ranges_parse_results(TALLOC_CTX *mem_ctx,
size_t count,
struct sysdb_attrs **reply,
@@ -589,7 +584,7 @@ done:
if (ret == EOK) {
dp_error = DP_ERR_OK;
}
- ipa_subdomains_reply(be_req, dp_error, ret);
+ be_req_terminate(be_req, dp_error, ret, NULL);
}
static void ipa_subdomains_get_conn_done(struct tevent_req *req)
@@ -626,7 +621,7 @@ static void ipa_subdomains_get_conn_done(struct tevent_req *req)
return;
fail:
- ipa_subdomains_reply(ctx->be_req, dp_error, ret);
+ be_req_terminate(ctx->be_req, dp_error, ret, NULL);
}
static errno_t
@@ -752,7 +747,7 @@ static void ipa_subdomains_handler_done(struct tevent_req *req)
ret = EINVAL;
done:
- ipa_subdomains_reply(ctx->be_req, DP_ERR_FATAL, ret);
+ be_req_terminate(ctx->be_req, DP_ERR_FATAL, ret, NULL);
}
@@ -819,7 +814,7 @@ done:
if (ret == EOK) {
dp_error = DP_ERR_OK;
}
- ipa_subdomains_reply(ctx->be_req, dp_error, ret);
+ be_req_terminate(ctx->be_req, dp_error, ret, NULL);
}
static void ipa_subdomains_handler_master_done(struct tevent_req *req)
@@ -899,7 +894,7 @@ done:
if (ret == EOK) {
dp_error = DP_ERR_OK;
}
- ipa_subdomains_reply(ctx->be_req, dp_error, ret);
+ be_req_terminate(ctx->be_req, dp_error, ret, NULL);
}
static void ipa_subdom_online_cb(void *pvt);
@@ -1004,7 +999,7 @@ void ipa_subdomains_handler(struct be_req *be_req)
ctx = talloc_get_type(be_req->be_ctx->bet_info[BET_SUBDOMAINS].pvt_bet_data,
struct ipa_subdomains_ctx);
if (!ctx) {
- ipa_subdomains_reply(be_req, DP_ERR_FATAL, EINVAL);
+ be_req_terminate(be_req, DP_ERR_FATAL, EINVAL, NULL);
return;
}
@@ -1012,12 +1007,12 @@ void ipa_subdomains_handler(struct be_req *be_req)
if (ctx->disabled_until > now) {
DEBUG(SSSDBG_TRACE_ALL, ("Subdomain provider disabled.\n"));
- ipa_subdomains_reply(be_req, DP_ERR_OK, EOK);
+ be_req_terminate(be_req, DP_ERR_OK, EOK, NULL);
return;
}
if (ctx->last_refreshed > now - IPA_SUBDOMAIN_REFRESH_LIMIT) {
- ipa_subdomains_reply(be_req, DP_ERR_OK, EOK);
+ be_req_terminate(be_req, DP_ERR_OK, EOK, NULL);
return;
}