---
name: "dpns_getidmap"
section: "3"
platform: "linux"
package: "libdpm-dev"
version: "1.10.0-2+b3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/dpns_getidmap"
---

# dpns\_getidmap(3)

get virtual uid/gid(s) associated with a given dn/role(s)

## 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***)**

**int dpns\_getidmapc (const char \****username***,** **const char \****user\_ca***,** **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.

- *user\_ca*

  specifies the CA from the user proxy. 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.

- **EACCES**

  One of *username*, *user\_ca* or the primary (first) group is banned.

- **EFAULT**

  *username*, *userid* or *gids* is a NULL pointer.

- **EINVAL**

  *nbgroups* is negative or the length of  *username*, *user\_ca* or of one of the group names exceeds 255.

- **SENOSHOST**

  Host unknown.

- **SENOSSERV**

  Service unknown.

- **SECOMERR**

  Communication error.

- **SENOMAPFND**

  **DISABLEAUTOVIDS** is set and *username* or one of the groups does not exist.

- **ENSNACT**

  Name server is not running or is being shutdown.
