On Jan 11, 2004, at 10:31 AM, Alejandro Aguilar Sierra wrote:
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/



Reply via email to