Can you try this diff instead? Eric.
Index: sockaddr.c =================================================================== RCS file: /cvs/src/usr.sbin/smtpd/sockaddr.c,v retrieving revision 1.4 diff -u -p -u -r1.4 sockaddr.c --- sockaddr.c 16 May 2011 10:57:41 -0000 1.4 +++ sockaddr.c 14 Jun 2012 11:16:18 -0000 @@ -114,13 +114,13 @@ sockaddr_as_fqdn(const struct sockaddr * switch (sa->sa_family) { case AF_INET: - addr = ((const struct sockaddr_in *)sa)->sin_addr.s_addr; + addr = ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr); snprintf(dst, max, "%d.%d.%d.%d.in-addr.arpa.", - (addr >> 24) & 0xff, - (addr >> 16) & 0xff, + addr & 0xff, (addr >> 8) & 0xff, - addr & 0xff); + (addr >> 16) & 0xff, + (addr >> 24) & 0xff); break; case AF_INET6: in6_addr = &((const struct sockaddr_in6 *)sa)->sin6_addr;