diff --git a/include/netinet/in.h b/include/netinet/in.h index 7d4ee8044..bf6473db0 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -64,6 +64,27 @@ struct ip_mreq struct in_addr imr_interface; }; +/* + * IPv6 is not supportedn, but some programs need these declarations + * nevertheless; these declarations are based on + * http://www.opengroup.org/onlinepubs/000095399/basedefs/netinet/in.h.html + */ +struct in6_addr +{ + uint8_t s6_addr[16]; +}; + +struct sockaddr_in6 +{ + sa_family_t sin6_family; + in_port_t sin6_port; + uint32_t sin6_flowinfo; + struct in6_addr sin6_addr; + uint32_t sin6_scope_id; +}; + +#define INET6_ADDRSTRLEN 46 + /* Definitions that are not part of the Open Group Base Specifications */ #define IN_CLASSA(i) (((uint32_t)(i) & 0x80000000) == 0) #define IN_CLASSA_NET 0xff000000 diff --git a/include/sys/socket.h b/include/sys/socket.h index 35da6e434..85e16960d 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -87,4 +87,17 @@ _PROTOTYPE( int socket, (int _domain, int _type, int _protocol) ); #define PF_UNIX AF_UNIX #define PF_UNSPEC AF_UNSPEC +/* based on http://tools.ietf.org/html/rfc2553 */ +struct sockaddr_storage +{ + sa_family_t __ss_family; + char __ss_pad1[6]; +#ifdef __LONG_LONG_SUPPORTED + int64_t __ss_align; +#else + int32_t __ss_align[2]; +#endif + char __ss_pad2[112]; +}; + #endif /* SYS_SOCKET_H */