DPNS_GETIDMAP

Section: DPNS Library Functions (3)
Updated: $Date: 2007/02/26 09:48:48 $
Index Return to Main Contents
 

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.