Mercurial > crates > nonstick
annotate libpam-sys/src/lib.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 | 999bf07efbcb |
| children | 3036f2e6a022 |
| rev | line source |
|---|---|
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
1 //! `libpam-sys` provides low-level access to LibPAM. |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
2 //! |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
3 //! Everything in here is directly as exported from the LibPAM library or |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
4 //! its header files, with two exceptions: |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
5 //! |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
6 //! - The [`pam_impl`] submodule (and the associated [`pam_impl_name!`] macro), |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
7 //! which can be used to detect the current PAM implementation. |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
8 //! - The [`aliases`] submodule, which contains convenient aliases |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
9 //! for callback types used in libpam, so you don't have to type |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
10 //! `unsafe extern "C" fn(this is so long)` all the time. |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
11 //! |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
12 #![doc = concat!("This documentation was built for the **", pam_impl_name!(), "** implementation.")] |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
13 //! |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
14 //! You can override this **at build time** by setting the `LIBPAMSYS_IMPL` |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
15 //! environment variable to one of the values of the [`pam_impl::PamImpl`] enum. |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
16 //! For more information about configuration, see the documentation of |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
17 //! [`libpam-sys-consts`](https://crates.io/crates/libpam-sys-consts). |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
18 #![allow(non_camel_case_types)] |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
19 #![allow(unused_imports)] |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
20 |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
21 pub mod aliases; |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
22 #[doc(inline)] |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
23 pub use libpam_sys_consts::constants::*; |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
24 #[doc(inline)] |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
25 pub use libpam_sys_consts::{pam_impl, pam_impl_name}; |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
26 use std::ffi::{c_char, c_int, c_uint, c_void}; |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
27 use std::fmt; |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
28 use std::marker::{PhantomData, PhantomPinned}; |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
29 |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
30 /// An opaque structure that PAM uses to communicate. |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
31 /// |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
32 /// This is only ever returned in pointer form and cannot be constructed. |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
33 #[repr(C)] |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
34 pub struct pam_handle { |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
35 _value: (), |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
36 _marker: PhantomData<(PhantomPinned, *mut c_void)>, |
|
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
37 } |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
38 |
| 127 | 39 impl fmt::Debug for pam_handle { |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
40 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
41 write!(f, "pam_handle({self:p}") |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
42 } |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
43 } |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
44 |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
45 /// Used by PAM to communicate between the module and the application. |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
46 #[repr(C)] |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
47 pub struct pam_conv { |
| 127 | 48 pub conv: unsafe extern "C" fn( |
| 49 num_msg: c_int, | |
| 50 msg: *const *const pam_message, | |
| 51 resp: *mut *mut pam_response, | |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
52 appdata: *mut c_void, |
| 127 | 53 ) -> c_int, |
|
148
4b3a5095f68c
Move libpam-sys helpers into their own library.
Paul Fisher <paul@pfish.zone>
parents:
138
diff
changeset
|
54 pub appdata_ptr: *mut c_void, |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
55 } |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
56 |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
57 /// A message sent into a PAM conversation. |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
58 #[repr(C)] |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
59 pub struct pam_message { |
|
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
60 pub msg_style: c_int, |
| 127 | 61 pub msg: *const c_char, |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
62 } |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
63 |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
64 /// A response returned from a PAM conversation. |
|
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
65 #[repr(C)] |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
66 pub struct pam_response { |
| 127 | 67 pub resp: *mut c_char, |
|
125
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
68 /// Completely unused. |
|
2b255c92417b
Introduce base PAM functions; use the real X/SSO PAM header for tests.
Paul Fisher <paul@pfish.zone>
parents:
119
diff
changeset
|
69 pub resp_retcode: c_int, |
|
118
39760dfc9b3b
Detect PAM library based only on system lib; rename minimal lib to XSso.
Paul Fisher <paul@pfish.zone>
parents:
117
diff
changeset
|
70 } |
| 127 | 71 |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
72 /// Definition of the PAM_XAUTHDATA item. Compatible with `xcb_auth_info_t`. |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
73 #[cfg(pam_impl = "LinuxPam")] |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
74 #[repr(C)] |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
75 pub struct pam_xauth_data { |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
76 pub namelen: c_int, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
77 pub name: *mut c_char, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
78 pub datalen: c_int, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
79 pub data: *mut c_char, |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
80 } |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
81 |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
82 #[cfg(pam_impl = "LinuxPam")] |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
83 #[derive(Debug)] |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
84 #[repr(C)] |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
85 pub struct pam_modutil_privs { |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
86 pub grplist: *mut libc::gid_t, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
87 pub number_of_groups: c_int, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
88 pub allocated: c_int, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
89 pub old_gid: libc::gid_t, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
90 pub old_uid: libc::uid_t, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
91 pub is_dropped: c_int, |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
92 } |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
93 |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
94 #[cfg(pam_impl = "OpenPam")] |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
95 pub type pam_func_t = unsafe extern "C" fn( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
96 handle: *mut pam_handle, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
97 flags: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
98 argc: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
99 argv: *const *const c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
100 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
101 |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
102 #[cfg(pam_impl = "OpenPam")] |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
103 #[derive(Debug)] |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
104 #[repr(C)] |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
105 pub struct pam_module { |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
106 pub path: *mut c_char, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
107 pub func: [pam_func_t; 6], |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
108 pub dlh: *mut c_void, |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
109 } |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
110 |
|
137
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
111 #[cfg(any(pam_impl = "OpenPam", pam_impl = "Sun"))] |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
112 #[derive(Debug)] |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
113 #[repr(C)] |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
114 pub struct pam_repository { |
|
137
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
115 pub type_: *mut c_char, |
|
136
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
116 pub scope: *mut c_void, |
|
efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
134
diff
changeset
|
117 pub scope_len: usize, |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
118 } |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
119 |
| 127 | 120 // These are the functions specified in X/SSO. Everybody exports them. |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
121 #[link(name = "pam")] |
| 127 | 122 extern "C" { |
| 123 /// Account validation. | |
| 124 pub fn pam_acct_mgmt(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 125 | |
| 126 /// Authenticate a user. | |
| 127 pub fn pam_authenticate(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 128 | |
| 129 // Nobody implements pam_authenticate_secondary. | |
| 130 | |
| 131 /// Manage authentication tokens. | |
| 132 pub fn pam_chauthtok(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 133 | |
| 134 /// Close an opened user session. | |
| 135 pub fn pam_close_session(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 136 | |
| 137 /// Ends the PAM transaction. | |
| 138 pub fn pam_end(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 139 | |
| 140 /// Gets module-specific data. PAM still owns the data. | |
| 141 pub fn pam_get_data( | |
| 142 pamh: *mut pam_handle, | |
| 143 module_data_name: *const c_char, | |
| 144 data: *mut *const c_void, | |
| 145 ) -> c_int; | |
| 146 | |
| 147 /// Gets an environment variable. You own the return value. | |
|
130
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
148 pub fn pam_getenv(pamh: *const pam_handle, name: *const c_char) -> *mut c_char; |
| 127 | 149 |
| 150 /// Gets all the environment variables. You own everything it points to. | |
|
130
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
151 pub fn pam_getenvlist(pamh: *const pam_handle) -> *mut *mut c_char; |
| 127 | 152 |
| 153 /// Get information about the transaction. | |
| 154 /// | |
| 155 /// The item is owned by PAM. | |
| 156 pub fn pam_get_item( | |
|
130
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
157 pamh: *const pam_handle, |
| 127 | 158 item_type: c_int, |
| 159 item: *mut *const c_void, | |
| 160 ) -> c_int; | |
| 161 | |
| 162 // Nobody implements pam_get_mapped_authtok. | |
| 163 // Nobody implements pam_get_mapped_username. | |
| 164 | |
| 165 /// Get the username. PAM owns it. | |
| 166 pub fn pam_get_user( | |
| 167 pamh: *mut pam_handle, | |
| 168 user: *mut *const c_char, | |
| 169 prompt: *const c_char, | |
| 170 ) -> c_int; | |
| 171 | |
| 172 /// Opens a user session. | |
| 173 pub fn pam_open_session(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 174 | |
| 175 /// Sets the value of an environment variable. `namevalue` is copied. | |
| 176 pub fn pam_putenv(pamh: *mut pam_handle, namevalue: *const c_char) -> c_int; | |
| 177 | |
| 178 /// Update or delete user credentials. | |
| 179 pub fn pam_setcred(pamh: *mut pam_handle, flags: c_int) -> c_int; | |
| 180 | |
| 181 /// Set module-specific data. PAM will call `cleanup` when completed. | |
| 182 pub fn pam_set_data( | |
| 183 pamh: *mut pam_handle, | |
| 184 module_data_name: *const c_char, | |
| 185 data: *mut c_void, | |
| 186 cleanup: unsafe extern "C" fn( | |
| 187 pamh: *mut pam_handle, | |
| 188 data: *mut c_void, | |
| 189 pam_end_status: c_int, | |
| 190 ), | |
| 191 ) -> c_int; | |
| 192 | |
| 193 /// Set information about the transaction. The `item` is copied. | |
| 194 pub fn pam_set_item(pamh: *mut pam_handle, item_type: c_int, item: *const c_void) -> c_int; | |
| 195 | |
| 196 // Nobody implements pam_set_mapped_authtok. | |
| 197 // Nobody implements pam_set_mapped_username. | |
| 198 | |
| 199 // The pam_sm_whatever functions are prototypes for the functions that | |
| 200 // a PAM module should implement, not symbols provided by PAM. | |
| 201 | |
| 202 // Nobody implements pam_authenticate_secondary. | |
| 203 | |
| 204 /// Starts a PAM transaction. The `conv` may or may not be copied. | |
| 205 pub fn pam_start( | |
| 206 service: *const c_char, | |
| 207 user: *const c_char, | |
| 208 pam_conv: *mut pam_conv, | |
| 209 pamh: *mut *mut pam_handle, | |
| 210 ) -> c_int; | |
| 211 | |
| 212 /// Gets a statically-allocated error string. | |
| 213 /// | |
| 214 /// All implementations of PAM known to this library (Linux-PAM, OpenPAM, | |
| 215 /// and Sun) ignore `pamh` and will accept a null pointer. | |
| 216 pub fn pam_strerror(pamh: *const pam_handle, error_number: c_int) -> *mut c_char; | |
| 217 } | |
| 218 | |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
219 #[cfg(any(pam_impl = "LinuxPam", pam_impl = "OpenPam"))] |
| 127 | 220 extern "C" { |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
221 /// Gets `PAM_AUTHTOK`, or asks the user if that is unset. |
|
130
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
222 pub fn pam_get_authtok( |
|
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
223 pamh: *mut pam_handle, |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
224 item: c_int, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
225 authtok: *mut *const c_char, |
|
130
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
226 prompt: *const c_char, |
|
80c07e5ab22f
Transfer over (almost) completely to using libpam-sys.
Paul Fisher <paul@pfish.zone>
parents:
129
diff
changeset
|
227 ) -> c_int; |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
228 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
229 pub fn pam_prompt( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
230 pamh: *const pam_handle, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
231 style: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
232 response: *mut *mut c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
233 fmt: *const c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
234 ... |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
235 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
236 |
| 127 | 237 } |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
238 |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
239 #[cfg(pam_impl = "LinuxPam")] |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
240 extern "C" { |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
241 pub fn pam_fail_delay(pamh: *mut pam_handle, musec_delay: c_uint) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
242 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
243 /// Start a PAM transaction based on configuration in the given directory. |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
244 pub fn pam_start_confdir( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
245 service_name: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
246 user: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
247 pam_conversation: *mut pam_conv, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
248 confdir: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
249 pamh: *mut *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
250 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
251 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
252 // We don't export the v-variants of the formatting functions. |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
253 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
254 pub fn pam_syslog(pamh: *const pam_handle, priority: c_int, fmt: *const c_char, ...); |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
255 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
256 pub fn pam_get_authtok_noverify( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
257 pamh: *const pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
258 authtok: *mut *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
259 prompt: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
260 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
261 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
262 pub fn pam_get_authtok_verify( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
263 pamh: *const pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
264 authtok: *mut *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
265 prompt: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
266 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
267 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
268 // pam_modutil also lives in libpam for Linux. |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
269 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
270 pub fn pam_modutil_check_user_in_passwd( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
271 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
272 user_name: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
273 file_name: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
274 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
275 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
276 pub fn pam_modutil_getpwnam(pamh: *mut pam_handle, user: *const c_char) -> *mut libc::passwd; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
277 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
278 pub fn pam_modutil_getpwuid(pamh: *mut pam_handle, uid: libc::uid_t) -> *mut libc::passwd; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
279 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
280 pub fn pam_modutil_getgrnam(pamh: *mut pam_handle, group: *const c_char) -> *mut libc::group; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
281 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
282 pub fn pam_modutil_getgrgid(pamh: *mut pam_handle, gid: libc::gid_t) -> *mut libc::group; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
283 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
284 pub fn pam_modutil_getspnam(pamh: *mut pam_handle, user: *const c_char) -> *mut libc::spwd; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
285 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
286 pub fn pam_modutil_user_in_group_nam_nam( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
287 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
288 user: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
289 group: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
290 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
291 pub fn pam_modutil_user_in_group_nam_gid( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
292 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
293 user: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
294 group: libc::gid_t, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
295 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
296 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
297 pub fn pam_modutil_user_in_group_uid_nam( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
298 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
299 user: libc::uid_t, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
300 group: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
301 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
302 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
303 pub fn pam_modutil_user_in_group_uid_gid( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
304 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
305 user: libc::uid_t, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
306 group: libc::gid_t, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
307 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
308 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
309 pub fn pam_modutil_getlogin(pamh: *mut pam_handle) -> *const c_char; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
310 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
311 pub fn pam_modutil_read(fd: c_int, buffer: *mut c_char, count: c_int) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
312 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
313 pub fn pam_modutil_write(fd: c_int, buffer: *const c_char, count: c_int) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
314 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
315 pub fn pam_modutil_audit_write( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
316 pamh: *mut pam_handle, |
|
137
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
317 type_: c_int, |
|
131
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
318 message: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
319 retval: c_int, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
320 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
321 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
322 pub fn pam_modutil_drop_priv( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
323 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
324 p: *mut pam_modutil_privs, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
325 pw: *const libc::passwd, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
326 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
327 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
328 pub fn pam_modutil_regain_priv(pamh: *mut pam_handle, p: *mut pam_modutil_privs) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
329 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
330 pub fn pam_modutil_sanitize_helper_fds( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
331 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
332 redirect_stdin: pam_modutil_redirect_fd, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
333 redirect_stdout: pam_modutil_redirect_fd, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
334 redirect_stderr: pam_modutil_redirect_fd, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
335 ) -> c_int; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
336 |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
337 pub fn pam_modutil_search_key( |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
338 pamh: *mut pam_handle, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
339 file_name: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
340 key: *const c_char, |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
341 ) -> *mut c_char; |
|
a632a8874131
Get all the Linux-PAM functions into libpam-sys, and get tests right.
Paul Fisher <paul@pfish.zone>
parents:
130
diff
changeset
|
342 } |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
343 |
|
134
6c1e1bdb4164
Use standard #[cfg] directives rather than custom proc macros.
Paul Fisher <paul@pfish.zone>
parents:
133
diff
changeset
|
344 #[cfg(pam_impl = "OpenPam")] |
|
133
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
345 extern "C" { |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
346 pub fn openpam_borrow_cred(pamh: *mut pam_handle, passwd: *const libc::passwd) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
347 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
348 pub fn openpam_subst( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
349 pamh: *const pam_handle, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
350 buf: *mut c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
351 _bufsize: *mut usize, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
352 _template: *const c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
353 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
354 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
355 pub fn openpam_free_data(pamh: *mut pam_handle, data: *mut c_void, status: c_int); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
356 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
357 pub fn openpam_free_envlist(_envlist: *mut *mut c_char); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
358 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
359 pub fn openpam_get_option(_pamh: *mut pam_handle, _option: *const c_char) -> *const c_char; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
360 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
361 pub fn openpam_restore_cred(pamh: *mut pam_handle) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
362 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
363 pub fn openpam_set_option( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
364 _pamh: *mut pam_handle, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
365 _option: *const c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
366 _value: *const c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
367 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
368 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
369 pub fn pam_error(pamh: *const pam_handle, _fmt: *const c_char, ...) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
370 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
371 pub fn pam_info(_pamh: *const pam_handle, _fmt: *const c_char, ...) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
372 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
373 pub fn openpam_readline( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
374 _f: *mut libc::FILE, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
375 _lineno: *mut c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
376 _lenp: *mut usize, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
377 ) -> *mut c_char; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
378 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
379 pub fn openpam_readlinev( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
380 _f: *mut libc::FILE, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
381 _lineno: *mut c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
382 _lenp: *mut c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
383 ) -> *mut *mut c_char; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
384 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
385 pub fn openpam_readword( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
386 _f: *mut libc::FILE, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
387 _lineno: *mut c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
388 _lenp: *mut usize, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
389 ) -> *mut c_char; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
390 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
391 pub fn openpam_straddch( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
392 _str: *mut *mut c_char, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
393 _sizep: *mut usize, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
394 _lenp: *mut usize, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
395 ch: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
396 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
397 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
398 pub fn openpam_set_feature(_feature: c_int, _onoff: c_int) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
399 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
400 pub fn openpam_get_feature(_feature: c_int, _onoff: *mut c_int) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
401 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
402 pub fn _openpam_log(_level: c_int, _func: *const c_char, _fmt: *const c_char, ...); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
403 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
404 /// A premade conversation function that talks to the TTY. |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
405 /// |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
406 /// ```no_run |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
407 /// # use std::ffi::CString; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
408 /// # use std::ptr; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
409 /// use libpam_sys::*; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
410 /// # let service = CString::new("whatever").unwrap(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
411 /// # let user = CString::new("whatever").unwrap(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
412 /// let mut handle: *mut pam_handle = ptr::null_mut(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
413 /// let mut conv = pam_conv{ |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
414 /// conv: openpam_ttyconv, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
415 /// appdata_ptr: ptr::null_mut(), |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
416 /// }; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
417 /// let result = unsafe { pam_start( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
418 /// service.as_ptr(), user.as_ptr(), &mut conv, &mut handle |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
419 /// ) }; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
420 /// ``` |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
421 pub fn openpam_ttyconv( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
422 n: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
423 _msg: *const *const pam_message, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
424 _resp: *mut *mut pam_response, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
425 _data: *mut AppData, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
426 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
427 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
428 pub static mut openpam_ttyconv_timeout: c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
429 |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
430 /// A null conversation function. |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
431 /// |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
432 /// ```no_run |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
433 /// # use std::ffi::CString; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
434 /// # use std::ptr; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
435 /// use libpam_sys::*; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
436 /// # let service = CString::new("whatever").unwrap(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
437 /// # let user = CString::new("whatever").unwrap(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
438 /// let mut handle: *mut pam_handle = ptr::null_mut(); |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
439 /// let mut conv = pam_conv{ |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
440 /// conv: openpam_nullconv, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
441 /// appdata_ptr: ptr::null_mut(), |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
442 /// }; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
443 /// let result = unsafe { pam_start( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
444 /// service.as_ptr(), user.as_ptr(), &mut conv, &mut handle |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
445 /// ) }; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
446 /// ``` |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
447 pub fn openpam_nullconv( |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
448 n: c_int, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
449 _msg: *const *const pam_message, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
450 _resp: *mut *mut pam_response, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
451 _data: *mut AppData, |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
452 ) -> c_int; |
|
32b2a545ca3e
Add functions and constants from openpam.h.
Paul Fisher <paul@pfish.zone>
parents:
131
diff
changeset
|
453 } |
|
137
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
454 |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
455 #[cfg(pam_impl = "Sun")] |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
456 extern "C" { |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
457 pub fn __pam_get_authtok( |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
458 pamh: *mut pam_handle, |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
459 source: c_int, |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
460 type_: c_int, |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
461 prompt: *const c_char, |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
462 authtok: *mut *mut c_char, |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
463 ) -> c_int; |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
464 |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
465 pub fn __pam_log(priority: c_int, format: *const c_char, ...); |
|
88627c057709
Add Sun PAM functions from Illumos headers.
Paul Fisher <paul@pfish.zone>
parents:
136
diff
changeset
|
466 } |
