Mercurial > hg > freeDiameter
diff include/freeDiameter/libfreeDiameter.h @ 246:6418a188c1b5
getnameinfo is also more sensitive on freeBSD
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Fri, 02 Apr 2010 15:27:46 +0900 |
parents | 6a71c3f3ab77 |
children | 5df55136361b |
line wrap: on
line diff
--- a/include/freeDiameter/libfreeDiameter.h Fri Apr 02 14:49:42 2010 +0900 +++ b/include/freeDiameter/libfreeDiameter.h Fri Apr 02 15:27:46 2010 +0900 @@ -271,13 +271,19 @@ #define sSA4 struct sockaddr_in #define sSA6 struct sockaddr_in6 +/* The sockaddr length of a sSS structure */ +#define sSAlen( _sa_ ) \ + ( (socklen_t) ( (((sSA *)_sa_)->sa_family == AF_INET) ? (sizeof(sSA4)) : \ + ((((sSA *)_sa_)->sa_family == AF_INET6) ? (sizeof(sSA6)) : \ + 0 ) ) ) + /* Dump one sockaddr Node information */ #define sSA_DUMP_NODE( sa, flag ) { \ sSA * __sa = (sSA *)(sa); \ char __addrbuf[INET6_ADDRSTRLEN]; \ if (__sa) { \ int __rc = getnameinfo(__sa, \ - sizeof(sSS), \ + sSAlen(__sa), \ __addrbuf, \ sizeof(__addrbuf), \ NULL, \ @@ -298,7 +304,7 @@ char __servbuf[32]; \ if (__sa) { \ int __rc = getnameinfo(__sa, \ - sizeof(sSS), \ + sSAlen(__sa), \ __addrbuf, \ sizeof(__addrbuf), \ __servbuf, \ @@ -452,12 +458,6 @@ "Unknown")) #endif /* DISABLE_SCTP */ -/* The sockaddr length of a sSS structure */ -#define sSSlen( _ss_ ) \ - ( (socklen_t) ( (((sSS *)_ss_)->ss_family == AF_INET) ? (sizeof(sSA4)) : \ - ((((sSS *)_ss_)->ss_family == AF_INET6) ? (sizeof(sSA6)) : \ - 0 ) ) ) - /* Define the value of IP loopback address */ #ifndef INADDR_LOOPBACK #define INADDR_LOOPBACK inet_addr("127.0.0.1")