X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fslocal.c;h=e51f869c0cf78b5d05ba407a9d9c52691d6e2691;hb=da67f77e5a66799deac35ae8d9c538f9222bc8af;hp=74f1b57e8c87fd343913b7d8b3b574b76e926a15;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68;p=mmh diff --git a/uip/slocal.c b/uip/slocal.c index 74f1b57..e51f869 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -48,11 +49,14 @@ extern int initgroups(char*, int); #endif - -#ifdef HAVE_DB1_NDBM_H -#include -#else -#include +/* This define is needed for Berkeley db v2 and above to + * make the header file expose the 'historical' ndbm APIs. + * We define it unconditionally because this is simple and + * harmless. + */ +#define DB_DBM_HSEARCH 1 +#ifdef NDBM_HEADER +#include NDBM_HEADER #endif #include @@ -456,7 +460,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]; @@ -660,6 +664,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++; } @@ -954,9 +960,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();