]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 1715] sntp utilitiesTest.IPv6Address failed.
authorDave Hart <hart@ntp.org>
Tue, 9 Nov 2010 20:08:29 +0000 (20:08 +0000)
committerDave Hart <hart@ntp.org>
Tue, 9 Nov 2010 20:08:29 +0000 (20:08 +0000)
bk: 4cd9aa3dU7xRPgmizUTQrUbBtNcPgA

ChangeLog
sntp/tests/utilities.cpp
sntp/utilities.c

index ced281216d1bf50f118ccfd6edfbb20060ef95db..f1783bc0c3d05f629ad859572981664aa528a7f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
   as intended.
 * [Bug 1709] from 4.2.6p3-RC9: ntpdate ignores replies with equal
   receive and transmit timestamps.
+* [Bug 1715] sntp utilitiesTest.IPv6Address failed.
 (4.2.7p79) 2010/11/07 Released by Harlan Stenn <stenn@ntp.org>
 * Correct frequency estimate with no drift file, from David Mills.
 (4.2.7p78) 2010/11/04 Released by Harlan Stenn <stenn@ntp.org>
index 160e5ec45908f7877530a584faaa9171788a23f1..1142971e7cb3c40fec2e785848acb745004a22c6 100644 (file)
@@ -22,11 +22,7 @@ protected:
        addrinfo CreateAddrinfo(sockaddr_u* sock) {
                addrinfo a;
                a.ai_family = sock->sa.sa_family;
-               if (a.ai_family == AF_INET) {
-                       a.ai_addrlen = sizeof(sockaddr_in);
-               } else {
-                       a.ai_addrlen = sizeof(sockaddr_in6);
-               }
+               a.ai_addrlen = SIZEOF_SOCKADDR(a.ai_family);
                a.ai_addr = &sock->sa;
                return a;
        }
@@ -80,22 +76,20 @@ TEST_F(utilitiesTest, IPv4Address) {
 
 TEST_F(utilitiesTest, IPv6Address) {
        const struct in6_addr address = {
-               0x20, 0x01, 0x0d, 0xb8,
-        0x85, 0xa3, 0x08, 0xd3, 
-        0x13, 0x19, 0x8a, 0x2e,
-        0x03, 0x70, 0x73, 0x34
-       };
+                                               0x20, 0x01, 0x0d, 0xb8,
+                                               0x85, 0xa3, 0x08, 0xd3, 
+                                               0x13, 0x19, 0x8a, 0x2e,
+                                               0x03, 0x70, 0x73, 0x34
+                                       };
+       const char * expected = "2001:db8:85a3:8d3:1319:8a2e:370:7334";
+       sockaddr_u      input;
+       addrinfo        inputA;
 
-       const char* expected =
-               "2001:db8:85a3:8d3:1319:8a2e:370:7334";
-
-       sockaddr_u input;
        input.sa6.sin6_family = AF_INET6;
        input.sa6.sin6_addr = address;
-
-       addrinfo inputA = CreateAddrinfo(&input);
-
        EXPECT_STREQ(expected, ss_to_str(&input));
+
+       inputA = CreateAddrinfo(&input);
        EXPECT_STREQ(expected, addrinfo_to_str(&inputA));
 }
 
index 373e6ea06bc7b9522cf08908d44fca0385b7e20c..6180ecb7ac90f9eb549747b26a03fff2d4bd6edc 100644 (file)
@@ -111,15 +111,15 @@ l_fp_output_dec (
  */
 char *
 addrinfo_to_str (
-               struct addrinfo *addr
-               )
+       struct addrinfo *addr
+       )
 {
-       char *buf = (char *) emalloc(sizeof(char) * INET6_ADDRSTRLEN);
-
-       getnameinfo(addr->ai_addr, addr->ai_addrlen, buf, 
-                       INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
+       sockaddr_u      s;
+       
+       memset(&s, 0, sizeof(s));
+       memcpy(&s, addr->ai_addr, min(sizeof(s), addr->ai_addrlen));
 
-       return buf;
+       return ss_to_str(&s);
 }
 
 /* Convert a sockaddr_u to a string containing the address in
@@ -129,14 +129,13 @@ addrinfo_to_str (
  */
 char *
 ss_to_str (
-               sockaddr_u *saddr
-               )
+       sockaddr_u *saddr
+       )
 {
-       char *buf = (char *) emalloc(sizeof(char) * INET6_ADDRSTRLEN);
-
-       getnameinfo(&saddr->sa, SOCKLEN(saddr), buf,
-                       INET6_ADDRSTRLEN, NULL, 0, NI_NUMERICHOST);
-
+       char *  buf;
+       
+       buf = emalloc(INET6_ADDRSTRLEN);
+       strncpy(buf, stoa(saddr), INET6_ADDRSTRLEN);
 
        return buf;
 }