diff options
author | ache <ache@FreeBSD.org> | 2001-10-03 01:01:23 +0800 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-10-03 01:01:23 +0800 |
commit | 3111395f8681c0f32fccfbec9aec88c606704d0e (patch) | |
tree | f82e7aec5ca7ab94198626197b09785aa625a4e2 /mail/popper | |
parent | 76c5c0bdf269fe422d1ebfec8beea7c9d78be791 (diff) | |
download | freebsd-ports-gnome-3111395f8681c0f32fccfbec9aec88c606704d0e.tar.gz freebsd-ports-gnome-3111395f8681c0f32fccfbec9aec88c606704d0e.tar.zst freebsd-ports-gnome-3111395f8681c0f32fccfbec9aec88c606704d0e.zip |
Fix auth for non-OPIE users
Diffstat (limited to 'mail/popper')
-rw-r--r-- | mail/popper/Makefile | 2 | ||||
-rw-r--r-- | mail/popper/files/patch-af | 23 |
2 files changed, 12 insertions, 13 deletions
diff --git a/mail/popper/Makefile b/mail/popper/Makefile index 64371c069fc2..5267652d90a3 100644 --- a/mail/popper/Makefile +++ b/mail/popper/Makefile @@ -7,7 +7,7 @@ PORTNAME= qpopper PORTVERSION= 2.53 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= mail MASTER_SITES= ftp://ftp.qualcomm.com/eudora/servers/unix/popper/old/ DISTNAME= ${PORTNAME}${PORTVERSION} diff --git a/mail/popper/files/patch-af b/mail/popper/files/patch-af index c2fac6abc345..dff19989d2bd 100644 --- a/mail/popper/files/patch-af +++ b/mail/popper/files/patch-af @@ -1,5 +1,5 @@ --- pop_user.c.orig Fri Jul 10 03:44:08 1998 -+++ pop_user.c Mon Jul 30 19:30:00 2001 ++++ pop_user.c Tue Oct 2 20:55:26 2001 @@ -40,6 +40,12 @@ #include "popper.h" @@ -23,21 +23,20 @@ #ifdef KERBEROS if (p->kerberos && strcmp(p->pop_parm[1], p->user)) { -@@ -167,6 +176,19 @@ +@@ -167,6 +176,18 @@ #endif /* APOP */ /* Tell the user that the password is required */ +#ifdef OPIE -+ if (((pw = getpwnam(p->user)) == NULL) || (pw->pw_passwd == NULL) || -+ (*pw->pw_passwd == '\0')) -+ return (pop_auth_fail(p, POP_FAILURE, pwerrmsg, p->user)); -+ -+ pwok = af_pwok && opiealways(pw->pw_dir); -+ -+ opiechallenge(&opiestate, p->user, prompt); -+ -+ return (pop_msg(p,POP_SUCCESS,"OTP response %s %s for %s.", prompt, -+ pwok ? "requested" : "required", p->user)); ++ if (opiechallenge(&opiestate, p->user, prompt) == 0) { ++ pw = getpwnam(p->user); ++ pwok = (pw != NULL) && af_pwok && opiealways(pw->pw_dir); ++ return (pop_msg(p,POP_SUCCESS,"OTP response %s %s for %s.", prompt, ++ pwok ? "requested" : "required", p->user)); ++ } else { ++ pwok = 1; ++ return (pop_msg(p,POP_SUCCESS,"Password required for %s.",p->user)); ++ } +#else /* OPIE */ return (pop_msg(p,POP_SUCCESS,"Password required for %s.",p->user)); +#endif /* OPIE */ |