m4_include(libevents.m4)
m4_include(ib/config.m4)
+AC_CACHE_CHECK([for sin_len in sock],ctdb_cv_HAVE_SOCK_SIN_LEN,[
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>],
+[struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
+ctdb_cv_HAVE_SOCK_SIN_LEN=yes,ctdb_cv_HAVE_SOCK_SIN_LEN=no)])
+if test x"$ctdb_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
+ AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
+fi
+
AC_SUBST(EXTRA_OBJ)
AC_OUTPUT(Makefile)
set_nonblocking(tnode->fd);
+ ZERO_STRUCT(sock_out);
+#ifdef HAVE_SOCK_SIN_LEN
+ sock_out.sin_len = sizeof(sock_out);
+#endif
if (ctdb_tcp_get_address(ctdb, node->address.address, &sock_out.sin_addr) != 0) {
return;
}
* the remote side is actually routable in case CTDB traffic will run on
* a dedicated non-routeable network.
*/
+ ZERO_STRUCT(sock_in);
+#ifdef HAVE_SOCK_SIN_LEN
+ sock_in.sin_len = sizeof(sock_in);
+#endif
if (ctdb_tcp_get_address(ctdb, ctdb->address.address, &sock_in.sin_addr) != 0) {
return;
}
}
for (i=0;i<ctdb->num_nodes;i++) {
+ ZERO_STRUCT(sock);
+#ifdef HAVE_SOCK_SIN_LEN
+ sock.sin_len = sizeof(sock);
+#endif
sock.sin_port = htons(ctdb->nodes[i]->address.port);
sock.sin_family = PF_INET;
if (ctdb_tcp_get_address(ctdb, ctdb->nodes[i]->address.address,
return ctdb_tcp_listen_automatic(ctdb);
}
+ ZERO_STRUCT(sock);
+#ifdef HAVE_SOCK_SIN_LEN
+ sock.sin_len = sizeof(sock);
+#endif
sock.sin_port = htons(ctdb->address.port);
sock.sin_family = PF_INET;