From 99eebf2f9679a80f94207350efee69671c4c9e70 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Wed, 5 May 2010 11:58:09 -0500 Subject: [PATCH] fix for Windows XP inet_ntop execution - you must compile with XP for support. --- src/switch_utils.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/switch_utils.c b/src/switch_utils.c index 6d58512d45..e0ecc3a7c9 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -1331,7 +1331,7 @@ static const char *switch_inet_ntop4(const unsigned char *src, char *dst, size_t return strcpy(dst, tmp); } -#if HAVE_SIN6 +#if HAVE_SIN6 || (defined(NTDDI_VERSION) && (NTDDI_VERSION < NTDDI_VISTA)) /* const char * * inet_ntop6(src, dst, size) * convert IPv6 binary address into presentation (printable) format @@ -1402,7 +1402,7 @@ static const char *switch_inet_ntop6(unsigned char const *src, char *dst, size_t *tp++ = ':'; /* Is this address an encapsulated IPv4? */ if (i == 6 && best.base == 0 && (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { - if (!inet_ntop4(src + 12, tp, sizeof tmp - (tp - tmp))) + if (!switch_inet_ntop4(src + 12, tp, sizeof tmp - (tp - tmp))) return (NULL); tp += strlen(tp); break; @@ -1488,7 +1488,11 @@ SWITCH_DECLARE(char *) get_addr6(char *buf, switch_size_t len, struct sockaddr_i *buf = '\0'; if (sa) { +#if defined(NTDDI_VERSION) && (NTDDI_VERSION < NTDDI_VISTA) + switch_inet_ntop6((unsigned char*)sa, buf, len); +#else inet_ntop(AF_INET6, sa, buf, len); +#endif } return buf;