NAME
pam_set_data, pam_get_data — PAM routines to maintain module specific state
SYNOPSIS
cc
[ flag ... ] file ...
-lpam
[ library ... ]
#include <security/pam_appl.h>
int pam_set_data(pam_handle_t *pamh,
const char *module_data_name,
const void *data,
void
(*cleanup)
(pam_handle_t *pamh,
void *data,
int pam_end_status));
int pam_get_data(const pam_handle_t *pamh,
const char *module_data_name,
void **data);
DESCRIPTION
pam_set_data()
and
pam_get_data()
allow
PAM
service modules to access and update module specific information as needed.
These functions should not be used by applications.
pam_set_data()
stores module specific data within the PAM handle,
pamh.
The
module_data_name
argument
uniquely identifies the data, and the
data
argument
represents the actual data.
module_data_name
should be unique across all services (UNIX, etc).
The
cleanup
function is used to free any memory used by the
data
after it is no longer needed, and is invoked by
pam_end().
The
cleanup
function takes as its arguments a pointer to the PAM handle,
pamh,
a pointer to the actual data,
data,
and a status code,
pam_end_status.
The status code determines exactly what state information needs to be
purged, and is therefore specific to each module.
If
pam_set_data()
is called and module data already exists under the same
module_data_name
(from a prior call to
pam_set_data()),
then the existing
data
is replaced by the new
data,
and the existing
cleanup
function is replaced by the new
cleanup
function.
pam_get_data()
retrieves module specific data stored in the PAM handle,
pamh,
identified by the unique name,
module_data_name.
The
data
argument is assigned the address of the requested data.
APPLICATION USAGE
Refer to
pam(3)
for information on thread-safety of PAM interfaces.
RETURN VALUES
In addition to the return values listed in
pam(3),
the following value may also be returned:
- PAM_NO_MODULE_DATA
No module specific data is present.