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:
parent
6d3df65e88
commit
2063522623
@ -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,
|
||||
|
@ -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:
|
||||
|
21
src/host.h
21
src/host.h
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user