Provided by: liblfc-dev_1.13.0-1_amd64 bug

NAME

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

SYNOPSIS

       #include <sys/types.h>
       #include "lfc_api.h"

       int  lfc_getidmap  (const  char  *username,  int  nbgroups, const char **groupnames, uid_t
       *userid, gid_t *gids)

       int lfc_getidmapc (const char *username, const char *user_ca,  int  nbgroups,  const  char
       **groupnames, uid_t *userid, gid_t *gids)

DESCRIPTION

       lfc_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.