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
page revision: 1, last edited: 09 May 2009 02:37