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); |
