From cbaba2f47da96c4191971bce86f03afb3f88864a Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 11 Jan 2013 18:13:36 -0500 Subject: Add be_req_get_data() helper funciton. In preparation for making struct be_req opaque. --- src/providers/ad/ad_access.c | 7 ++++--- src/providers/data_provider_be.c | 15 +++++++++++---- src/providers/dp_backend.h | 3 +++ src/providers/ipa/ipa_access.c | 6 +++--- src/providers/ipa/ipa_auth.c | 3 ++- src/providers/ipa/ipa_hostid.c | 2 +- src/providers/ipa/ipa_id.c | 4 ++-- src/providers/ipa/ipa_selinux.c | 5 +++-- src/providers/krb5/krb5_auth.c | 8 ++++---- src/providers/ldap/ldap_access.c | 4 ++-- src/providers/ldap/ldap_auth.c | 4 ++-- src/providers/ldap/ldap_id.c | 2 +- src/providers/ldap/sdap_autofs.c | 2 +- src/providers/ldap/sdap_sudo.c | 4 ++-- src/providers/proxy/proxy_auth.c | 4 ++-- src/providers/proxy/proxy_id.c | 2 +- src/providers/simple/simple_access.c | 2 +- 17 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/providers/ad/ad_access.c b/src/providers/ad/ad_access.c index 3c5c66bd9..9508ffb27 100644 --- a/src/providers/ad/ad_access.c +++ b/src/providers/ad/ad_access.c @@ -38,8 +38,8 @@ ad_access_handler(struct be_req *breq) struct ad_access_ctx *access_ctx = talloc_get_type(be_ctx->bet_info[BET_ACCESS].pvt_bet_data, struct ad_access_ctx); - - struct pam_data *pd = talloc_get_type(breq->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(breq), struct pam_data); struct sss_domain_info *domain; /* Handle subdomains */ @@ -72,7 +72,8 @@ ad_access_done(struct tevent_req *req) int pam_status; struct be_req *breq = tevent_req_callback_data(req, struct be_req); - struct pam_data *pd = talloc_get_type(breq->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(breq), struct pam_data); ret = sdap_access_recv(req, &pam_status); talloc_zfree(req); diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c index a70dd6adc..f52d3e40a 100644 --- a/src/providers/data_provider_be.c +++ b/src/providers/data_provider_be.c @@ -141,6 +141,11 @@ struct be_ctx *be_req_get_be_ctx(struct be_req *be_req) return be_req->be_ctx; } +void *be_req_get_data(struct be_req *be_req) +{ + return be_req->req_data; +} + void be_req_terminate(struct be_req *be_req, int dp_err_type, int errnum, const char *errstr) { @@ -684,7 +689,7 @@ done: static errno_t be_initgroups_prereq(struct be_req *be_req) { - struct be_acct_req *ar = talloc_get_type(be_req->req_data, + struct be_acct_req *ar = talloc_get_type(be_req_get_data(be_req), struct be_acct_req); struct be_initgr_prereq *pr; struct ldb_result *res; @@ -983,7 +988,7 @@ static void be_pam_handler_callback(struct be_req *req, dp_err_type, errnum, errstr?errstr:"", dp_pam_err_to_string(req, dp_err_type, errnum))); - pd = talloc_get_type(req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(req), struct pam_data); if (pd->cmd == SSS_PAM_ACCT_MGMT && pd->pam_status == PAM_SUCCESS && @@ -2066,7 +2071,8 @@ static int be_srv_init(struct be_ctx *ctx) static void be_target_access_permit(struct be_req *be_req) { - struct pam_data *pd = talloc_get_type(be_req->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(be_req), struct pam_data); DEBUG(9, ("be_target_access_permit called, returning PAM_SUCCESS.\n")); pd->pam_status = PAM_SUCCESS; @@ -2081,7 +2087,8 @@ static struct bet_ops be_target_access_permit_ops = { static void be_target_access_deny(struct be_req *be_req) { - struct pam_data *pd = talloc_get_type(be_req->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(be_req), struct pam_data); DEBUG(9, ("be_target_access_deny called, returning PAM_PERM_DENIED.\n")); pd->pam_status = PAM_PERM_DENIED; diff --git a/src/providers/dp_backend.h b/src/providers/dp_backend.h index f51c44ea7..dcb531bda 100644 --- a/src/providers/dp_backend.h +++ b/src/providers/dp_backend.h @@ -261,6 +261,9 @@ struct be_req *be_req_create(TALLOC_CTX *mem_ctx, struct be_client *becli, struct be_ctx *be_ctx, be_async_callback_t fn, void *pvt_fn_data); struct be_ctx *be_req_get_be_ctx(struct be_req *be_req); + +void *be_req_get_data(struct be_req *be_req); + void be_req_terminate(struct be_req *be_req, int dp_err_type, int errnum, const char *errstr); diff --git a/src/providers/ipa/ipa_access.c b/src/providers/ipa/ipa_access.c index 7a3dbaaf2..430b2f7a9 100644 --- a/src/providers/ipa/ipa_access.c +++ b/src/providers/ipa/ipa_access.c @@ -39,7 +39,7 @@ static void ipa_access_reply(struct hbac_ctx *hbac_ctx, int pam_status) { struct be_req *be_req = hbac_ctx->be_req; struct pam_data *pd; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); pd->pam_status = pam_status; /* destroy HBAC context now to release all used resources and LDAP connection */ @@ -80,7 +80,7 @@ void ipa_access_handler(struct be_req *be_req) struct tevent_req *req; struct be_ctx *be_ctx = be_req_get_be_ctx(be_req); - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); ipa_access_ctx = talloc_get_type(be_ctx->bet_info[BET_ACCESS].pvt_bet_data, struct ipa_access_ctx); @@ -112,7 +112,7 @@ static void ipa_hbac_check(struct tevent_req *req) be_req = tevent_req_callback_data(req, struct be_req); be_ctx = be_req_get_be_ctx(be_req); - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); ret = sdap_access_recv(req, &pam_status); talloc_zfree(req); diff --git a/src/providers/ipa/ipa_auth.c b/src/providers/ipa/ipa_auth.c index 5c5b34ae3..2a033db94 100644 --- a/src/providers/ipa/ipa_auth.c +++ b/src/providers/ipa/ipa_auth.c @@ -189,7 +189,8 @@ void ipa_auth(struct be_req *be_req) { struct tevent_req *req; struct ipa_auth_state *state; - struct pam_data *pd = talloc_get_type(be_req->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(be_req), struct pam_data); struct be_ctx *be_ctx = be_req_get_be_ctx(be_req); state = talloc_zero(be_req, struct ipa_auth_state); diff --git a/src/providers/ipa/ipa_hostid.c b/src/providers/ipa/ipa_hostid.c index 448914ba8..cb37e9a4d 100644 --- a/src/providers/ipa/ipa_hostid.c +++ b/src/providers/ipa/ipa_hostid.c @@ -75,7 +75,7 @@ ipa_host_info_handler(struct be_req *breq) goto done; } - hr = talloc_get_type(breq->req_data, struct be_host_req); + hr = talloc_get_type(be_req_get_data(breq), struct be_host_req); if (hr->filter_type != BE_FILTER_NAME) { ret = EINVAL; diff --git a/src/providers/ipa/ipa_id.c b/src/providers/ipa/ipa_id.c index 0344a1842..5f94eb2c1 100644 --- a/src/providers/ipa/ipa_id.c +++ b/src/providers/ipa/ipa_id.c @@ -80,7 +80,7 @@ void ipa_account_info_handler(struct be_req *breq) return sdap_handler_done(breq, DP_ERR_OFFLINE, EAGAIN, "Offline"); } - ar = talloc_get_type(breq->req_data, struct be_acct_req); + ar = talloc_get_type(be_req_get_data(breq), struct be_acct_req); if (strcasecmp(ar->domain, be_ctx->domain->name) != 0) { /* if domain names do not match, this is a subdomain case */ @@ -110,7 +110,7 @@ void ipa_account_info_handler(struct be_req *breq) static void ipa_account_info_done(struct tevent_req *req) { struct be_req *breq = tevent_req_callback_data(req, struct be_req); - struct be_acct_req *ar = talloc_get_type(breq->req_data, + struct be_acct_req *ar = talloc_get_type(be_req_get_data(breq), struct be_acct_req); const char *error_text; int ret, dp_error; diff --git a/src/providers/ipa/ipa_selinux.c b/src/providers/ipa/ipa_selinux.c index 2203069c9..29e988704 100644 --- a/src/providers/ipa/ipa_selinux.c +++ b/src/providers/ipa/ipa_selinux.c @@ -89,7 +89,7 @@ void ipa_selinux_handler(struct be_req *be_req) struct pam_data *pd; const char *hostname; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); selinux_ctx = talloc_get_type(be_ctx->bet_info[BET_SELINUX].pvt_bet_data, struct ipa_selinux_ctx); @@ -194,7 +194,8 @@ static void ipa_selinux_handler_done(struct tevent_req *req) struct sysdb_attrs **maps = NULL; bool in_transaction = false; char *default_user = NULL; - struct pam_data *pd = talloc_get_type(breq->req_data, struct pam_data); + struct pam_data *pd = + talloc_get_type(be_req_get_data(breq), struct pam_data); char *map_order = NULL; size_t hbac_count = 0; struct sysdb_attrs **hbac_rules = 0; diff --git a/src/providers/krb5/krb5_auth.c b/src/providers/krb5/krb5_auth.c index fd521c30d..0b56f3a5a 100644 --- a/src/providers/krb5/krb5_auth.c +++ b/src/providers/krb5/krb5_auth.c @@ -216,7 +216,7 @@ static struct krb5_ctx *get_krb5_ctx(struct be_req *be_req) struct be_ctx *be_ctx = be_req_get_be_ctx(be_req); struct pam_data *pd; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); switch (pd->cmd) { case SSS_PAM_AUTHENTICATE: @@ -1134,7 +1134,7 @@ void krb5_pam_handler(struct be_req *be_req) int dp_err = DP_ERR_FATAL; int ret; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); pd->pam_status = PAM_SYSTEM_ERR; krb5_ctx = get_krb5_ctx(be_req); @@ -1207,7 +1207,7 @@ void krb5_pam_handler_auth_done(struct tevent_req *req) struct pam_data *pd; struct krb5_ctx *krb5_ctx; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); ret = krb5_auth_recv(req, &pam_status, &dp_err); talloc_zfree(req); @@ -1236,7 +1236,7 @@ static void krb5_pam_handler_access_done(struct tevent_req *req) struct pam_data *pd; int dp_err = DP_ERR_OK; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); pd->pam_status = PAM_SYSTEM_ERR; ret = krb5_access_recv(req, &access_allowed); diff --git a/src/providers/ldap/ldap_access.c b/src/providers/ldap/ldap_access.c index 5ab17abd6..5a8e12f05 100644 --- a/src/providers/ldap/ldap_access.c +++ b/src/providers/ldap/ldap_access.c @@ -31,7 +31,7 @@ static void sdap_access_reply(struct be_req *be_req, int pam_status) { struct pam_data *pd; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); pd->pam_status = pam_status; if (pam_status == PAM_SUCCESS || pam_status == PAM_PERM_DENIED) { @@ -49,7 +49,7 @@ void sdap_pam_access_handler(struct be_req *breq) struct tevent_req *req; struct sdap_access_ctx *access_ctx; - pd = talloc_get_type(breq->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(breq), struct pam_data); access_ctx = talloc_get_type(be_ctx->bet_info[BET_ACCESS].pvt_bet_data, diff --git a/src/providers/ldap/ldap_auth.c b/src/providers/ldap/ldap_auth.c index 76c23e15e..bc91e2f79 100644 --- a/src/providers/ldap/ldap_auth.c +++ b/src/providers/ldap/ldap_auth.c @@ -741,7 +741,7 @@ void sdap_pam_chpass_handler(struct be_req *breq) ctx = talloc_get_type(be_ctx->bet_info[BET_CHPASS].pvt_bet_data, struct sdap_auth_ctx); - pd = talloc_get_type(breq->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(breq), struct pam_data); if (be_is_offline(ctx->be)) { DEBUG(4, ("Backend is marked offline, retry later!\n")); @@ -1015,7 +1015,7 @@ void sdap_pam_auth_handler(struct be_req *breq) ctx = talloc_get_type(be_ctx->bet_info[BET_AUTH].pvt_bet_data, struct sdap_auth_ctx); - pd = talloc_get_type(breq->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(breq), struct pam_data); if (be_is_offline(ctx->be)) { DEBUG(4, ("Backend is marked offline, retry later!\n")); diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c index efa1769ba..d24b8aa69 100644 --- a/src/providers/ldap/ldap_id.c +++ b/src/providers/ldap/ldap_id.c @@ -937,7 +937,7 @@ void sdap_handle_account_info(struct be_req *breq, struct sdap_id_ctx *ctx) return sdap_handler_done(breq, DP_ERR_OFFLINE, EAGAIN, "Offline"); } - ar = talloc_get_type(breq->req_data, struct be_acct_req); + ar = talloc_get_type(be_req_get_data(breq), struct be_acct_req); switch (ar->entry_type & BE_REQ_TYPE_MASK) { case BE_REQ_USER: /* user */ diff --git a/src/providers/ldap/sdap_autofs.c b/src/providers/ldap/sdap_autofs.c index 2c8a238ab..0bb211aa3 100644 --- a/src/providers/ldap/sdap_autofs.c +++ b/src/providers/ldap/sdap_autofs.c @@ -93,7 +93,7 @@ void sdap_autofs_handler(struct be_req *be_req) return sdap_handler_done(be_req, DP_ERR_OFFLINE, EAGAIN, "Offline"); } - autofs_req = talloc_get_type(be_req->req_data, struct be_autofs_req); + autofs_req = talloc_get_type(be_req_get_data(be_req), struct be_autofs_req); DEBUG(SSSDBG_FUNC_DATA, ("Requested refresh for: %s\n", autofs_req->mapname ? autofs_req->mapname : "\n")); diff --git a/src/providers/ldap/sdap_sudo.c b/src/providers/ldap/sdap_sudo.c index e42560a27..3472da67c 100644 --- a/src/providers/ldap/sdap_sudo.c +++ b/src/providers/ldap/sdap_sudo.c @@ -461,7 +461,7 @@ static void sdap_sudo_reply(struct tevent_req *req) int ret; be_req = tevent_req_callback_data(req, struct be_req); - sudo_req = talloc_get_type(be_req->req_data, struct be_sudo_req); + sudo_req = talloc_get_type(be_req_get_data(be_req), struct be_sudo_req); switch (sudo_req->type) { case BE_REQ_SUDO_FULL: @@ -498,7 +498,7 @@ void sdap_sudo_handler(struct be_req *be_req) struct sdap_sudo_ctx); id_ctx = sudo_ctx->id_ctx; - sudo_req = talloc_get_type(be_req->req_data, struct be_sudo_req); + sudo_req = talloc_get_type(be_req_get_data(be_req), struct be_sudo_req); switch (sudo_req->type) { case BE_REQ_SUDO_FULL: diff --git a/src/providers/proxy/proxy_auth.c b/src/providers/proxy/proxy_auth.c index 2eacfa4e9..3e6a514ab 100644 --- a/src/providers/proxy/proxy_auth.c +++ b/src/providers/proxy/proxy_auth.c @@ -41,7 +41,7 @@ void proxy_pam_handler(struct be_req *req) struct tevent_req *child_req = NULL; struct proxy_client_ctx *client_ctx; - pd = talloc_get_type(req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(req), struct pam_data); switch (pd->cmd) { case SSS_PAM_AUTHENTICATE: @@ -138,7 +138,7 @@ static struct tevent_req *proxy_child_send(TALLOC_CTX *mem_ctx, state->be_req = be_req; state->auth_ctx = auth_ctx; - state->pd = talloc_get_type(be_req->req_data, struct pam_data); + state->pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); /* Find an available key */ key.type = HASH_KEY_ULONG; diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c index 802c13641..7d7fab205 100644 --- a/src/providers/proxy/proxy_id.c +++ b/src/providers/proxy/proxy_id.c @@ -1349,7 +1349,7 @@ void proxy_get_account_info(struct be_req *breq) int ret; char *endptr; - ar = talloc_get_type(breq->req_data, struct be_acct_req); + ar = talloc_get_type(be_req_get_data(breq), struct be_acct_req); ctx = talloc_get_type(be_ctx->bet_info[BET_ID].pvt_bet_data, struct proxy_id_ctx); sysdb = be_ctx->domain->sysdb; diff --git a/src/providers/simple/simple_access.c b/src/providers/simple/simple_access.c index 8ec1883f4..3dcea8691 100644 --- a/src/providers/simple/simple_access.c +++ b/src/providers/simple/simple_access.c @@ -40,7 +40,7 @@ void simple_access_handler(struct be_req *be_req) struct pam_data *pd; struct simple_ctx *ctx; - pd = talloc_get_type(be_req->req_data, struct pam_data); + pd = talloc_get_type(be_req_get_data(be_req), struct pam_data); pd->pam_status = PAM_SYSTEM_ERR; -- cgit