From ec9a7c2db833efacfd0692c658c2d38ed9f852ba Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Mon, 5 Jan 2015 07:13:37 -0500 Subject: [PATCH] Linux 3.19: Use mgs_iter in struct msghdr struct msghdr gets msg_iov replaced by msg_iter. Add a configure test and adjust the affected code. Change-Id: I9b9e3987e55a10e48087b318d98a5a7bb17a4612 Reviewed-on: http://gerrit.openafs.org/11647 Reviewed-by: Daria Brashear Tested-by: BuildBot --- acinclude.m4 | 1 + src/rx/LINUX/rx_knet.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 4b09e7561..3d7aaab29 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -918,6 +918,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h]) AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h]) AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h]) + AC_CHECK_LINUX_STRUCT([msghdr], [msg_iter], [socket.h]) AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h]) AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h]) AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h]) diff --git a/src/rx/LINUX/rx_knet.c b/src/rx/LINUX/rx_knet.c index a58947be5..ec1cd6026 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -225,8 +225,13 @@ osi_NetReceive(osi_socket so, struct sockaddr_in *from, struct iovec *iov, memcpy(tmpvec, iov, iovcnt * sizeof(struct iovec)); msg.msg_name = from; +#if defined(STRUCT_MSGHDR_HAS_MSG_ITER) + msg.msg_iter.iov = tmpvec; + msg.msg_iter.nr_segs = iovcnt; +#else msg.msg_iov = tmpvec; msg.msg_iovlen = iovcnt; +#endif msg.msg_control = NULL; msg.msg_controllen = 0; msg.msg_flags = 0; -- 2.39.5