Try something like this with qpopper-4.0.5 and krb5-1.4.1.
--- ./qpopper4.0.5/popper/,pop_init.c Mon Mar 17 13:08:52 2003
+++ ./qpopper4.0.5/popper/pop_init.c Wed Jul 13 13:04:05 2005
@@ -313,6 +313,7 @@
* _both_ V5 and V4 pop services.
*/
+#ifdef KRB5_KRB4_COMPAT
retval = krb5_compat_recvauth ( pop_context, &auth_context,
(krb5_pointer) &sock,
KRB5_APPL_VERSION, server,
@@ -330,6 +331,13 @@
NULL, /* Key schedule (unused)
*/
&v4_version /* V4 version */
);
+#else
+ auth_sys = KRB5_RECVAUTH_V5;
+ retval = krb5_recvauth_version(pop_context, &auth_context,
+ (krb5_pointer) &sock,
+ NULL, 0, NULL, &ticket, &v4_version);
+#endif
+
if ( retval ) {
pop_msg ( p, POP_FAILURE, HERE, "recvauth failed--%s",
error_message(retval) );
@@ -418,6 +426,7 @@
EXIT ( -1 );
} /* krb5_aname_to_localname failed */
# endif /* NO_CROSSREALM */
+ p->AuthType = kerberos;
}
# endif /* KRB5 */
#else /* not KERBEROS */
--- ./qpopper4.0.5/popper/,pop_updt.c Wed Jan 1 20:39:03 2003
+++ ./qpopper4.0.5/popper/pop_updt.c Tue Jul 12 08:37:13 2005
@@ -293,7 +293,7 @@
DEBUG_LOG0 ( p, "Checking to see if all messages were deleted" );
if ( p->bStats ) {
- pop_log ( p, POP_PRIORITY, HERE, "Stats: %s %d %ld %d %ld %s %s",
+ pop_log ( p, LOG_CRIT/*POP_PRIORITY*/, HERE, "Stats: %s %d %ld %d
%ld %s %s",
p->user, p->msgs_deleted, p->bytes_deleted,
p->msg_count - p->msgs_deleted,
p->drop_size - p->bytes_deleted,
--- ./qpopper4.0.5/popper/,pop_user.c Wed Mar 12 20:06:38 2003
+++ ./qpopper4.0.5/popper/pop_user.c Wed Jul 13 14:10:06 2005
@@ -235,6 +235,7 @@
# endif /* APOP_ONLY */
#endif /* SCRAM_ONLY */
+ if (p->AuthType != kerberos) {
#ifdef AUTHON
@@ -425,6 +426,8 @@
} while ( 0 ); /* so a break will work */
#endif /* defined(__bsdi__) && _BSDI_VERSION >= 199608 */
+
+} /* p->AuthType != kerberos */
if ( p->AuthType == noauth ) /* If authentication method is unknown
(i.e. */
p->AuthType = plain; /* not Kerberos) then assume plain
text */
--- ./qpopper4.0.5/,configure.in Tue Feb 4 21:06:08 2003
+++ ./qpopper4.0.5/configure.in Tue Jul 12 15:08:53 2005
@@ -630,8 +630,8 @@
fi
AC_DEFINE(KERBEROS)
AC_DEFINE(KRB5)
- AC_DEFINE(KRB5_KRB4_COMPAT)
- KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5util -lkrb5 -ldes425 -lcom_err"
+ dnl DEE NO KRB4 AC_DEFINE(KRB5_KRB4_COMPAT)
+ KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5 -ldes425 -lcom_err"
AC_CHECK_LIB( k5crypto, krb5_c_string_to_key,
KERBEROS_LIBS="$KERBEROS_LIBS -lk5crypto" )
AC_CHECK_LIB( crypto, krb5_c_string_to_key,
KERBEROS_LIBS="$KERBEROS_LIBS -lcrypto" )
AC_CHECK_LIB( krb4, krb_create_ticket,
KERBEROS_LIBS="$KERBEROS_LIBS -lkrb4" )
@@ -929,7 +929,7 @@
[5]*) OS_DEFS="$OS_DEFS -DSOLARIS2 -DGNU_PASS"
OS_DEFS="$OS_DEFS -DNO_GETLINE -DCONTENT_LENGTH=1"
if test $krb5_prefix != "no" -a $krb5_prefix !=
"yes"; then
-
KERBEROS_LIBS="$KERBEROS_LIBS -R${krb5_prefix}/lib"
+ KERBEROS_LIBS="$KERBEROS_LIBS "
fi;;
[4]*) OS_DEFS="$OS_DEFS -DSUNOS4"
IS_SUNOS4=yes;;
--- ./qpopper4.0.5/,configure Tue Feb 4 21:06:30 2003
+++ ./qpopper4.0.5/configure Tue Jul 12 15:08:04 2005
@@ -3175,11 +3175,7 @@
#define KRB5 1
EOF
- cat >>confdefs.h <<\EOF
-#define KRB5_KRB4_COMPAT 1
-EOF
-
- KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5util -lkrb5 -ldes425 -lcom_err"
+ KERBEROS_LIBS="$KERBEROS_LIBS -lkrb5 -ldes425 -lcom_err"
echo "$as_me:3183: checking for krb5_c_string_to_key in -lk5crypto"
>&5
echo $ECHO_N "checking for krb5_c_string_to_key in -lk5crypto... $ECHO_C"
>&6
if test "${ac_cv_lib_k5crypto_krb5_c_string_to_key+set}" = set; then
@@ -3895,7 +3891,7 @@
5*) OS_DEFS="$OS_DEFS -DSOLARIS2 -DGNU_PASS"
OS_DEFS="$OS_DEFS -DNO_GETLINE -DCONTENT_LENGTH=1"
if test $krb5_prefix != "no" -a $krb5_prefix !=
"yes"; then
-
KERBEROS_LIBS="$KERBEROS_LIBS -R${krb5_prefix}/lib"
+ KERBEROS_LIBS="$KERBEROS_LIBS "
fi;;
4*) OS_DEFS="$OS_DEFS -DSUNOS4"
IS_SUNOS4=yes;;