changeset 147:4d7333337569

Implement Transaction for LibPamTransaction.
author Paul Fisher <paul@pfish.zone>
date Sun, 06 Jul 2025 19:23:02 -0400
parents 1bc52025156b
children 4b3a5095f68c
files src/libpam/handle.rs
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/libpam/handle.rs	Sun Jul 06 19:10:26 2025 -0400
+++ b/src/libpam/handle.rs	Sun Jul 06 19:23:02 2025 -0400
@@ -134,15 +134,10 @@
     wrap!(fn change_authtok { pam_chauthtok });
 }
 
-// TODO: pam_authenticate - app
-//       pam_setcred - app
-//       pam_acct_mgmt - app
-//       pam_chauthtok - app
+// TODO: pam_setcred - app
 //       pam_open_session - app
 //       pam_close_session - app
-//       pam_putenv - shared
-//       pam_getenv - shared
-//       pam_getenvlist - shared
+//       pam_set/get_data - module
 
 impl<C: Conversation> Drop for LibPamTransaction<C> {
     /// Closes the PAM session on an owned PAM handle.
@@ -205,6 +200,12 @@
     result.as_ref().map(drop).map_err(|&e| e)
 }
 
+impl<C: Conversation> Transaction for LibPamTransaction<C> {
+    delegate!(fn authenticate(&mut self, flags: Flags) -> Result<()>);
+    delegate!(fn account_management(&mut self, flags: Flags) -> Result<()>);
+    delegate!(fn change_authtok(&mut self, flags: Flags) -> Result<()>);
+}
+
 impl<C: Conversation> PamShared for LibPamTransaction<C> {
     delegate!(fn log(&self, level: Level, location: Location<'_>, entry: &str) -> ());
     delegate!(fn environ(&self) -> impl EnvironMap);