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.