summaryrefslogtreecommitdiff
path: root/mit-pthreads/gen/getpwnamuid.c
diff options
context:
space:
mode:
Diffstat (limited to 'mit-pthreads/gen/getpwnamuid.c')
-rw-r--r--mit-pthreads/gen/getpwnamuid.c138
1 files changed, 0 insertions, 138 deletions
diff --git a/mit-pthreads/gen/getpwnamuid.c b/mit-pthreads/gen/getpwnamuid.c
deleted file mode 100644
index 0e87081b7a9..00000000000
--- a/mit-pthreads/gen/getpwnamuid.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getpwnamuid.c 5.3 (Berkeley) 12/21/87";
-#endif
-
-#include <stdio.h>
-#include <pwd.h>
-#include <sys/file.h>
-#include "pwd_internal.h"
-
-/*
- * The following are shared with getpwent.c
- */
-
-#ifdef DBM_PWD_SUPPORT
-static struct passwd *
-fetchpw(key)
- datum key;
-{
- char *cp, *tp;
- pwf_context_t *_data;
-
- _data = _pw_get_data();
- if (!_data)
- return 0;
- if (key.dptr == 0)
- return ((struct passwd *)NULL);
- key = dbm_fetch(_data->pw_db, key);
- if (key.dptr == 0)
- return ((struct passwd *)NULL);
- cp = key.dptr;
- tp = _data->line;
-
-#define EXPAND(e) _data->passwd.e = tp; while (*tp++ = *cp++);
- EXPAND(pw_name);
- EXPAND(pw_passwd);
- memcpy((char *)&_data->passwd.pw_uid, cp, sizeof (int));
- cp += sizeof (int);
- memcpy((char *)&_data->passwd.pw_gid, cp, sizeof (int));
- cp += sizeof (int);
- EXPAND(pw_gecos);
- EXPAND(pw_dir);
- EXPAND(pw_shell);
- return (&_data->passwd);
-}
-#endif /* DBM_PWD_SUPPORT */
-
-struct passwd *
-getpwnam(nam)
- const char *nam;
-{
-#ifdef DBM_PWD_SUPPORT
- datum key;
-#endif
- struct passwd *pw, *getpwent();
- pwf_context_t *_data;
-
- _data = _pw_get_data();
- if (!_data)
- return 0;
-
-#ifdef DBM_PWD_SUPPORT
- if (_data->pw_db == (DBM *)0 &&
- (_data->pw_db = dbm_open(_data->pw_file, O_RDONLY)) == (DBM *)0) {
- oldcode:
-#endif
- setpwent();
- while ((pw = getpwent()) && strcmp(nam, pw->pw_name))
- ;
- if (!_data->pw_stayopen)
- endpwent();
- return (pw);
-#ifdef DBM_PWD_SUPPORT
- }
- if (flock(dbm_dirfno(_data->pw_db), LOCK_SH) < 0) {
- dbm_close(_data->pw_db);
- _data->pw_db = (DBM *)0;
- goto oldcode;
- }
- key.dptr = nam;
- key.dsize = strlen(nam);
- pw = fetchpw(key);
- (void) flock(dbm_dirfno(_data->pw_db), LOCK_UN);
- if (!_data->pw_stayopen) {
- dbm_close(_data->pw_db);
- _data->pw_db = (DBM *)0;
- }
- return (pw);
-#endif
-}
-
-struct passwd *
-getpwuid(uid)
- uid_t uid;
-{
-#ifdef DBM_PWD_SUPPORT
- datum key;
-#endif
- struct passwd *pw, *getpwent();
- pwf_context_t *_data;
-
- _data = _pw_get_data();
- if (!_data)
- return 0;
-#ifdef DBM_PWD_SUPPORT
- if (_data->pw_db == (DBM *)0 &&
- (_data->pw_db = dbm_open(_data->pw_file, O_RDONLY)) == (DBM *)0) {
- oldcode:
-#endif
- setpwent();
- while ((pw = getpwent()) && pw->pw_uid != uid)
- ;
- if (!_data->pw_stayopen)
- endpwent();
- return (pw);
-#ifdef DBM_PWD_SUPPORT
- }
- if (flock(dbm_dirfno(_data->pw_db), LOCK_SH) < 0) {
- dbm_close(_data->pw_db);
- _data->pw_db = (DBM *)0;
- goto oldcode;
- }
- key.dptr = (char *) &uid;
- key.dsize = sizeof uid;
- pw = fetchpw(key);
- (void) flock(dbm_dirfno(_data->pw_db), LOCK_UN);
- if (!_data->pw_stayopen) {
- dbm_close(_data->pw_db);
- _data->pw_db = (DBM *)0;
- }
- return (pw);
-#endif
-}