nsdispatch - name service switch dispatcher routine
#include <nsswitch.h>
int nsdispatch(
void *retval, constns_dtabdtab[],const char*
database const char *method const ns_src defaults[], ...
);
The nsdispatch() function invokes the callback functions
specified in dtab in the order given in /etc/nsswitch.conf
for the database until a successful entry is found.
retval is passed to each callback function to modify as
necessary (to pass back to the caller of nsdispatch())
dtab is an array of ns_dtab structures, which have the
following format:
typedef struct {
const char *src;
int (*cb)(void *retval, void *cb_data, va_list ap);
void *cb_data;
} ns_dtab;
For each source type that is implemented, an entry with
src set to the name of the source, cb defined as a function
which handles that source, and cb_data is used to
pass arbitrary data to the callback function. The last
entry in dtab should contain NULL values for src, cb, and
cb_data.
defaults contains a list of default sources to try in the
case of a missing or corrupt nsswitch.conf(5), or if there
isn't a relevant entry for database. It is an array of
ns_src structures, which have the following format:
typedef struct {
const char *src;
u_int32_t flags;
} ns_src;
For each default source type, an entry with src set to the
name of the source, and flags set to the relevant flags
(usually NS_SUCCESS; refer to Callback return values for
more information). The last entry in defaults
should have src set to NULL and flags set to 0.
For convenience, a global variable defined as: extern
const ns_src __nsdefaultsrc[]; exists which contains a
single default entry for `files' for use by callers which
don't require complicated default rules.
`...' are optional extra arguments, which are passed to
the appropriate callback function as a variable argument
list of the type va_list.
Valid Source Types [Toc] [Back]
Whilst there is support for arbitrary sources, the following
#defines for commonly implemented sources are available:
#define value
NSSRC_FILES "files"
NSSRC_DNS "dns"
NSSRC_NIS "nis"
NSSRC_COMPAT "compat"
Refer to nsswitch.conf(5) for a complete description of
what each source type is.
Callback Return Values [Toc] [Back]
The callback functions should return one of the following
values depending upon status of the lookup:
Return value Status code
NS_SUCCESS success
NS_NOTFOUND notfound
NS_UNAVAIL unavail
NS_TRYAGAIN tryagain
Refer to nsswitch.conf(5) for a complete description of
what each source type is.
Statements about third-party trademarks, copyrights, documentation
distribution rights, and so forth go here if
these statements must appear in formatted output.
Functions:stdarg(3), ypclnt(3)
Others: nsswitch.conf(5)
nsdispltch(3)
[ Back ] |