aboutsummaryrefslogtreecommitdiffstats
path: root/mail/popper
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2001-10-03 01:01:23 +0800
committerache <ache@FreeBSD.org>2001-10-03 01:01:23 +0800
commit3111395f8681c0f32fccfbec9aec88c606704d0e (patch)
treef82e7aec5ca7ab94198626197b09785aa625a4e2 /mail/popper
parent76c5c0bdf269fe422d1ebfec8beea7c9d78be791 (diff)
downloadfreebsd-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/Makefile2
-rw-r--r--mail/popper/files/patch-af23
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 */