In a recent post, Tom Collins wrote that the bug causing IPs with the "::ffff:" prefix in open-smtp had been fixed in 5.4-rc1. However, I got the same problem with 5.4.-rc1 and courier-imap-2.2.1. I fixed it after this hack to vpopmail.c:
Here's the correct patch, along with a fix for vchkpw to strip the ::ffff: before logging the IP. If you're running MySQL or Postgres, run 'delete from relay' to clear the old, invalid entries. If you're using the other auth modules, then look for (and delete) ~vpopmail/etc/open-smtp.
Index: vchkpw.c
===================================================================
RCS file: /cvsroot/vpopmail/vpopmail/vchkpw.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- vchkpw.c 13 Jan 2004 06:09:18 -0000 1.10
+++ vchkpw.c 13 Jan 2004 15:59:42 -0000 1.11
@@ -105,7 +105,7 @@
{
char *tmpstr;- if ( (IpAddr = getenv("TCPREMOTEIP")) == NULL) IpAddr="";
+ if ( (IpAddr = get_remote_ip()) == NULL) IpAddr="";
if ( (tmpstr = getenv("TCPLOCALPORT")) == NULL) LocalPort = 110;
else LocalPort = atoi(tmpstr);
Index: vpopmail.c =================================================================== RCS file: /cvsroot/vpopmail/vpopmail/vpopmail.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- vpopmail.c 13 Jan 2004 05:24:18 -0000 1.27 +++ vpopmail.c 13 Jan 2004 15:59:42 -0000 1.28 @@ -3058,7 +3058,7 @@ char *p;
ipenv = getenv("TCPREMOTEIP");
- if ((ipenv == NULL) || (strlen(ipenv) > sizeof(ipaddr))) return ipenv;
+ if ((ipenv == NULL) || (strlen(ipenv) > sizeof(ipbuf))) return ipenv;
strcpy (ipbuf, ipenv); ipaddr = ipbuf;
-- Tom Collins - [EMAIL PROTECTED] QmailAdmin: http://qmailadmin.sf.net/ Vpopmail: http://vpopmail.sf.net/ Info on the Sniffter hand-held Network Tester: http://sniffter.com/
