Removed the DBMPWD (aka. DBM) define. It was per default enabled, anyway.
authormarkus schnalke <meillo@marmaro.de>
Thu, 22 Mar 2012 16:46:06 +0000 (17:46 +0100)
committermarkus schnalke <meillo@marmaro.de>
Thu, 22 Mar 2012 16:46:06 +0000 (17:46 +0100)
The explanation of this option is:
    For sites with a dbm-style password file (such as with Yellow Pages),
    MH will not read the entire passwd file into a cache.  At one site
    that runs YP on a large passwd file, using this showed a 6:1 performance
    improvement.
I don't like performance optimization, but if the non-cached version is
faster, then we surely take that one.

acconfig.h
uip/aliasbr.c

index 3ab8a46..7352240 100644 (file)
  */
 /* #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@
index baeab6f..6a68c51 100644 (file)
@@ -31,7 +31,7 @@ char *akresult(struct aka *);
 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 *);
@@ -281,7 +281,7 @@ scanp(unsigned char *p)
 static char *
 getp(char *p)
 {
-       register unsigned char  *cp = scanp(p);
+       register unsigned char *cp = scanp(p);
 
        p = cp;
        while (!isspace(*cp) && *cp)
@@ -343,28 +343,19 @@ addgroup(struct aka *ak, char *grp)
                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;
 }
@@ -388,10 +379,7 @@ addmember(struct aka *ak, char *grp)
                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)
@@ -456,28 +444,21 @@ add_aka(struct aka *ak, char *pp)
 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 */
 }
 
 
@@ -531,22 +512,15 @@ struct home *
 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.
@@ -561,7 +535,6 @@ seek_home(char *name)
        *c1 = '\0';
        if ((pw = getpwnam(lname)))
                return(hmalloc(pw));
-#endif /* DBMPWD */
 
        return NULL;
 }