]> sjero.net Git - wget/commitdiff
[svn] Zero out sockaddr_in/sockaddr_in6. Apparently BSD-derived stacks need this
authorhniksic <devnull@localhost>
Fri, 6 Feb 2004 16:59:54 +0000 (08:59 -0800)
committerhniksic <devnull@localhost>
Fri, 6 Feb 2004 16:59:54 +0000 (08:59 -0800)
when binding a socket to local address.

src/ChangeLog
src/connect.c

index 993f05bf939e0f9c63594f9e3cf627553edc1505..d40523b9ef53005b896875e49f6f28360f2b4a4f 100644 (file)
@@ -1,3 +1,9 @@
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (sockaddr_set_data): Zero out
+       sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
+       when binding a socket to local address.
+
 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * hash.c: Make the file compilable outside Wget source tree when
index fd3bbb92a9d778be85b1174efc0acdb94e03b492..ffa33cc0427a859405e71ad067b13b449f523d1b 100644 (file)
@@ -87,6 +87,7 @@ sockaddr_set_data (struct sockaddr *sa, const ip_address *ip, int port)
     case IPV4_ADDRESS:
       {
        struct sockaddr_in *sin = (struct sockaddr_in *)sa;
+       xzero (*sin);
        sin->sin_family = AF_INET;
        sin->sin_port = htons (port);
        sin->sin_addr = ADDRESS_IPV4_IN_ADDR (ip);
@@ -96,6 +97,7 @@ sockaddr_set_data (struct sockaddr *sa, const ip_address *ip, int port)
     case IPV6_ADDRESS:
       {
        struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
+       xzero (*sin6);
        sin6->sin6_family = AF_INET6;
        sin6->sin6_port = htons (port);
        sin6->sin6_addr = ADDRESS_IPV6_IN6_ADDR (ip);