Postfix Spamassassin Patch
--- milter-greylist.c.orig    2008-12-29 23:04:04.000000000 +0100
+++ milter-greylist.c    2008-12-29 23:10:34.000000000 +0100
@@ -285,6 +285,7 @@
     _SOCK_ADDR *addr;
 {
     struct mlfi_priv *priv;
+    char ipstr[IPADDRSTRLEN];
 
     if ((priv = malloc(sizeof(*priv))) == NULL) {
         mg_log(LOG_ERR, "malloc() failed: %s", strerror(errno));
@@ -306,9 +307,6 @@
     priv->priv_max_elapsed = 0;
     priv->priv_last_whitelist = EXF_NONE;
 
-    strncpy(priv->priv_hostname, hostname, ADDRLEN);
-    priv->priv_hostname[ADDRLEN] = '\0';
-
     if (addr != NULL) {
         switch (addr->sa_family) {
         case AF_INET:
@@ -342,6 +340,18 @@
         priv->priv_sr.sr_whitelist = EXF_WHITELIST | EXF_NONIP;
     }
 
+    iptostring(SA(&priv->priv_addr),
+           priv->priv_addrlen,
+           ipstr, sizeof(ipstr));
+
+    if ((strlen(ipstr) == strlen(hostname) - 2) &&
+       !(strncmp(ipstr, hostname + 1, strlen(ipstr)))) {
+        strncpy(priv->priv_hostname, "unknown", ADDRLEN);
+    } else {
+        strncpy(priv->priv_hostname, hostname, ADDRLEN);
+        priv->priv_hostname[ADDRLEN] = '\0';
+    }
+
 #ifdef USE_GEOIP
     geoip_set_ccode(priv);
 #endif
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License