1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-09-01 02:34:55 +00:00

New file: lib/idcache.h

* NEWS: Mention the addition.
* modules/idcache (Files): Add lib/idcache.h
* lib/idcache.c: Include "idcache.h".
Don't include <sys/types.h>.
Add a FIXME comment.
Move file-scoped "static" declarations to the top.
* lib/idcache.h: New file.  Include <sys/types.h> here, instead.
This commit is contained in:
Jim Meyering
2007-08-18 07:16:52 +00:00
parent a29749fa30
commit dc9484f546
5 changed files with 40 additions and 8 deletions
+11
View File
@@ -1,3 +1,14 @@
2007-08-18 Jim Meyering <jim@meyering.net>
New file: lib/idcache.h
* NEWS: Mention the addition.
* modules/idcache (Files): Add lib/idcache.h
* lib/idcache.c: Include "idcache.h".
Don't include <sys/types.h>.
Add a FIXME comment.
Move file-scoped "static" declarations to the top.
* lib/idcache.h: New file. Include <sys/types.h> here, instead.
2007-08-17 Bruno Haible <bruno@clisp.org>
and Paul Eggert <eggert@cs.ucla.edu>
+2
View File
@@ -6,6 +6,8 @@ User visible incompatible changes
Date Modules Changes
2007-08-18 idcache Now provides prototypes in "idcache.h".
2007-08-10 xstrtol The STRTOL_FATAL_ERROR macro is removed.
Use the new xstrtol_fatal function instead.
+15 -8
View File
@@ -1,6 +1,6 @@
/* idcache.c -- map user and group IDs, cached for speed
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998, 2003, 2005, 2006
Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998, 2003, 2005-2007
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -19,10 +19,10 @@
#include <config.h>
#include "idcache.h"
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>
@@ -45,11 +45,24 @@ struct userid
char name[FLEXIBLE_ARRAY_MEMBER];
};
/* FIXME: provide a function to free any malloc'd storage and reset lists,
so that an application can use code like this just before exiting:
#ifdef lint
idcache_clear ();
#endif
*/
static struct userid *user_alist;
/* Each entry on list is a user name for which the first lookup failed. */
static struct userid *nouser_alist;
/* Use the same struct as for userids. */
static struct userid *group_alist;
/* Each entry on list is a group name for which the first lookup failed. */
static struct userid *nogroup_alist;
/* Translate UID to a login name, with cache, or NULL if unresolved. */
char *
@@ -132,12 +145,6 @@ getuidbyname (const char *user)
return NULL;
}
/* Use the same struct as for userids. */
static struct userid *group_alist;
/* Each entry on list is a group name for which the first lookup failed. */
static struct userid *nogroup_alist;
/* Translate GID to a group name, with cache, or NULL if unresolved. */
char *
+11
View File
@@ -0,0 +1,11 @@
#ifndef IDCACHE_H
# define IDCACHE_H 1
# include <sys/types.h>
extern char *getuser (uid_t uid);
extern char *getgroup (gid_t gid);
extern uid_t *getuidbyname (const char *user);
extern gid_t *getgidbyname (const char *group);
#endif
+1
View File
@@ -3,6 +3,7 @@ Username <--> uid and groupname <--> gid conversions, with cache for speed.
Files:
lib/idcache.c
lib/idcache.h
m4/idcache.m4
Depends-on: