*/
/* #define LOCKDIR "/usr/spool/locks" */
-/*
- * Define this if your passwords are stored in some type of
- * distributed name service, such as NIS, or NIS+.
- */
-#define DBMPWD 1
-
/***** END USER CONFIGURATION SECTION *****/
@TOP@
char *akvalue(char *);
char *akerror(int);
-static char *akval(struct aka *, char *);
+static char *akval(struct aka *, char *);
static int aleq(char *, char *);
static char *scanp(unsigned char *);
static char *getp(char *);
static char *
getp(char *p)
{
- register unsigned char *cp = scanp(p);
+ register unsigned char *cp = scanp(p);
p = cp;
while (!isspace(*cp) && *cp)
return 0;
}
-#ifndef DBMPWD
- if (homehead == NULL)
- init_pw();
-#endif /* DBMPWD */
-
while ((gp = *gr->gr_mem++))
-#ifdef DBMPWD
{
struct passwd *pw;
-#endif /* DBMPWD */
for (hm = homehead; hm; hm = hm->h_next)
if (strcmp(hm->h_name, gp)==0) {
add_aka(ak, hm->h_name);
break;
}
-#ifdef DBMPWD
if ((pw = getpwnam(gp))) {
hmalloc(pw);
add_aka(ak, gp);
}
}
-#endif /* DBMPWD */
return 1;
}
return 0;
}
-#ifndef DBMPWD
- if (homehead == NULL)
-#endif /* DBMPWD */
- init_pw();
+ init_pw();
for (hm = homehead; hm; hm = hm->h_next)
if (hm->h_gid == gid)
void
init_pw(void)
{
- register struct passwd *pw;
-#ifdef DBMPWD
- static int init;
+ register struct passwd *pw;
+ static int init = 0;
if (!init) {
- /* if the list has yet to be initialized */
- /* zap the list, and rebuild from scratch */
- homehead=NULL;
- hometail=NULL;
- init++;
-#endif /* DBMPWD */
-
+ /* read the passwd database and build a list */
setpwent();
-
- while ((pw = getpwent()))
- if (!hmalloc(pw))
+ while ((pw = getpwent())) {
+ if (!hmalloc(pw)) {
break;
-
+ }
+ }
endpwent();
-#ifdef DBMPWD
+
+ init++; /* now we're initialized */
}
-#endif /* DBMPWD */
}
seek_home(char *name)
{
register struct home *hp;
-#ifdef DBMPWD
struct passwd *pw;
char lname[32];
unsigned char *c;
char *c1;
-#else /* DBMPWD */
-
- if (homehead == NULL)
- init_pw();
-#endif /* DBMPWD */
for (hp = homehead; hp; hp = hp->h_next)
if (!mh_strcasecmp(name, hp->h_name))
return hp;
-#ifdef DBMPWD
/*
** The only place where there might be problems.
** This assumes that ALL usernames are kept in lowercase.
*c1 = '\0';
if ((pw = getpwnam(lname)))
return(hmalloc(pw));
-#endif /* DBMPWD */
return NULL;
}