Mercurial > crates > nonstick
comparison libpam-sys/src/aliases.rs @ 148:4b3a5095f68c
Move libpam-sys helpers into their own library.
- Renames libpam-sys-helpers to libpam-sys-consts.
- Moves libpam-sys-helpers::helpers into libpam-sys-helpers,
which moves them completely out of libpam-sys's dependency chain.
- Moves the aliases from libpam-sys into libpam-sys::aliases.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Mon, 07 Jul 2025 12:11:43 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:4d7333337569 | 148:4b3a5095f68c |
---|---|
1 //! Convenience aliases for complex types in PAM. | |
2 | |
3 use super::{pam_conv, pam_handle, pam_message, pam_response, pam_set_data}; | |
4 use std::ffi::{c_int, c_void}; | |
5 | |
6 /// The type of [`pam_conv::conv`]. | |
7 /// | |
8 /// The exact format of `messages` varies between Linux-PAM and other | |
9 /// implementations. See `libpam_sys_helpers::PtrPtrVec` for details | |
10 /// (and a workaround). | |
11 /// | |
12 /// ```no_run | |
13 /// use libpam_sys::pam_conv; | |
14 /// use libpam_sys::aliases::ConversationCallback; | |
15 /// fn convo() -> ConversationCallback { | |
16 /// // ... | |
17 /// # unimplemented!() | |
18 /// } | |
19 /// let conv = pam_conv{conv: convo(), appdata_ptr: std::ptr::null_mut()}; | |
20 /// ``` | |
21 pub type ConversationCallback = unsafe extern "C" fn( | |
22 num_msg: c_int, | |
23 msg: *const *const pam_message, | |
24 resp: *mut *mut pam_response, | |
25 appdata: *mut c_void, | |
26 ) -> c_int; | |
27 | |
28 /// Alias for the callback to [`pam_set_data`]. | |
29 /// | |
30 /// ```no_run | |
31 /// # use std::ffi::CString; | |
32 /// use libpam_sys::pam_set_data; | |
33 /// use libpam_sys::aliases::CleanupCallback; | |
34 /// # use libpam_sys::pam_handle; | |
35 /// # let handle: *mut pam_handle = std::ptr::null_mut(); | |
36 /// # let mut my_data = 100; | |
37 /// # let data_ptr = &mut my_data as *mut i32; | |
38 /// fn cleanup() -> CleanupCallback { | |
39 /// // ... | |
40 /// # unimplemented!() | |
41 /// } | |
42 /// let name = CString::new("name").unwrap(); | |
43 /// unsafe { | |
44 /// pam_set_data(handle, name.as_ptr().cast_mut(), data_ptr.cast(), cleanup()); | |
45 /// } | |
46 /// ``` | |
47 pub type CleanupCallback = | |
48 unsafe extern "C" fn(pamh: *mut pam_handle, data: *mut c_void, pam_end_status: c_int); |