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;