Mercurial > crates > nonstick
comparison src/libpam/handle.rs @ 77:351bdc13005e
Update the libpam module to work with the new structure.
| author | Paul Fisher <paul@pfish.zone> |
|---|---|
| date | Sun, 08 Jun 2025 01:03:46 -0400 |
| parents | c30811b4afae |
| children | 002adfb98c5c |
comparison
equal
deleted
inserted
replaced
| 76:e58d24849e82 | 77:351bdc13005e |
|---|---|
| 2 use crate::constants::{ErrorCode, InvalidEnum, Result}; | 2 use crate::constants::{ErrorCode, InvalidEnum, Result}; |
| 3 use crate::conv::Message; | 3 use crate::conv::Message; |
| 4 use crate::handle::{PamApplicationOnly, PamModuleOnly, PamShared}; | 4 use crate::handle::{PamApplicationOnly, PamModuleOnly, PamShared}; |
| 5 use crate::libpam::memory; | 5 use crate::libpam::memory; |
| 6 use crate::libpam::memory::Immovable; | 6 use crate::libpam::memory::Immovable; |
| 7 use crate::{Conversation, Response}; | 7 use crate::Conversation; |
| 8 use num_derive::FromPrimitive; | 8 use num_derive::FromPrimitive; |
| 9 use num_traits::FromPrimitive; | 9 use num_traits::FromPrimitive; |
| 10 use std::ffi::{c_char, c_int}; | 10 use std::ffi::{c_char, c_int}; |
| 11 use std::ops::{Deref, DerefMut}; | 11 use std::ops::{Deref, DerefMut}; |
| 12 use std::result::Result as StdResult; | 12 use std::result::Result as StdResult; |
| 142 cstr_item!(set = set_authtok_item, item = ItemType::AuthTok); | 142 cstr_item!(set = set_authtok_item, item = ItemType::AuthTok); |
| 143 cstr_item!(set = set_old_authtok_item, item = ItemType::OldAuthTok); | 143 cstr_item!(set = set_old_authtok_item, item = ItemType::OldAuthTok); |
| 144 } | 144 } |
| 145 | 145 |
| 146 impl Conversation for LibPamHandle { | 146 impl Conversation for LibPamHandle { |
| 147 fn communicate(&mut self, messages: &[Message]) -> Result<Vec<Response>> { | 147 fn communicate(&mut self, messages: &[Message]) { |
| 148 self.conversation_item()?.communicate(messages) | 148 match self.conversation_item() { |
| 149 Ok(conv) => conv.communicate(messages), | |
| 150 Err(e) => { | |
| 151 for msg in messages { | |
| 152 msg.set_error(e) | |
| 153 } | |
| 154 } | |
| 155 } | |
| 149 } | 156 } |
| 150 } | 157 } |
| 151 | 158 |
| 152 impl PamModuleOnly for LibPamHandle { | 159 impl PamModuleOnly for LibPamHandle { |
| 153 fn get_authtok(&mut self, prompt: Option<&str>) -> Result<&str> { | 160 fn get_authtok(&mut self, prompt: Option<&str>) -> Result<&str> { |
