initialising without names is not possible because there are hidden __padding fields, so the order of args is wrong. -- diff --git a/src/fping.c b/src/fping.c index e26b216..d499689 100644 --- a/src/fping.c +++ b/src/fping.c @@ -1948,17 +1948,17 @@ int receive_packet(int64_t wait_time, int recv_len; static unsigned char msg_control[40]; struct iovec msg_iov = { - reply_buf, - reply_buf_len + .iov_base = reply_buf, + .iov_len = reply_buf_len }; struct msghdr recv_msghdr = { - reply_src_addr, - reply_src_addr_len, - &msg_iov, - 1, - &msg_control, - sizeof(msg_control), - 0 + .msg_name = reply_src_addr, + .msg_namelen = reply_src_addr_len, + .msg_iov = &msg_iov, + .msg_iovlen = 1, + .msg_control = &msg_control, + .msg_controllen = sizeof(msg_control), + .msg_flags = 0 }; #if HAVE_SO_TIMESTAMPNS struct cmsghdr* cmsg;