nsdispatch(3)nsdispatch(3)NAMEnsdispatch - name service switch dispatcher routine
SYNOPSIS
#include <nsswitch.h>
int nsdispatch(
void *retval, constns_dtabdtab[],const char* database const
char *method const ns_src defaults[], ... );
DESCRIPTION
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 for‐
mat:
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 fol‐
lowing 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
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
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.
LEGAL NOTICES
Statements about third-party trademarks, copyrights, documentation dis‐
tribution rights, and so forth go here if these statements must appear
in formatted output.
SEE ALSOFunctions:stdarg(3), ypclnt(3)
Others: nsswitch.conf(5)nsdispatch(3)