Mercurial > crates > nonstick
comparison src/libpam/handle.rs @ 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 |
comparison
equal
deleted
inserted
replaced
146:1bc52025156b | 147:4d7333337569 |
---|---|
132 wrap!(fn authenticate { pam_authenticate }); | 132 wrap!(fn authenticate { pam_authenticate }); |
133 wrap!(fn account_management { pam_acct_mgmt }); | 133 wrap!(fn account_management { pam_acct_mgmt }); |
134 wrap!(fn change_authtok { pam_chauthtok }); | 134 wrap!(fn change_authtok { pam_chauthtok }); |
135 } | 135 } |
136 | 136 |
137 // TODO: pam_authenticate - app | 137 // TODO: pam_setcred - app |
138 // pam_setcred - app | |
139 // pam_acct_mgmt - app | |
140 // pam_chauthtok - app | |
141 // pam_open_session - app | 138 // pam_open_session - app |
142 // pam_close_session - app | 139 // pam_close_session - app |
143 // pam_putenv - shared | 140 // pam_set/get_data - module |
144 // pam_getenv - shared | |
145 // pam_getenvlist - shared | |
146 | 141 |
147 impl<C: Conversation> Drop for LibPamTransaction<C> { | 142 impl<C: Conversation> Drop for LibPamTransaction<C> { |
148 /// Closes the PAM session on an owned PAM handle. | 143 /// Closes the PAM session on an owned PAM handle. |
149 /// | 144 /// |
150 /// This internally calls `pam_end` with the appropriate error code. | 145 /// This internally calls `pam_end` with the appropriate error code. |
201 }; | 196 }; |
202 } | 197 } |
203 | 198 |
204 fn split<T>(result: &Result<T>) -> Result<()> { | 199 fn split<T>(result: &Result<T>) -> Result<()> { |
205 result.as_ref().map(drop).map_err(|&e| e) | 200 result.as_ref().map(drop).map_err(|&e| e) |
201 } | |
202 | |
203 impl<C: Conversation> Transaction for LibPamTransaction<C> { | |
204 delegate!(fn authenticate(&mut self, flags: Flags) -> Result<()>); | |
205 delegate!(fn account_management(&mut self, flags: Flags) -> Result<()>); | |
206 delegate!(fn change_authtok(&mut self, flags: Flags) -> Result<()>); | |
206 } | 207 } |
207 | 208 |
208 impl<C: Conversation> PamShared for LibPamTransaction<C> { | 209 impl<C: Conversation> PamShared for LibPamTransaction<C> { |
209 delegate!(fn log(&self, level: Level, location: Location<'_>, entry: &str) -> ()); | 210 delegate!(fn log(&self, level: Level, location: Location<'_>, entry: &str) -> ()); |
210 delegate!(fn environ(&self) -> impl EnvironMap); | 211 delegate!(fn environ(&self) -> impl EnvironMap); |