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.