1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

[svn] Don't take the address of in.s_addr because that doesn't work on some

machines.
This commit is contained in:
hniksic 2003-11-02 15:48:45 -08:00
parent 6d3df65e88
commit 2063522623
3 changed files with 22 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
* host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr,
because that doesn't work on some machines.
2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
* connect.c (select_fd): Generalize the third argument into WAIT,

View File

@ -163,7 +163,8 @@ address_list_match_all (const struct address_list *al1,
{
case IPV4_ADDRESS:
if (ADDRESS_IPV4_IN_ADDR (ip1).s_addr
!= ADDRESS_IPV4_IN_ADDR (ip2).s_addr)
!=
ADDRESS_IPV4_IN_ADDR (ip2).s_addr)
return 0;
break;
case IPV6_ADDRESS:

View File

@ -56,7 +56,7 @@ typedef struct {
} type;
/* Address data union: ipv6 contains IPv6-related data (address and
scope), and ipv4 contains IPv4 address. */
scope), and ipv4 contains the IPv4 address. */
union {
#ifdef ENABLE_IPV6
struct {
@ -73,14 +73,23 @@ typedef struct {
} ip_address;
/* Because C doesn't support anonymous unions, access to ip_address
elements is clunky. Hence the accessors. */
elements is unwieldy. Hence the accessors.
#define ADDRESS_IPV6_IN6_ADDR(x) ((x)->u.ipv6.addr)
#define ADDRESS_IPV6_DATA(x) ((void *)&(x)->u.ipv6.addr.s6_addr)
#define ADDRESS_IPV6_SCOPE(x) ((x)->u.ipv6.scope_id)
The _ADDR accessors return the address as the struct in_addr or
in6_addr. The _DATA accessor returns a pointer to the address data
-- pretty much the same as the above, but cast to void*. The
_SCOPE accessor returns the address's scope_id, and makes sense
only when IPv6 and HAVE_SOCKADDR_IN6_SCOPE_ID are both defined. */
#define ADDRESS_IPV4_IN_ADDR(x) ((x)->u.ipv4.addr)
#define ADDRESS_IPV4_DATA(x) ((void *)&(x)->u.ipv4.addr.s_addr)
/* Don't use &x->u.ipv4.addr.s_addr because it can be #defined to a
bitfield, which you can't take an address of. */
#define ADDRESS_IPV4_DATA(x) ((void *)&(x)->u.ipv4.addr)
#define ADDRESS_IPV6_IN6_ADDR(x) ((x)->u.ipv6.addr)
#define ADDRESS_IPV6_DATA(x) ((void *)&(x)->u.ipv6.addr)
#define ADDRESS_IPV6_SCOPE(x) ((x)->u.ipv6.scope_id)
/* Flags for lookup_host */
#define LH_SILENT 0x0001