comparison src/libpam/module.rs @ 104:a2676475e86b default tip

Create the very start of a test suite. - Creates a new testharness package - Sets up the outlines of a test suite that will execute there - A basic container where maybe those tests can execute
author Paul Fisher <paul@pfish.zone>
date Wed, 25 Jun 2025 16:56:56 -0400
parents dfcd96a74ac4
children
comparison
equal deleted inserted replaced
103:dfcd96a74ac4 104:a2676475e86b
39 /// ``` 39 /// ```
40 #[macro_export] 40 #[macro_export]
41 macro_rules! pam_hooks { 41 macro_rules! pam_hooks {
42 ($ident:ident) => { 42 ($ident:ident) => {
43 mod _pam_hooks_scope { 43 mod _pam_hooks_scope {
44 use std::ffi::{c_char, c_int, CStr}; 44 use std::ffi::{c_char, c_int, c_void, CStr};
45 use $crate::{ErrorCode, Flags, LibPamHandle, PamModule}; 45 use $crate::{ErrorCode, Flags, LibPamHandle, PamModule};
46 46
47 #[no_mangle] 47 #[no_mangle]
48 extern "C" fn pam_sm_acct_mgmt( 48 extern "C" fn pam_sm_acct_mgmt(
49 pamh: *mut libc::c_void, 49 pamh: *mut c_void,
50 flags: Flags, 50 flags: Flags,
51 argc: c_int, 51 argc: c_int,
52 argv: *const *const c_char, 52 argv: *const *const c_char,
53 ) -> c_int { 53 ) -> c_int {
54 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { 54 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } {
59 } 59 }
60 } 60 }
61 61
62 #[no_mangle] 62 #[no_mangle]
63 extern "C" fn pam_sm_authenticate( 63 extern "C" fn pam_sm_authenticate(
64 pamh: *mut libc::c_void, 64 pamh: *mut c_void,
65 flags: Flags, 65 flags: Flags,
66 argc: c_int, 66 argc: c_int,
67 argv: *const *const c_char, 67 argv: *const *const c_char,
68 ) -> c_int { 68 ) -> c_int {
69 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { 69 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } {
74 } 74 }
75 } 75 }
76 76
77 #[no_mangle] 77 #[no_mangle]
78 extern "C" fn pam_sm_chauthtok( 78 extern "C" fn pam_sm_chauthtok(
79 pamh: *mut libc::c_void, 79 pamh: *mut c_void,
80 flags: Flags, 80 flags: Flags,
81 argc: c_int, 81 argc: c_int,
82 argv: *const *const c_char, 82 argv: *const *const c_char,
83 ) -> c_int { 83 ) -> c_int {
84 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { 84 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } {
89 } 89 }
90 } 90 }
91 91
92 #[no_mangle] 92 #[no_mangle]
93 extern "C" fn pam_sm_close_session( 93 extern "C" fn pam_sm_close_session(
94 pamh: *mut libc::c_void, 94 pamh: *mut c_void,
95 flags: Flags, 95 flags: Flags,
96 argc: c_int, 96 argc: c_int,
97 argv: *const *const c_char, 97 argv: *const *const c_char,
98 ) -> c_int { 98 ) -> c_int {
99 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { 99 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } {
104 } 104 }
105 } 105 }
106 106
107 #[no_mangle] 107 #[no_mangle]
108 extern "C" fn pam_sm_open_session( 108 extern "C" fn pam_sm_open_session(
109 pamh: *mut libc::c_void, 109 pamh: *mut c_void,
110 flags: Flags, 110 flags: Flags,
111 argc: c_int, 111 argc: c_int,
112 argv: *const *const c_char, 112 argv: *const *const c_char,
113 ) -> c_int { 113 ) -> c_int {
114 let args = extract_argv(argc, argv); 114 let args = extract_argv(argc, argv);
119 } 119 }
120 } 120 }
121 121
122 #[no_mangle] 122 #[no_mangle]
123 extern "C" fn pam_sm_setcred( 123 extern "C" fn pam_sm_setcred(
124 pamh: *mut libc::c_void, 124 pamh: *mut c_void,
125 flags: Flags, 125 flags: Flags,
126 argc: c_int, 126 argc: c_int,
127 argv: *const *const c_char, 127 argv: *const *const c_char,
128 ) -> c_int { 128 ) -> c_int {
129 let args = extract_argv(argc, argv); 129 let args = extract_argv(argc, argv);