Mercurial > crates > nonstick
annotate libpam-sys/src/aliases.rs @ 171:e27c5c667a5a
Create full new types for return code and flags, separate end to end.
This plumbs the ReturnCode and RawFlags types through the places where
we call into or are called from PAM.
Also adds Sun documentation to the project.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Fri, 25 Jul 2025 20:52:14 -0400 |
parents | 4b3a5095f68c |
children | 9e4ce1631bd3 |
rev | line source |
---|---|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
1 //! Convenience aliases for complex types in PAM. |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
2 |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
3 use super::{pam_conv, pam_handle, pam_message, pam_response, pam_set_data}; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
4 use std::ffi::{c_int, c_void}; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
5 |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
6 /// The type of [`pam_conv::conv`]. |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
7 /// |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
8 /// The exact format of `messages` varies between Linux-PAM and other |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
9 /// implementations. See `libpam_sys_helpers::PtrPtrVec` for details |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
10 /// (and a workaround). |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
11 /// |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
12 /// ```no_run |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
13 /// use libpam_sys::pam_conv; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
14 /// use libpam_sys::aliases::ConversationCallback; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
15 /// fn convo() -> ConversationCallback { |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
16 /// // ... |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
17 /// # unimplemented!() |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
18 /// } |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
19 /// let conv = pam_conv{conv: convo(), appdata_ptr: std::ptr::null_mut()}; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
20 /// ``` |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
21 pub type ConversationCallback = unsafe extern "C" fn( |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
22 num_msg: c_int, |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
23 msg: *const *const pam_message, |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
24 resp: *mut *mut pam_response, |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
25 appdata: *mut c_void, |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
26 ) -> c_int; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
27 |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
28 /// Alias for the callback to [`pam_set_data`]. |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
29 /// |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
30 /// ```no_run |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
31 /// # use std::ffi::CString; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
32 /// use libpam_sys::pam_set_data; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
33 /// use libpam_sys::aliases::CleanupCallback; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
34 /// # use libpam_sys::pam_handle; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
35 /// # let handle: *mut pam_handle = std::ptr::null_mut(); |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
36 /// # let mut my_data = 100; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
37 /// # let data_ptr = &mut my_data as *mut i32; |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
38 /// fn cleanup() -> CleanupCallback { |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
39 /// // ... |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
40 /// # unimplemented!() |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
41 /// } |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
42 /// let name = CString::new("name").unwrap(); |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
43 /// unsafe { |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
44 /// pam_set_data(handle, name.as_ptr().cast_mut(), data_ptr.cast(), cleanup()); |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
45 /// } |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
46 /// ``` |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
47 pub type CleanupCallback = |
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
diff
changeset
|
48 unsafe extern "C" fn(pamh: *mut pam_handle, data: *mut c_void, pam_end_status: c_int); |