master
 1#ifndef WIN32_LEAN_AND_MEAN
 2#define WIN32_LEAN_AND_MEAN
 3#endif
 4#undef  __CRT__NO_INLINE
 5#define __CRT__NO_INLINE
 6#include <winsock2.h>
 7#include <ws2tcpip.h>
 8
 9#undef  IN6_IS_ADDR_LOOPBACK
10#define IN6_IS_ADDR_LOOPBACK(a)		( ((a)->s6_words[0] == 0) &&	\
11					  ((a)->s6_words[1] == 0) &&	\
12					  ((a)->s6_words[2] == 0) &&	\
13					  ((a)->s6_words[3] == 0) &&	\
14					  ((a)->s6_words[4] == 0) &&	\
15					  ((a)->s6_words[5] == 0) &&	\
16					  ((a)->s6_words[6] == 0) &&	\
17					  ((a)->s6_words[7] == 0x0100) )
18
19int IN6ADDR_ISLOOPBACK(const struct sockaddr_in6 *a)
20{
21	return ((a->sin6_family==AF_INET6) &&
22		IN6_IS_ADDR_LOOPBACK(&a->sin6_addr));
23}