X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fslocal.c;h=ca23fd89457900685cc25449f7f4d8a1e73c6f25;hb=56539e8eafef3e955be9d08254d61b139faf34f1;hp=8a3f5f7c5f58fc8811b94f689ebf576b836a634f;hpb=8f4c5da8971926f7eccc912f7998c343aef3c33b;p=mmh diff --git a/uip/slocal.c b/uip/slocal.c index 8a3f5f7..ca23fd8 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -3,6 +3,10 @@ * slocal.c -- asynchronously filter and deliver new mail * * $Id$ + * + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ /* @@ -27,7 +31,7 @@ #include #include #include -#include +#include #include #include @@ -48,8 +52,17 @@ extern int initgroups(char*, int); #ifdef HAVE_DB1_NDBM_H #include #else +#ifdef HAVE_GDBM_NDBM_H +#include +#else +#if defined(HAVE_DB_H) && defined(HAVE_LIBDB) +#define DB_DBM_HSEARCH 1 +#include +#else #include #endif +#endif +#endif #include @@ -452,7 +465,7 @@ localmail (int fd, char *mdlvr) static int usr_delivery (int fd, char *delivery, int su) { - int i, accept, status, won, vecp, next; + int i, accept, status=1, won, vecp, next; char *field, *pattern, *action, *result, *string; char buffer[BUFSIZ], tmpbuf[BUFSIZ]; char *cp, *vec[NVEC]; @@ -656,6 +669,8 @@ usr_delivery (int fd, char *delivery, int su) break; } + if (status) next = 0; /* action failed, mark for 'N' result */ + if (accept && status == 0) won++; } @@ -950,9 +965,13 @@ logged_in (void) setutent(); while ((utp = getutent()) != NULL) { - if (utp->ut_type == USER_PROCESS - && utp->ut_user[0] != 0 - && strncmp (user, utp->ut_user, sizeof(utp->ut_user)) == 0) { + if ( +#ifdef HAVE_UTMP_UT_TYPE + utp->ut_type == USER_PROCESS + && +#endif + utp->ut_name[0] != 0 + && strncmp (user, utp->ut_name, sizeof(utp->ut_name)) == 0) { if (debug) continue; endutent();