diff options
Diffstat (limited to 'src/sys-socket.c')
-rw-r--r-- | src/sys-socket.c | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/src/sys-socket.c b/src/sys-socket.c deleted file mode 100644 index 97664115..00000000 --- a/src/sys-socket.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "base.h" -#include "sys-socket.h" - -#ifndef HAVE_INET_ATON -/* win32 has inet_addr instead if inet_aton */ -# ifdef HAVE_INET_ADDR -int inet_aton(const char *cp, struct in_addr *inp) { - struct in_addr a; - - a.s_addr = inet_addr(cp); - - if (INADDR_NONE == a.s_addr) { - return 0; - } - - inp->s_addr = a.s_addr; - - return 1; -} -# else -# error no inet_aton emulation found -# endif - -#endif - -#ifdef _WIN32 - -#include <winsock2.h> - -/* windows doesn't have inet_ntop */ - -/* -I have to look into this more. WSAAddressToString takes a sockaddr structure, which includes -the port number, so I must first test this stuff more carefully. For now, no IPV6 on windows. -You will notice that HAVE_IPV6 is never true for win32. -*/ - -const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) -{ - /* WSAAddressToString takes a full sockaddr, while inet_ntop only takes the address */ - struct sockaddr_in sock4; - struct sockaddr_in6 sock6; - DWORD addrLen = cnt; - int err = 0; - - /* src is either an in_addr or an in6_addr. */ - const struct in_addr *src4 = (const struct in_addr*) src; - const struct in6_addr *src6 = (const struct in6_addr*) src; - - int ipv6 = af == AF_INET6; - - // DebugBreak(); - - if ( ipv6 ) - { - sock6.sin6_family = AF_INET6; - sock6.sin6_port = 0; - sock6.sin6_addr = *src6; - } - else - { - sock4.sin_family = AF_INET; - sock4.sin_port = 0; - sock4.sin_addr = *src4; - } - - err = WSAAddressToStringA( - ipv6 ? (LPSOCKADDR) &sock6 : (LPSOCKADDR) &sock4, - ipv6 ? sizeof(sock6) : sizeof(sock4), - NULL, - dst, &addrLen ); - return err == 0 ? dst : NULL; -} - - -#endif |