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>
|
2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
* connect.c (select_fd): Generalize the third argument into WAIT,
|
* 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:
|
case IPV4_ADDRESS:
|
||||||
if (ADDRESS_IPV4_IN_ADDR (ip1).s_addr
|
if (ADDRESS_IPV4_IN_ADDR (ip1).s_addr
|
||||||
!= ADDRESS_IPV4_IN_ADDR (ip2).s_addr)
|
!=
|
||||||
|
ADDRESS_IPV4_IN_ADDR (ip2).s_addr)
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case IPV6_ADDRESS:
|
case IPV6_ADDRESS:
|
||||||
|
21
src/host.h
21
src/host.h
@ -56,7 +56,7 @@ typedef struct {
|
|||||||
} type;
|
} type;
|
||||||
|
|
||||||
/* Address data union: ipv6 contains IPv6-related data (address and
|
/* Address data union: ipv6 contains IPv6-related data (address and
|
||||||
scope), and ipv4 contains IPv4 address. */
|
scope), and ipv4 contains the IPv4 address. */
|
||||||
union {
|
union {
|
||||||
#ifdef ENABLE_IPV6
|
#ifdef ENABLE_IPV6
|
||||||
struct {
|
struct {
|
||||||
@ -73,14 +73,23 @@ typedef struct {
|
|||||||
} ip_address;
|
} ip_address;
|
||||||
|
|
||||||
/* Because C doesn't support anonymous unions, access to 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)
|
The _ADDR accessors return the address as the struct in_addr or
|
||||||
#define ADDRESS_IPV6_DATA(x) ((void *)&(x)->u.ipv6.addr.s6_addr)
|
in6_addr. The _DATA accessor returns a pointer to the address data
|
||||||
#define ADDRESS_IPV6_SCOPE(x) ((x)->u.ipv6.scope_id)
|
-- 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_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 */
|
/* Flags for lookup_host */
|
||||||
#define LH_SILENT 0x0001
|
#define LH_SILENT 0x0001
|
||||||
|
Loading…
Reference in New Issue
Block a user