From 65359c791653a19c0d1465a25a5400bd76f4863d Mon Sep 17 00:00:00 2001 From: Hamish Coleman Date: Wed, 2 Aug 2023 19:40:03 +0100 Subject: [PATCH] Add a missing library function --- src/win32/edge_utils_win32.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/win32/edge_utils_win32.c b/src/win32/edge_utils_win32.c index 5c47efb..1ce6f21 100644 --- a/src/win32/edge_utils_win32.c +++ b/src/win32/edge_utils_win32.c @@ -23,6 +23,39 @@ /* ************************************** */ +#ifndef _WIN64 +/* + * This function was not included in windows until after Windows XP + */ + +const char *inet_ntop (int af, const void *src, char *dst, socklen_t size) { + if(af == AF_INET) { + struct sockaddr_in in; + memset(&in, 0, sizeof(in)); + + in.sin_family = AF_INET; + memcpy(&in.sin_addr, src, sizeof(in.sin_addr)); + getnameinfo((struct sockaddr *)&in,sizeof(in),dst,size,NULL,0,NI_NUMERICHOST); + return dst; + } + + if(af == AF_INET6) { + struct sockaddr_in6 in6; + memset(&in6, 0, sizeof(in6)); + + in6.sin6_family = AF_INET6; + memcpy(&in6.sin6_addr, src, sizeof(in6.sin6_addr)); + getnameinfo((struct sockaddr *)&in6,sizeof(in6),dst,size,NULL,0,NI_NUMERICHOST); + return dst; + } + + return NULL; +} + +#endif /* _WIN64 */ + +/* ************************************** */ + static DWORD* tunReadThread (LPVOID lpArg) { struct tunread_arg *arg = (struct tunread_arg*)lpArg;