165char *Gtab[NGROUPS_MAX];
176 Group_Cache_Context.Lock();
177 if ((glist = Group_Cache.Find(user)))
180 Group_Cache_Context.UnLock();
183 Group_Cache_Context.UnLock();
196 Group_Build_Context.Lock();
197 gtabi = addGroup(user, pw->pw_gid, 0, Gtab, 0);
205 while ((gr = getgrent()))
207 if (pw->pw_gid == gr->gr_gid)
continue;
208 for (cp = gr->gr_mem; cp && *cp; cp++)
209 if (strcmp(*cp, user) == 0)
210 gtabi = addGroup(user, gr->gr_gid,
211 Dotran(gr->gr_gid,gr->gr_name),
219 Group_Build_Context.UnLock();
227 Group_Cache_Context.Lock();
228 Group_Cache.Add(user, glist, LifeTime);
229 Group_Cache_Context.UnLock();
245char uh_key[MAXHOSTNAMELEN+96];
255 i = strlen(user); j = strlen(host);
257 strcpy(uh_key, user);
259 strcpy(&uh_key[i+1], host);
265 NetGroup_Cache_Context.Lock();
266 if ((glist = NetGroup_Cache.Find(uh_key)))
269 NetGroup_Cache_Context.UnLock();
272 NetGroup_Cache_Context.UnLock();
276 GroupTab.
user = user;
277 GroupTab.
host = host;
279 Group_Name_Context.Lock();
281 Group_Name_Context.UnLock();
286 (
const char **)GroupTab.
Gtab);
290 NetGroup_Cache_Context.Lock();
291 NetGroup_Cache.Add((
const char *)uh_key, glist, LifeTime);
292 NetGroup_Cache_Context.UnLock();
298 (
const char **)GroupTab.
Gtab);