DPNS_GETIDMAP(3)
NAME
dpns_getidmap - get virtual uid/gid(s) associated with a given
dn/role(s)
SYNOPSIS
#include <sys/types.h> #include "dpns_api.h" int dpns_getidmap (const char *username, int nbgroups, const char **groupnames, uid_t *userid, gid_t *gids)
DESCRIPTION
dpns_getidmap gets the virtual uid/gid(s) associated with a given
dn/role(s). If the dn or any of the roles does not exist yet in the
Database an entry is added to the mapping table.
- username
- specifies the user name (dn). It must be at most 255 characters long.
- nbgroups
- is the number of group names.
- groupnames
- is the address of an array of group names (vo/role). Each group name must be at most 255 characters long. This pointer can be NULL. In this case the vo is obtained from a static mapping file.
- userid specifies the address of a buffer to receive the Virtual User
- Id.
- gids specifies the address of a buffer to receive the Virtual Group
- Ids. It must be big enough to receive nbgroups group ids, but at least one group id in case nbgroups is zero.
RETURN VALUE
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.
ERRORS
- ENOMEM Memory could not be allocated in the server to receive the
- group names or to send back the gids.
- EFAULT username, userid or gids is a NULL pointer.
- EINVAL nbgroups is negative or the length of username or of one
- of the group names exceeds 255.
- SENOSHOST Host unknown.
- SENOSSERV Service unknown.
- SECOMERR Communication error.
- ENSNACT Name server is not running or is being shutdown.