On Jun 14 13:18:11, Eric Faurot wrote:
> Can you try this diff instead?

Still the same.

> 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);

This seems to be writing the "A.B.C.D.arpa" addresses.
I don;t know the code base of smtpd, but this doesn't
seem to be relevant here ...

>               break;
>       case AF_INET6:
>               in6_addr = &((const struct sockaddr_in6 *)sa)->sin6_addr;

Reply via email to