summaryrefslogtreecommitdiffstats
path: root/server/responder/pam/pamsrv_dp.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2009-03-18 17:07:17 +0100
committerSimo Sorce <ssorce@redhat.com>2009-03-19 09:59:15 -0400
commit87323686e57db9a767ff5c2f0e1c56e9944d9f9a (patch)
tree82642e557c301054f0d1fd623763717c2a49485d /server/responder/pam/pamsrv_dp.c
parente2e17b7a75e65b2db2eb484f24ecde4f7aa5566b (diff)
downloadsssd-87323686e57db9a767ff5c2f0e1c56e9944d9f9a.tar.gz
sssd-87323686e57db9a767ff5c2f0e1c56e9944d9f9a.tar.xz
sssd-87323686e57db9a767ff5c2f0e1c56e9944d9f9a.zip
use pam_data as main data structure for dbus communication
Diffstat (limited to 'server/responder/pam/pamsrv_dp.c')
-rw-r--r--server/responder/pam/pamsrv_dp.c32
1 files changed, 5 insertions, 27 deletions
diff --git a/server/responder/pam/pamsrv_dp.c b/server/responder/pam/pamsrv_dp.c
index a679acd35..2d5d9799d 100644
--- a/server/responder/pam/pamsrv_dp.c
+++ b/server/responder/pam/pamsrv_dp.c
@@ -44,8 +44,6 @@ static void pam_process_dp_reply(DBusPendingCall *pending, void *ptr)
DBusMessage* msg;
int ret;
int type;
- dbus_uint32_t pam_status;
- char *domain;
struct pam_reply_ctx *rctx;
rctx = talloc_get_type(ptr, struct pam_reply_ctx);
@@ -64,27 +62,21 @@ static void pam_process_dp_reply(DBusPendingCall *pending, void *ptr)
type = dbus_message_get_type(msg);
switch (type) {
case DBUS_MESSAGE_TYPE_METHOD_RETURN:
- ret = dbus_message_get_args(msg, &dbus_error,
- DBUS_TYPE_UINT32, &pam_status,
- DBUS_TYPE_STRING, &domain,
- DBUS_TYPE_INVALID);
+ ret = dp_unpack_pam_response(msg, rctx->pd, &dbus_error);
if (!ret) {
DEBUG(0, ("Failed to parse reply.\n"));
rctx->pd->pam_status = PAM_SYSTEM_ERR;
- domain = NULL;
goto done;
}
- DEBUG(4, ("received: [%d][%s]\n", pam_status, domain));
- rctx->pd->pam_status = pam_status;
- rctx->pd->domain = talloc_strdup(rctx->cctx, domain);
+ DEBUG(4, ("received: [%d][%s]\n", rctx->pd->pam_status, rctx->pd->domain));
break;
case DBUS_MESSAGE_TYPE_ERROR:
DEBUG(0, ("Reply error.\n"));
- pam_status = PAM_SYSTEM_ERR;
+ rctx->pd->pam_status = PAM_SYSTEM_ERR;
break;
default:
DEBUG(0, ("Default... what now?.\n"));
- pam_status = PAM_SYSTEM_ERR;
+ rctx->pd->pam_status = PAM_SYSTEM_ERR;
}
@@ -141,21 +133,7 @@ int pam_dp_send_req(struct cli_ctx *cctx,
DEBUG(4, ("Sending request with the following data:\n"));
DEBUG_PAM_DATA(4, pd);
- ret = dbus_message_append_args(msg,
- DBUS_TYPE_INT32, &(pd->cmd),
- DBUS_TYPE_STRING, &(pd->domain),
- DBUS_TYPE_STRING, &(pd->user),
- DBUS_TYPE_STRING, &(pd->service),
- DBUS_TYPE_STRING, &(pd->tty),
- DBUS_TYPE_STRING, &(pd->ruser),
- DBUS_TYPE_STRING, &(pd->rhost),
- DBUS_TYPE_INT32, &(pd->authtok_type),
- DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
- &(pd->authtok), pd->authtok_size,
- DBUS_TYPE_INT32, &(pd->newauthtok_type),
- DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
- &(pd->newauthtok), pd->newauthtok_size,
- DBUS_TYPE_INVALID);
+ ret = dp_pack_pam_request(msg, pd);
if (!ret) {
DEBUG(1,("Failed to build message\n"));
return EIO;