X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Faliasbr.c;h=baeab6f25e1d31e2b1ca87c910701427c94ea19d;hp=b9b32fa1359f1c088228aa1887023f264aa801b6;hb=75a3bc56e890a9ca5e25f194acbb574e942de5c5;hpb=556e1267b7be84fd25c2d52aa754d623889d52ac diff --git a/uip/aliasbr.c b/uip/aliasbr.c index b9b32fa..baeab6f 100644 --- a/uip/aliasbr.c +++ b/uip/aliasbr.c @@ -39,7 +39,6 @@ static char *seekp(char *, char *, char **); static int addfile(struct aka *, char *); static int addgroup(struct aka *, char *); static int addmember(struct aka *, char *); -static int addall(struct aka *); static char *getalias(char *); static void add_aka(struct aka *, char *); static struct aka *akalloc(char *); @@ -115,11 +114,10 @@ aleq(char *string, char *aliasent) while ((c = *string++)) if (*aliasent == '*') return 1; + else if ((c | 040) != (*aliasent | 040)) + return 0; else - if ((c | 040) != (*aliasent | 040)) - return 0; - else - aliasent++; + aliasent++; return (*aliasent == 0 || *aliasent == '*'); } @@ -224,10 +222,6 @@ alias(char *file) } break; - case '*': /* Everyone */ - addall(ak); - break; - default: /* list */ while ((cp = getalias(pp))) add_aka(ak, cp); @@ -366,8 +360,8 @@ addgroup(struct aka *ak, char *grp) } #ifdef DBMPWD if ((pw = getpwnam(gp))) { - hmalloc(pw); - add_aka(ak, gp); + hmalloc(pw); + add_aka(ak, gp); } } #endif /* DBMPWD */ @@ -407,28 +401,6 @@ addmember(struct aka *ak, char *grp) } -static int -addall(struct aka *ak) -{ - int noshell = NoShell == NULL || *NoShell == 0; - register struct home *hm; - -#ifndef DBMPWD - if (homehead == NULL) -#endif /* DBMPWD */ - init_pw(); - if (Everyone < 0) - Everyone = EVERYONE; - - for (hm = homehead; hm; hm = hm->h_next) - if (hm->h_uid > Everyone && (noshell || - strcmp(hm->h_shell, NoShell)!=0)) - add_aka(ak, hm->h_name); - - return homehead != NULL; -} - - static char * getalias(char *addrs) { @@ -472,7 +444,7 @@ add_aka(struct aka *ak, char *pp) ad = (struct adr *) mh_xmalloc(sizeof(*ad)); ad->ad_text = getcpy(pp); - ad->ad_local = strchr(pp, '@') == NULL && strchr(pp, '!') == NULL; + ad->ad_local = strchr(pp, '@') == NULL; ad->ad_next = NULL; if (ak->ak_addr) ld->ad_next = ad; @@ -544,10 +516,11 @@ hmalloc(struct passwd *pw) p->h_shell = getcpy(pw->pw_shell); p->h_ngrps = 0; p->h_next = NULL; - if (hometail != NULL) - hometail->h_next = p; - if (homehead == NULL) + /* append to end */ + if (!homehead) homehead = p; + if (hometail) + hometail->h_next = p; hometail = p; return p;