Mercurial > hg > waaad
changeset 387:43c0e3f67958
Simplified macro
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Fri, 29 May 2009 12:57:22 +0900 |
parents | 31c6b1e0294d |
children | 1a4902b216f8 |
files | waaad/utils.h |
diffstat | 1 files changed, 13 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- 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 <string.h> #include <errno.h> #include <arpa/inet.h> +#include <sys/socket.h> +#include <netdb.h> /********************************************************************************************************/ /* 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)"; \ } \