#![allow(dead_code)]
use crate::_doc::{guide, linklist, stdlinks};
use crate::constants::{
AuthnFlags, AuthtokAction, AuthtokFlags, BaseFlags, CredAction, ErrorCode, Result,
};
use crate::handle::ModuleClient;
use std::ffi::CStr;
macro_rules! sm_refs {
($sym:ident: $guide:literal) => {
concat!(
linklist!($sym: mwg, _std),
"\n\n",
guide!(mwg: $guide),
"\n",
stdlinks!(3 $sym),
)
}
}
#[doc = ""]
#[doc = guide!(what: "mwg-expected-of-module-overview.html")]
#[allow(unused_variables)]
pub trait PamModule<T: ModuleClient> {
#[doc = sm_refs!(pam_sm_authenticate: "mwg-expected-of-module-auth.html#mwg-pam_sm_authenticate")]
fn authenticate(handle: &mut T, args: Vec<&CStr>, flags: AuthnFlags) -> Result<()> {
Err(ErrorCode::Ignore)
}
#[doc = sm_refs!(pam_sm_acct_mgmt: "mwg-expected-of-module-acct.html#mwg-pam_sm_acct_mgmt")]
fn account_management(handle: &mut T, args: Vec<&CStr>, flags: AuthnFlags) -> Result<()> {
Err(ErrorCode::Ignore)
}
#[doc = sm_refs!(pam_sm_setcred: "mwg-expected-of-module-auth.html#mwg-pam_sm_setcred")]
fn set_credentials(
handle: &mut T,
args: Vec<&CStr>,
action: CredAction,
flags: BaseFlags,
) -> Result<()> {
Err(ErrorCode::Ignore)
}
#[doc = sm_refs!(pam_sm_chauthtok: "mwg-expected-of-module-acct.html#mwg-pam_sm_chauthtok")]
fn change_authtok(
handle: &mut T,
args: Vec<&CStr>,
action: AuthtokAction,
flags: AuthtokFlags,
) -> Result<()> {
Err(ErrorCode::Ignore)
}
#[doc = sm_refs!(pam_sm_open_session: "mwg-expected-of-module-session.html#mwg-pam_sm_open_session")]
fn open_session(handle: &mut T, args: Vec<&CStr>, flags: BaseFlags) -> Result<()> {
Err(ErrorCode::Ignore)
}
#[doc = sm_refs!(pam_sm_close_session: "mwg-expected-of-module-session.html#mwg-pam_sm_close_session")]
fn close_session(handle: &mut T, args: Vec<&CStr>, flags: BaseFlags) -> Result<()> {
Err(ErrorCode::Ignore)
}
}