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")
"Welcome to our mercurial repository"