]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
findinterface cleanup and IPv4/IPv6 fixes
authorDanny Mayer <mayer@ntp.org>
Tue, 3 Aug 2004 02:19:13 +0000 (22:19 -0400)
committerDanny Mayer <mayer@ntp.org>
Tue, 3 Aug 2004 02:19:13 +0000 (22:19 -0400)
bk: 410ef621uW5zrjTE8HVLvRmdy8OEsQ

configure.in
libntp/ntp_rfc2553.c
ntpd/ntp_io.c

index f23a4e369a2c737ea598f23ce4c616bc7524bd53..5ff490f2da2b91300816543a5613df02feacb34c 100644 (file)
@@ -798,6 +798,8 @@ case "$host" in
 esac
 AC_CHECK_FUNCS(hstrerror)
 AC_CHECK_FUNC(inet_ntop, [], [AC_DEFINE(ISC_PLATFORM_NEEDNTOP, 1, [ISC: provide inet_ntop()])])
+AC_CHECK_FUNC(inet_pton, [], [AC_DEFINE(ISC_PLATFORM_NEEDPTON, 1, [ISC: provide inet_pton()])])
+AC_CHECK_FUNC(inet_aton, [], [AC_DEFINE(ISC_PLATFORM_NEEDATON, 1, [ISC: provide inet_aton()])])
 AC_CHECK_FUNCS(K_open kvm_open memcpy memmove memset)
 case "$host" in
  *-*-sco3.2v5.0.*)
index 21333889c71023394556b5b71075865dbe52771c..4c6257786c5e1f7f351ed01a477d84f75e23919b 100644 (file)
@@ -145,7 +145,7 @@ getaddrinfo (const char *nodename, const char *servname,
                }
                ai->ai_addrlen = sizeof(struct sockaddr_storage);
                sockin = (struct sockaddr_in *)ai->ai_addr;
-               sockin->sin_family = ai->ai_family;
+               sockin->sin_family = (short) ai->ai_family;
                sockin->sin_addr.s_addr = htonl(INADDR_ANY);
 #ifdef HAVE_SA_LEN_IN_STRUCT_SOCKADDR
                ai->ai_addr->sa_len = SOCKLEN(ai->ai_addr);
@@ -157,7 +157,13 @@ getaddrinfo (const char *nodename, const char *servname,
                        freeaddrinfo(ai);
                        return (EAI_SERVICE);
                }
-               memcpy(ai->ai_addr->sa_data, &ntpport, sizeof(short));
+               /*
+                * Set up the port number
+                */
+               if (ai->ai_family == AF_INET)
+                       ((struct sockaddr_in *)ai->ai_addr)->sin_port = ntpport;
+               else if (ai->ai_family == AF_INET6)
+                       ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = ntpport;
        }
        *res = ai;
        return (0);
index c7ffaac2ffac406b16cd46d1c98cb081b11b196a..1620192d9b6ec46318b496077483d55bbdc138a3 100644 (file)
@@ -2001,11 +2001,10 @@ findinterface(
        struct sockaddr_storage saddr;
        int saddrlen;
        u_int32 amask, imask;
-       u_int32 laddr, iaddr, maddr;
 
        /*
         * If there is only one outgoing interface we already know the interface
-        *
+        */
        if (addr->ss_family == AF_INET && outifaceipv4 != -1) {
                return (&inter_list[outifaceipv4]);
        }