diff liboping-1.1.0/configure.ac liboping-1.1.1/configure.ac 154a155,161 > if [ test "x$socket_needs_socket" = "xyes" ]; then > export CFLAGS="$CFLAGS -D_XPG4_2 -D__EXTENSIONS__" > fi > > use_xnet="no" > AC_CHECK_LIB(xnet,__xnet_recvmsg,[use_xnet="yes"],[]) > AM_CONDITIONAL(BUILD_WITH_LIBXNET, test "x$use_xnet" = "xyes") diff liboping-1.1.0/src/liboping.c liboping-1.1.1/src/liboping.c 23a24,27 > #if HAVE_SYS_SOCKET_H > # include > #endif > 28d31 < # include 35a39,43 > > #ifdef HAVE_STDINT_H > # include > #endif > 61,63d68 < #if HAVE_SYS_SOCKET_H < # include < #endif 99a105,114 > #ifdef HAVE_BROKEN_CMSG_FIRSTHDR > /* Check that msg_controllen is large enough. */ > #define ZCMSG_FIRSTHDR(mhdr) \ > (((size_t)((mhdr)->msg_controllen) >= sizeof(struct cmsghdr)) ? \ > CMSG_FIRSTHDR(mhdr) : (struct cmsghdr *)NULL) > #else /* HAVE_BROKEN_CMSG_FIRSTHDR */ > #define ZCMSG_FIRSTHDR(M) CMSG_FIRSTHDR(M) > #endif /* HAVE_BROKEN_CMSG_FIRSTHDR */ > > 340a356,357 > > ptr->recv_ttl=ip_hdr->ip_ttl; 435a453 > char msgname[16]; 445a464,465 > memset (&control_buffer, 0, sizeof (control_buffer)); > memset (&payload_buffer, 0, sizeof (payload_buffer)); 447,448c467,468 < msghdr.msg_name = NULL; < msghdr.msg_namelen = 0; --- > msghdr.msg_name = msgname; > msghdr.msg_namelen = sizeof(msgname); 455,458c475,478 < /* flags; this is an output only field.. */ < msghdr.msg_flags = 0; < < payload_buffer_len = recvmsg (fd, &msghdr, /* flags = */ 0); --- > #ifdef MSG_XPG4_2 > msghdr.msg_flags=MSG_XPG4_2; > #endif > payload_buffer_len = recvmsg (fd, &msghdr, 0); 471c491 < family = -1; --- > family = ph->addrfamily; 473c493 < for (cmsg = CMSG_FIRSTHDR (&msghdr); /* {{{ */ --- > for (cmsg = ZCMSG_FIRSTHDR (&msghdr); /* {{{ */ 550a571,572 > if (recv_ttl>=0) host->recv_ttl = recv_ttl; > 554,555d575 < host->recv_ttl = recv_ttl;