# HG changeset patch # User Sebastien Decugis # Date 1243569442 -32400 # Node ID 43c0e3f6795860eb8f5d64361e4a3fda56e98868 # Parent 31c6b1e0294d16147af5c15e9cb39f2262fee7c5 Simplified macro diff -r 31c6b1e0294d -r 43c0e3f67958 waaad/utils.h --- a/waaad/utils.h Fri May 29 12:57:01 2009 +0900 +++ b/waaad/utils.h Fri May 29 12:57:22 2009 +0900 @@ -48,6 +48,8 @@ #include #include #include +#include +#include /********************************************************************************************************/ /* Some debug stuff */ @@ -188,32 +190,17 @@ sSA * __sa = (sSA *)(sa); \ char *__str, __addrbuf[INET6_ADDRSTRLEN]; \ if (__sa) { \ - switch (__sa->sa_family) { \ - case AF_INET: \ - { \ - sSA4 *__sin = (sSA4 *)__sa; \ - __str = (char *)inet_ntop(AF_INET, \ - &__sin->sin_addr.s_addr,\ - __addrbuf, \ - INET6_ADDRSTRLEN); \ - } \ - break; \ - case AF_INET6: \ - { \ - sSA6 *__s6 = (sSA6 *)__sa; \ - __str = (char *)inet_ntop(AF_INET6, \ - &__s6->sin6_addr.s6_addr,\ - __addrbuf, \ - INET6_ADDRSTRLEN); \ - } \ - break; \ - default: \ - snprintf(__addrbuf, \ - INET6_ADDRSTRLEN, \ - "Unknown AF: %d", \ - __sa->sa_family); \ - __str = __addrbuf; \ - } \ + int __rc = getnameinfo(__sa, \ + sizeof(sSS), \ + __addrbuf, \ + sizeof(__addrbuf), \ + NULL, \ + 0, \ + 0); \ + if (__rc) \ + __str = (char *)gai_strerror(__rc); \ + else \ + __str = &__addrbuf[0]; \ } else { \ __str = "(NULL / ANY)"; \ } \