Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2012 07:28:17 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r231250 - stable/7/contrib/ntp/ntpd
Message-ID:  <201202090728.q197SH1A087331@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Thu Feb  9 07:28:17 2012
New Revision: 231250
URL: http://svn.freebsd.org/changeset/base/231250

Log:
  MFC r223626:
  
   Compare port numbers correctly.  They are stored by SRCPORT()
   in host byte order, so we need to compare them as such.
   Properly compare IPv6 addresses as well.
  
   This allows the, by default, 8 badaddrs slots per address
   family to work correctly and only print sendto() errors once.
  
   The change is no longer applicable to any latest upstream versions.
  
   Approved by:   roberto
   Sponsored by:  Sandvine Incorporated

Modified:
  stable/7/contrib/ntp/ntpd/ntp_io.c
Directory Properties:
  stable/7/contrib/ntp/   (props changed)

Modified: stable/7/contrib/ntp/ntpd/ntp_io.c
==============================================================================
--- stable/7/contrib/ntp/ntpd/ntp_io.c	Thu Feb  9 07:27:59 2012	(r231249)
+++ stable/7/contrib/ntp/ntpd/ntp_io.c	Thu Feb  9 07:28:17 2012	(r231250)
@@ -2646,14 +2646,14 @@ sendpkt(
 
 	for (slot = ERRORCACHESIZE; --slot >= 0; )
 		if(dest->ss_family == AF_INET) {
-			if (badaddrs[slot].port == ((struct sockaddr_in*)dest)->sin_port &&
+			if (badaddrs[slot].port == SRCPORT(dest) &&
 				badaddrs[slot].addr.s_addr == ((struct sockaddr_in*)dest)->sin_addr.s_addr)
 			break;
 		}
 #ifdef INCLUDE_IPV6_SUPPORT
 		else if (dest->ss_family == AF_INET6) {
-			if (badaddrs6[slot].port == ((struct sockaddr_in6*)dest)->sin6_port &&
-				badaddrs6[slot].addr.s6_addr == ((struct sockaddr_in6*)dest)->sin6_addr.s6_addr)
+			if (badaddrs6[slot].port == SRCPORT(dest) &&
+				!memcmp(&badaddrs6[slot].addr, &((struct sockaddr_in6*)dest)->sin6_addr, sizeof(struct in6_addr)))
 			break;
 		}
 #endif /* INCLUDE_IPV6_SUPPORT */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202090728.q197SH1A087331>