From: Frank Kardel Date: Sun, 30 Sep 2007 15:57:52 +0000 (+0000) Subject: ChangeLog: X-Git-Tag: NTP_4_2_5P81~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b405df78d2f2ad69a8e8b75cd4498208cff10c89;p=thirdparty%2Fntp.git ChangeLog: [Bug 771] compare scopeid if available for IPv6 addresses ntp.h: Bug 771: compare scopeid if available for IPv6 addresses bk: 46ffc780M1aYCVs7E1lwNJWJ6l9Spg --- diff --git a/ChangeLog b/ChangeLog index ed00aed55..cc40f91e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,4 @@ +* [Bug 771] compare scopeid if available for IPv6 addresses * [Bug 899] Only show -i/--jaildir -u/--user options if we HAVE_DROPROOT. * [Bug 916] 'cryptosw' is undefined if built without OpenSSL. * [Bug 891] 'restrict' config file keyword does not work (partial fix). diff --git a/include/ntp.h b/include/ntp.h index c2a293736..ce0661f26 100644 --- a/include/ntp.h +++ b/include/ntp.h @@ -515,6 +515,12 @@ struct peer { /* * Macro for sockaddr_storage structures operations */ +#ifdef ISC_PLATFORM_HAVESCOPEID +#define SOCKSCOPE(sock1, sock2) (((struct sockaddr_in6 *)sock1)->sin6_scope_id == ((struct sockaddr_in6 *)sock2)->sin6_scope_id) +#else +#define SOCKSCOPE(sock1, sock2) 1 +#endif + #define SOCKCMP(sock1, sock2) \ (((struct sockaddr_storage *)sock1)->ss_family \ == ((struct sockaddr_storage *)sock2)->ss_family ? \ @@ -524,7 +530,7 @@ struct peer { sizeof(struct in_addr)) == 0 : \ memcmp(&((struct sockaddr_in6 *)sock1)->sin6_addr, \ &((struct sockaddr_in6 *)sock2)->sin6_addr, \ - sizeof(struct in6_addr)) == 0 : \ + sizeof(struct in6_addr)) == 0 && SOCKSCOPE(sock1, sock2) : \ 0) #define SOCKNUL(sock1) \