# HG changeset patch # User Sebastien Decugis # Date 1270187382 -32400 # Node ID 6a71c3f3ab779e981fe804383836129d67b2e292 # Parent 63fef1e56bc46db5f91678379e472ec8b7d2c867 bind on FreeBSD is more sensitive... diff -r 63fef1e56bc4 -r 6a71c3f3ab77 freeDiameter/cnxctx.c --- 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 */ { diff -r 63fef1e56bc4 -r 6a71c3f3ab77 freeDiameter/sctp.c --- 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 */ diff -r 63fef1e56bc4 -r 6a71c3f3ab77 include/freeDiameter/libfreeDiameter.h --- 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 */