comparison src/libpam/handle.rs @ 174:9e4ce1631bd3

Dramatically expand documentation.
author Paul Fisher <paul@pfish.zone>
date Tue, 29 Jul 2025 18:58:27 -0400
parents e27c5c667a5a
children e30775c80b49
comparison
equal deleted inserted replaced
173:46e8ce5cd5d1 174:9e4ce1631bd3
42 .field("conversation", &format!("{:p}", self.conversation)) 42 .field("conversation", &format!("{:p}", self.conversation))
43 .finish() 43 .finish()
44 } 44 }
45 } 45 }
46 46
47 /// Builder to start a [`LibPamTransaction`].
48 ///
49 /// Use [`Self::new_with_service`] to build a new PAM transaction.
47 #[derive(Debug, PartialEq)] 50 #[derive(Debug, PartialEq)]
48 pub struct TransactionBuilder { 51 pub struct TransactionBuilder {
49 service_name: OsString, 52 service_name: OsString,
50 username: Option<OsString>, 53 username: Option<OsString>,
51 } 54 }
54 /// Creates a builder to start a PAM transaction for the given service. 57 /// Creates a builder to start a PAM transaction for the given service.
55 /// 58 ///
56 /// The service name is what controls the steps and checks PAM goes through 59 /// The service name is what controls the steps and checks PAM goes through
57 /// when authenticating a user. This corresponds to the configuration file 60 /// when authenticating a user. This corresponds to the configuration file
58 /// usually at <code>/etc/pam.d/<var>service_name</var></code>. 61 /// usually at <code>/etc/pam.d/<var>service_name</var></code>.
62 ///
63 /// You usually want to call [`username`](Self::username) to set
64 /// the username before starting the transaction.
59 /// 65 ///
60 /// # References 66 /// # References
61 #[doc = linklist!(pam_start: adg, _std)] 67 #[doc = linklist!(pam_start: adg, _std)]
62 /// 68 ///
63 #[doc = stdlinks!(3 pam_start)] 69 #[doc = stdlinks!(3 pam_start)]
130 /// to [`pam_end` on Linux-PAM][man7], which signals that data cleanup 136 /// to [`pam_end` on Linux-PAM][man7], which signals that data cleanup
131 /// should "not treat the call too seriously" \[sic]. 137 /// should "not treat the call too seriously" \[sic].
132 /// 138 ///
133 /// On other platforms, this is no different than letting the transaction 139 /// On other platforms, this is no different than letting the transaction
134 /// end on its own. 140 /// end on its own.
135 ///
136 #[doc = man7!(3 pam_end)] 141 #[doc = man7!(3 pam_end)]
137 pub fn end_silent(self) { 142 pub fn end_silent(self) {
138 #[cfg(pam_impl = "LinuxPam")] 143 #[cfg(pam_impl = "LinuxPam")]
139 { 144 {
140 let mut me = std::mem::ManuallyDrop::new(self); 145 let mut me = std::mem::ManuallyDrop::new(self);