The latest Windows SDKs don't support IPv6 when building for Windows 2000,

so we need to use the SDK emulation in that case.
This commit is contained in:
chris_kohlhoff 2008-02-02 07:33:02 +00:00
parent 21899133ea
commit 8a90ce1045

View File

@ -31,6 +31,10 @@
#if defined(ASIO_HAS_OLD_WIN_SDK)
// Emulation of types that are missing from old Platform SDKs.
//
// N.B. this emulation is also used if building for a Windows 2000 target with
// a recent (i.e. Vista or later) SDK, as the SDK does not provide IPv6 support
// in that case.
namespace asio {
namespace detail {
@ -54,9 +58,19 @@ struct sockaddr_storage_emulation
struct in6_addr_emulation
{
u_char s6_addr[16];
union
{
u_char Byte[16];
u_short Word[8];
} u;
};
#if !defined(s6_addr)
# define _S6_un u
# define _S6_u8 Byte
# define s6_addr _S6_un._S6_u8
#endif // !defined(s6_addr)
struct sockaddr_in6_emulation
{
short sin6_family;