changeset 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 f89b5a12d2af
files freeDiameter/cnxctx.c freeDiameter/p_cnx.c freeDiameter/sctp.c freeDiameter/tests/testcnx.c include/freeDiameter/libfreeDiameter.h
diffstat 5 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/freeDiameter/cnxctx.c	Fri Apr 02 14:49:42 2010 +0900
+++ b/freeDiameter/cnxctx.c	Fri Apr 02 15:27:46 2010 +0900
@@ -128,7 +128,7 @@
 	}
 
 	/* Create the socket */
-	CHECK_FCT_DO( fd_tcp_create_bind_server( &cnx->cc_socket, sa, sSSlen(sa) ), goto error );
+	CHECK_FCT_DO( fd_tcp_create_bind_server( &cnx->cc_socket, sa, sSAlen(sa) ), goto error );
 
 	/* Generate the name for the connection object */
 	{
--- a/freeDiameter/p_cnx.c	Fri Apr 02 14:49:42 2010 +0900
+++ b/freeDiameter/p_cnx.c	Fri Apr 02 15:27:46 2010 +0900
@@ -227,7 +227,7 @@
 		
 		switch (nc->proto) {
 			case IPPROTO_TCP:
-				cnx = fd_cnx_cli_connect_tcp((sSA *)&nc->ss, sSSlen(&nc->ss));
+				cnx = fd_cnx_cli_connect_tcp((sSA *)&nc->ss, sSAlen(&nc->ss));
 				break;
 #ifndef DISABLE_SCTP			
 			case IPPROTO_SCTP:
--- a/freeDiameter/sctp.c	Fri Apr 02 14:49:42 2010 +0900
+++ b/freeDiameter/sctp.c	Fri Apr 02 15:27:46 2010 +0900
@@ -713,7 +713,7 @@
 		else
 			s.sin6.sin6_port = htons(port);
 		
-		CHECK_SYS( bind(*sock, &s.sa, sSSlen(&s)) );
+		CHECK_SYS( bind(*sock, &s.sa, sSAlen(&s)) );
 		
 	} else {
 		/* Explicit endpoints to bind to from config */
--- a/freeDiameter/tests/testcnx.c	Fri Apr 02 14:49:42 2010 +0900
+++ b/freeDiameter/tests/testcnx.c	Fri Apr 02 15:27:46 2010 +0900
@@ -485,7 +485,7 @@
 		case IPPROTO_TCP:
 			{
 				struct fd_endpoint * ep = (struct fd_endpoint *)(eps.next);
-				cnx = fd_cnx_cli_connect_tcp( &ep->sa, sSSlen(&ep->ss) );
+				cnx = fd_cnx_cli_connect_tcp( &ep->sa, sSAlen(&ep->ss) );
 				CHECK( 1, (cnx ? 1 : 0) ^ cf->expect_failure );
 			}
 			break;
--- 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"