From 9adc7cf27588845988dc269bf234f7cec70b48cb Mon Sep 17 00:00:00 2001 From: hniksic Date: Fri, 6 Feb 2004 08:59:54 -0800 Subject: [PATCH] [svn] Zero out sockaddr_in/sockaddr_in6. Apparently BSD-derived stacks need this when binding a socket to local address. --- src/ChangeLog | 6 ++++++ src/connect.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 993f05bf..d40523b9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2004-02-06 Hrvoje Niksic + + * 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 * hash.c: Make the file compilable outside Wget source tree when diff --git a/src/connect.c b/src/connect.c index fd3bbb92..ffa33cc0 100644 --- a/src/connect.c +++ b/src/connect.c @@ -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); -- 2.39.2