# HG changeset patch # User Paul Fisher # Date 1751844182 14400 # Node ID 4d7333337569856664e9be6b796a47911012b3db # Parent 1bc52025156bc552bcc3fc10d9e07413a2d28eac Implement Transaction for LibPamTransaction. diff -r 1bc52025156b -r 4d7333337569 src/libpam/handle.rs --- 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 Drop for LibPamTransaction { /// Closes the PAM session on an owned PAM handle. @@ -205,6 +200,12 @@ result.as_ref().map(drop).map_err(|&e| e) } +impl Transaction for LibPamTransaction { + 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 PamShared for LibPamTransaction { delegate!(fn log(&self, level: Level, location: Location<'_>, entry: &str) -> ()); delegate!(fn environ(&self) -> impl EnvironMap);