diff options
author | Thomas E. Dickey <dickey@invisible-island.net> | 2018-05-16 23:26:54 +0000 |
---|---|---|
committer | Thomas E. Dickey <dickey@invisible-island.net> | 2018-05-16 23:26:54 +0000 |
commit | 47026439e28cec53560b90f6d3e7e32c6b65c0e0 (patch) | |
tree | dbbf7018a2f0f9515199bdac099bb4a70ef86f5d /WWW/Library/Implementation/www_tcp.h | |
parent | 95c887eee01b9e2a376e18ed178e32c2bccf3ff5 (diff) | |
download | lynx-snapshots-47026439e28cec53560b90f6d3e7e32c6b65c0e0.tar.gz |
snapshot of project "lynx", label v2-8-9dev_18d
Diffstat (limited to 'WWW/Library/Implementation/www_tcp.h')
-rw-r--r-- | WWW/Library/Implementation/www_tcp.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/WWW/Library/Implementation/www_tcp.h b/WWW/Library/Implementation/www_tcp.h index 29b47adf..8a081a5a 100644 --- a/WWW/Library/Implementation/www_tcp.h +++ b/WWW/Library/Implementation/www_tcp.h @@ -1,5 +1,5 @@ /* System dependencies in the W3 library - * $LynxId: www_tcp.h,v 1.54 2013/07/20 14:08:29 tom Exp $ + * $LynxId: www_tcp.h,v 1.59 2018/05/16 20:31:43 tom Exp $ * SYSTEM DEPENDENCIES @@ -970,12 +970,19 @@ typedef TYPE_FD_SET fd_set; #endif #endif /* HAVE_GETADDRINFO && ENABLE_IPV6 */ +typedef union { + struct sockaddr_in soc_in; + struct sockaddr soc_address; +#ifdef INET6 + struct sockaddr_storage soc_storage; +#endif +} LY_SOCKADDR; + #ifdef INET6 typedef struct sockaddr_storage SockA; -#ifdef SIN6_LEN -#define SOCKADDR_LEN(soc_address) (((struct sockaddr *)&soc_address)->sa_len) -#else +#define SOCKADDR_OF(param) (&((param).soc_address)) + #ifndef SA_LEN #define SA_LEN(x) (((x)->sa_family == AF_INET6) \ ? sizeof(struct sockaddr_in6) \ @@ -983,12 +990,17 @@ typedef struct sockaddr_storage SockA; ? sizeof(struct sockaddr_in) \ : sizeof(struct sockaddr))) /* AF_UNSPEC? */ #endif -#define SOCKADDR_LEN(soc_address) (socklen_t) (SA_LEN((struct sockaddr *)&soc_address)) + +#ifdef SIN6_LEN +#define SOCKADDR_LEN(param) (SOCKADDR_OF(param)->sa_len) +#else +#define SOCKADDR_LEN(param) (socklen_t) SA_LEN(SOCKADDR_OF(param)) #endif /* SIN6_LEN */ #else typedef struct sockaddr_in SockA; -#define SOCKADDR_LEN(soc_address) sizeof(soc_address) +#define SOCKADDR_OF(param) ((struct sockaddr *)&(param)) +#define SOCKADDR_LEN(param) sizeof(param) #endif /* INET6 */ #ifndef MAXHOSTNAMELEN |