summaryrefslogtreecommitdiff
path: root/libpam/pam_session.c
diff options
context:
space:
mode:
authorTomas Mraz <tm@t8m.info>2006-01-12 10:06:49 +0000
committerTomas Mraz <tm@t8m.info>2006-01-12 10:06:49 +0000
commit94483545da687d9dba81175575d07ba9f77a3eb5 (patch)
treef401c4f560af05cf6bf492eb8a36183b80b80d8d /libpam/pam_session.c
parent52fa7eff1bc0d56ad8ba8df0764d2c93383e17ef (diff)
Relevant BUGIDs:
Purpose of commit: new feature Commit summary: --------------- 2006-01-12 Steve Grubb <sgrubb@redhat.com> * configure.in: Add check for audit library. * libpam/Makefile.am (libpam_la_LDFLAGS): Add LIBAUDIT. (libpam_la_SOURCES): Add pam_audit.c. * libpam/pam_account.c (pam_acct_mgmt): Add _pam_auditlog() call. * libpam/pam_auth.c (pam_authenticate), (pam_setcred): Likewise. * libpam/pam_password.c (pam_chauthtok): Likewise. * libpam/pam_session.c (pam_open_session), (pam_close_session): Likewise. * libpam/pam_private.h: Add audit_state member to pam_handle, declare _pam_auditlog and _pam_audit_end. * libpam/pam_start.c (pam_start): Initialize audit_state. * libpam/pam_audit.c: New file with _pam_auditlog and _pam_audit_end implementation. * libpam/pam_end.c (pam_end): Add _pam_audit_end() call. * NEWS: Note about added auditing.
Diffstat (limited to 'libpam/pam_session.c')
-rw-r--r--libpam/pam_session.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/libpam/pam_session.c b/libpam/pam_session.c
index 98125ba6..a0f2d8d7 100644
--- a/libpam/pam_session.c
+++ b/libpam/pam_session.c
@@ -10,6 +10,8 @@
int pam_open_session(pam_handle_t *pamh, int flags)
{
+ int retval;
+
D(("called"));
IF_NO_PAMH("pam_open_session", pamh, PAM_SYSTEM_ERR);
@@ -18,12 +20,18 @@ int pam_open_session(pam_handle_t *pamh, int flags)
D(("called from module!?"));
return PAM_SYSTEM_ERR;
}
+ retval = _pam_dispatch(pamh, flags, PAM_OPEN_SESSION);
- return _pam_dispatch(pamh, flags, PAM_OPEN_SESSION);
+#if HAVE_LIBAUDIT
+ retval = _pam_auditlog(pamh, PAM_OPEN_SESSION, retval, flags);
+#endif
+ return retval;
}
int pam_close_session(pam_handle_t *pamh, int flags)
{
+ int retval;
+
D(("called"));
IF_NO_PAMH("pam_close_session", pamh, PAM_SYSTEM_ERR);
@@ -33,5 +41,12 @@ int pam_close_session(pam_handle_t *pamh, int flags)
return PAM_SYSTEM_ERR;
}
- return _pam_dispatch(pamh, flags, PAM_CLOSE_SESSION);
+ retval = _pam_dispatch(pamh, flags, PAM_CLOSE_SESSION);
+
+#if HAVE_LIBAUDIT
+ retval = _pam_auditlog(pamh, PAM_CLOSE_SESSION, retval, flags);
+#endif
+
+ return retval;
+
}