changeset 245:6a71c3f3ab77

bind on FreeBSD is more sensitive...
author Sebastien Decugis <sdecugis@nict.go.jp>
date Fri, 02 Apr 2010 14:49:42 +0900
parents 63fef1e56bc4
children 6418a188c1b5
files freeDiameter/cnxctx.c freeDiameter/sctp.c include/freeDiameter/libfreeDiameter.h
diffstat 3 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/freeDiameter/cnxctx.c	Fri Apr 02 14:26:41 2010 +0900
+++ b/freeDiameter/cnxctx.c	Fri Apr 02 14:49:42 2010 +0900
@@ -128,7 +128,7 @@
 	}
 
 	/* Create the socket */
-	CHECK_FCT_DO( fd_tcp_create_bind_server( &cnx->cc_socket, sa, sizeof(sSS) ), goto error );
+	CHECK_FCT_DO( fd_tcp_create_bind_server( &cnx->cc_socket, sa, sSSlen(sa) ), goto error );
 
 	/* Generate the name for the connection object */
 	{
--- a/freeDiameter/sctp.c	Fri Apr 02 14:26:41 2010 +0900
+++ b/freeDiameter/sctp.c	Fri Apr 02 14:49:42 2010 +0900
@@ -713,7 +713,7 @@
 		else
 			s.sin6.sin6_port = htons(port);
 		
-		CHECK_SYS( bind(*sock, &s.sa, sizeof(s)) );
+		CHECK_SYS( bind(*sock, &s.sa, sSSlen(&s)) );
 		
 	} else {
 		/* Explicit endpoints to bind to from config */
--- a/include/freeDiameter/libfreeDiameter.h	Fri Apr 02 14:26:41 2010 +0900
+++ b/include/freeDiameter/libfreeDiameter.h	Fri Apr 02 14:49:42 2010 +0900
@@ -454,8 +454,8 @@
 
 /* The sockaddr length of a sSS structure */
 #define sSSlen( _ss_ )	\
-	( (socklen_t) ( ((_ss_)->ss_family == AF_INET) ? (sizeof(sSA4)) :		\
-				(((_ss_)->ss_family == AF_INET6) ? (sizeof(sSA6)) :	\
+	( (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 */
"Welcome to our mercurial repository"