47 const char *
First() {
return grouptab[0];}
49 const char *
Next() {
if (grouptab[nextgroup])
return grouptab[nextgroup++];
50 return (
const char *)0;
56 {
int j = (cnt > NGROUPS_MAX ? NGROUPS_MAX : cnt);
57 if (cnt){memcpy((
void *)grouptab, (
const void *)gtable,
58 (
size_t)(j *
sizeof(
char *)));
60 memset((
void *)&grouptab[cnt], 0,
61 (
size_t)((NGROUPS_MAX-j+1)*
sizeof(
char *)));
66 {memcpy((
void *)grouptab,(
const void *)rv.grouptab,
sizeof(grouptab));
73 const char *grouptab[NGROUPS_MAX+1];
133 int Retran(
const gid_t gid);
153 int addGroup(
const char *user,
const gid_t gid,
char *gname,
154 char **Gtab,
int gtabi);
155 char *Dotran(
const gid_t gid,
char *gname);
157 gid_t retrangid[128];
166 XrdSysMutex Group_Build_Context, Group_Name_Context;
167 XrdSysMutex Group_Cache_Context, NetGroup_Cache_Context;
XrdAccGroupList(XrdAccGroupList &rv)
XrdAccGroupList(const int cnt=0, const char **gtable=0)
char * AddName(const XrdAccGroupType gtype, const char *name)
int Retran(const gid_t gid)
XrdAccGroupList * Groups(const char *user)
XrdAccGroupList * NetGroups(const char *user, const char *host)
void SetOptions(XrdAccGroups_Options opts)
void SetLifetime(const int seconds)
char * FindName(const XrdAccGroupType gtype, const char *name)
void SetDomain(const char *dname)