24 lines
642 B
C
24 lines
642 B
C
#ifndef WIN32_LEAN_AND_MEAN
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
#undef __CRT__NO_INLINE
|
|
#define __CRT__NO_INLINE
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
|
|
#undef IN6_IS_ADDR_LOOPBACK
|
|
#define IN6_IS_ADDR_LOOPBACK(a) ( ((a)->s6_words[0] == 0) && \
|
|
((a)->s6_words[1] == 0) && \
|
|
((a)->s6_words[2] == 0) && \
|
|
((a)->s6_words[3] == 0) && \
|
|
((a)->s6_words[4] == 0) && \
|
|
((a)->s6_words[5] == 0) && \
|
|
((a)->s6_words[6] == 0) && \
|
|
((a)->s6_words[7] == 0x0100) )
|
|
|
|
int IN6ADDR_ISLOOPBACK(const struct sockaddr_in6 *a)
|
|
{
|
|
return ((a->sin6_family==AF_INET6) &&
|
|
IN6_IS_ADDR_LOOPBACK(&a->sin6_addr));
|
|
}
|