* names.c: Only leave actually used functions.
Этот коммит содержится в:
родитель
6b2d184d9e
Коммит
dc724cdb6e
@ -1,5 +1,7 @@
|
|||||||
2002-11-15 Pavel Roskin <proski@gnu.org>
|
2002-11-15 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
|
* names.c: Only leave actually used functions.
|
||||||
|
|
||||||
* ftpfs.c (ftpfs_open_socket): Use INADDR_NONE, not -1.
|
* ftpfs.c (ftpfs_open_socket): Use INADDR_NONE, not -1.
|
||||||
|
|
||||||
2002-11-12 Pavel Roskin <proski@gnu.org>
|
2002-11-12 Pavel Roskin <proski@gnu.org>
|
||||||
|
55
vfs/names.c
55
vfs/names.c
@ -17,8 +17,9 @@ GNU Library General Public License for more details.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Look up user and/or group names.
|
* Look up a user or group name from a uid/gid, maintaining a cache.
|
||||||
*
|
* FIXME, for now it's a one-entry cache.
|
||||||
|
* FIXME2, the "-993" is to reduce the chance of a hit on the first lookup.
|
||||||
* This file should be modified for non-unix systems to do something
|
* This file should be modified for non-unix systems to do something
|
||||||
* reasonable.
|
* reasonable.
|
||||||
*/
|
*/
|
||||||
@ -27,14 +28,12 @@ GNU Library General Public License for more details.
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#define TAR_NAMES
|
|
||||||
#include "tar.h"
|
|
||||||
#include "names.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
|
|
||||||
|
#include "names.h"
|
||||||
|
|
||||||
#ifndef TUNMLEN
|
#ifndef TUNMLEN
|
||||||
#define TUNMLEN 256
|
#define TUNMLEN 256
|
||||||
#endif
|
#endif
|
||||||
@ -53,30 +52,11 @@ static int my_gid = -993;
|
|||||||
#define myuid ( my_uid < 0? (my_uid = getuid()): my_uid )
|
#define myuid ( my_uid < 0? (my_uid = getuid()): my_uid )
|
||||||
#define mygid ( my_gid < 0? (my_gid = getgid()): my_gid )
|
#define mygid ( my_gid < 0? (my_gid = getgid()): my_gid )
|
||||||
|
|
||||||
/*
|
int
|
||||||
* Look up a user or group name from a uid/gid, maintaining a cache.
|
finduid (char *uname)
|
||||||
* FIXME, for now it's a one-entry cache.
|
|
||||||
* FIXME2, the "-993" is to reduce the chance of a hit on the first lookup.
|
|
||||||
*/
|
|
||||||
void finduname (char *uname, int uid)
|
|
||||||
{
|
{
|
||||||
struct passwd *pw;
|
struct passwd *pw;
|
||||||
|
|
||||||
if (uid != saveuid) {
|
|
||||||
saveuid = uid;
|
|
||||||
saveuname[0] = '\0';
|
|
||||||
pw = getpwuid (uid);
|
|
||||||
if (pw)
|
|
||||||
strncpy (saveuname, pw->pw_name, TUNMLEN);
|
|
||||||
}
|
|
||||||
strncpy (uname, saveuname, TUNMLEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
int finduid (char *uname)
|
|
||||||
{
|
|
||||||
struct passwd *pw;
|
|
||||||
extern struct passwd *getpwnam ();
|
|
||||||
|
|
||||||
if (uname[0] != saveuname[0] /* Quick test w/o proc call */
|
if (uname[0] != saveuname[0] /* Quick test w/o proc call */
|
||||||
||0 != strncmp (uname, saveuname, TUNMLEN)) {
|
||0 != strncmp (uname, saveuname, TUNMLEN)) {
|
||||||
strncpy (saveuname, uname, TUNMLEN);
|
strncpy (saveuname, uname, TUNMLEN);
|
||||||
@ -90,28 +70,11 @@ int finduid (char *uname)
|
|||||||
return saveuid;
|
return saveuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
void findgname (char *gname, int gid)
|
findgid (char *gname)
|
||||||
{
|
{
|
||||||
struct group *gr;
|
struct group *gr;
|
||||||
|
|
||||||
if (gid != savegid) {
|
|
||||||
savegid = gid;
|
|
||||||
savegname[0] = '\0';
|
|
||||||
(void) setgrent ();
|
|
||||||
gr = getgrgid (gid);
|
|
||||||
if (gr)
|
|
||||||
strncpy (savegname, gr->gr_name, TGNMLEN);
|
|
||||||
}
|
|
||||||
(void) strncpy (gname, savegname, TGNMLEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int findgid (char *gname)
|
|
||||||
{
|
|
||||||
struct group *gr;
|
|
||||||
extern struct group *getgrnam ();
|
|
||||||
|
|
||||||
if (gname[0] != savegname[0] /* Quick test w/o proc call */
|
if (gname[0] != savegname[0] /* Quick test w/o proc call */
|
||||||
||0 != strncmp (gname, savegname, TUNMLEN)) {
|
||0 != strncmp (gname, savegname, TUNMLEN)) {
|
||||||
strncpy (savegname, gname, TUNMLEN);
|
strncpy (savegname, gname, TUNMLEN);
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
|
#ifndef __NAMES_H
|
||||||
|
#define __NAMES_H
|
||||||
|
|
||||||
int finduid (char *name);
|
int finduid (char *name);
|
||||||
void finduname (char *name, int uid);
|
|
||||||
int findgid (char *name);
|
int findgid (char *name);
|
||||||
void findgname (char *name, int gid);
|
|
||||||
|
#endif /* __NAMES_H */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user