From e8273b5daf679343a62fe822c40e265e50caa940 Mon Sep 17 00:00:00 2001 From: Iswenzz Date: Fri, 17 Mar 2023 18:55:28 +0100 Subject: [PATCH] inet_pton: Fix for older compilers --- src/sys_net.c | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/sys_net.c b/src/sys_net.c index 6f3592b1..f163a295 100644 --- a/src/sys_net.c +++ b/src/sys_net.c @@ -108,30 +108,32 @@ #define IPV6_V6ONLY 27 // Treat wildcard bind as AF_INET6-only. #endif - // int inet_pton(int af, const char *src, void *dst) - // { - // struct sockaddr_storage sin; - // int addrSize = sizeof(sin); - // char address[256]; - // strncpy(address, src, sizeof(address)); - - // int rc = WSAStringToAddressA( address, af, NULL, (SOCKADDR*)&sin, &addrSize ); - // if(rc != 0) - // { - // return -1; - // } - // if(af == AF_INET) - // { - // *((struct in_addr *)dst) = ((struct sockaddr_in*)&sin)->sin_addr; - // return 1; - // } - // if(af == AF_INET6) - // { - // *((struct in_addr6 *)dst) = ((struct sockaddr_in6*)&sin)->sin6_addr; - // return 1; - // } - // return 0; - // } + #ifndef InetPtonA + int inet_pton(int af, const char *src, void *dst) + { + struct sockaddr_storage sin; + int addrSize = sizeof(sin); + char address[256]; + strncpy(address, src, sizeof(address)); + + int rc = WSAStringToAddressA( address, af, NULL, (SOCKADDR*)&sin, &addrSize ); + if(rc != 0) + { + return -1; + } + if(af == AF_INET) + { + *((struct in_addr *)dst) = ((struct sockaddr_in*)&sin)->sin_addr; + return 1; + } + if(af == AF_INET6) + { + *((struct in_addr6 *)dst) = ((struct sockaddr_in6*)&sin)->sin6_addr; + return 1; + } + return 0; + } + #endif #else