The branch, master has been updated via 6a0ebc4 s3:messaging: protect use of msg_control with HAVE_STRUCT_MSGHDR_MSG_CONTROL via 65a6c31 build: rename HAVE_MSGHDR_MSG_ACCTRIGHTS to HAVE_STRUCT_MSGHDR_MSG_ACCTRIGHTS via 86be491 build: rename HAVE_MSGHDR_MSG_CONTROL to HAVE_STRUCT_MSGHDR_MSG_CONTROL via abedc71 vfs:aio_fork: simplify checking of MSG_CONTROL and MSG_ACCTRIGHTS from 51077c6 s3:smb2_server: call smbd_smb2_flush_send_queue() directly
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 6a0ebc45968e65fa65cb23582d109531733e8a0e Author: Michael Adam <ob...@samba.org> Date: Sat May 31 12:16:08 2014 +0200 s3:messaging: protect use of msg_control with HAVE_STRUCT_MSGHDR_MSG_CONTROL Signed-off-by: Michael Adam <ob...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Michael Adam <ob...@samba.org> Autobuild-Date(master): Tue Jun 3 01:14:17 CEST 2014 on sn-devel-104 commit 65a6c31d9d6467bf23875daa5bab8135f7b1d347 Author: Michael Adam <ob...@samba.org> Date: Sat May 31 12:05:50 2014 +0200 build: rename HAVE_MSGHDR_MSG_ACCTRIGHTS to HAVE_STRUCT_MSGHDR_MSG_ACCTRIGHTS for consistency. Signed-off-by: Michael Adam <ob...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 86be491912811502fa29720128341f91a38266c1 Author: Michael Adam <ob...@samba.org> Date: Sat May 31 12:04:05 2014 +0200 build: rename HAVE_MSGHDR_MSG_CONTROL to HAVE_STRUCT_MSGHDR_MSG_CONTROL So that we are consistent with the socket_wrapper define. Signed-off-by: Michael Adam <ob...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit abedc7116e8a096398e3f8e07b03ba832088e014 Author: Michael Adam <ob...@samba.org> Date: Sat May 31 11:58:01 2014 +0200 vfs:aio_fork: simplify checking of MSG_CONTROL and MSG_ACCTRIGHTS Signed-off-by: Michael Adam <ob...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/lib/unix_msg/unix_msg.c | 4 ++++ source3/modules/vfs_aio_fork.c | 23 +++++++++++------------ source3/wscript | 6 +++--- 3 files changed, 18 insertions(+), 15 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/lib/unix_msg/unix_msg.c b/source3/lib/unix_msg/unix_msg.c index bcabd28..602ecc6 100644 --- a/source3/lib/unix_msg/unix_msg.c +++ b/source3/lib/unix_msg/unix_msg.c @@ -244,8 +244,10 @@ static void unix_dgram_recv_handler(struct poll_watch *w, int fd, short events, msg = (struct msghdr) { .msg_iov = &iov, .msg_iovlen = 1, +#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL .msg_control = NULL, .msg_controllen = 0, +#endif }; received = recvmsg(fd, &msg, 0); @@ -509,8 +511,10 @@ static int unix_dgram_send(struct unix_dgram_ctx *ctx, const char *dst_sock, msg.msg_namelen = sizeof(addr); msg.msg_iov = discard_const_p(struct iovec, iov); msg.msg_iovlen = iovlen; +#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL msg.msg_control = NULL; msg.msg_controllen = 0; +#endif msg.msg_flags = 0; ret = sendmsg(ctx->sock, &msg, 0); diff --git a/source3/modules/vfs_aio_fork.c b/source3/modules/vfs_aio_fork.c index dc33031..97ec1cd 100644 --- a/source3/modules/vfs_aio_fork.c +++ b/source3/modules/vfs_aio_fork.c @@ -27,6 +27,10 @@ #include "lib/async_req/async_sock.h" #include "lib/util/tevent_unix.h" +#if !defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL) && !defined(HAVE_STRUCT_MSGHDR_MSG_ACCTRIGHTS) +# error Can not pass file descriptors +#endif + #undef recvmsg #ifndef MAP_FILE @@ -150,11 +154,13 @@ static ssize_t read_fd(int fd, void *ptr, size_t nbytes, int *recvfd) struct msghdr msg; struct iovec iov[1]; ssize_t n; -#ifndef HAVE_MSGHDR_MSG_CONTROL +#ifndef HAVE_STRUCT_MSGHDR_MSG_CONTROL int newfd; -#endif -#ifdef HAVE_MSGHDR_MSG_CONTROL + msg.msg_accrights = (caddr_t) &newfd; + msg.msg_accrightslen = sizeof(int); +#else + union { struct cmsghdr cm; char control[CMSG_SPACE(sizeof(int))]; @@ -163,13 +169,6 @@ static ssize_t read_fd(int fd, void *ptr, size_t nbytes, int *recvfd) msg.msg_control = control_un.control; msg.msg_controllen = sizeof(control_un.control); -#else -#if HAVE_MSGHDR_MSG_ACCTRIGHTS - msg.msg_accrights = (caddr_t) &newfd; - msg.msg_accrightslen = sizeof(int); -#else -#error Can not pass file descriptors -#endif #endif msg.msg_name = NULL; @@ -185,7 +184,7 @@ static ssize_t read_fd(int fd, void *ptr, size_t nbytes, int *recvfd) return(n); } -#ifdef HAVE_MSGHDR_MSG_CONTROL +#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL if ((cmptr = CMSG_FIRSTHDR(&msg)) != NULL && cmptr->cmsg_len == CMSG_LEN(sizeof(int))) { if (cmptr->cmsg_level != SOL_SOCKET) { @@ -219,7 +218,7 @@ static ssize_t write_fd(int fd, void *ptr, size_t nbytes, int sendfd) struct msghdr msg; struct iovec iov[1]; -#ifdef HAVE_MSGHDR_MSG_CONTROL +#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL union { struct cmsghdr cm; char control[CMSG_SPACE(sizeof(int))]; diff --git a/source3/wscript b/source3/wscript index 3b38d19..cf9d787 100644 --- a/source3/wscript +++ b/source3/wscript @@ -552,7 +552,7 @@ union { msg.msg_control = control_un.control; msg.msg_controllen = sizeof(control_un.control); ''', - 'HAVE_MSGHDR_MSG_CONTROL', + 'HAVE_STRUCT_MSGHDR_MSG_CONTROL', msg='Checking if we can use msg_control for passing file descriptors', headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h') conf.CHECK_CODE(''' @@ -561,7 +561,7 @@ int fd; msg.msg_acctrights = (caddr_t) &fd; msg.msg_acctrightslen = sizeof(fd); ''', - 'HAVE_MSGHDR_MSG_ACCTRIGHTS', + 'HAVE_STRUCT_MSGHDR_MSG_ACCTRIGHTS', msg='Checking if we can use msg_acctrights for passing file descriptors', headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h') @@ -1841,7 +1841,7 @@ main() { if conf.CONFIG_SET('HAVE_STATFS_F_FSID'): default_shared_modules.extend(TO_LIST('vfs_fileid')) - if (conf.CONFIG_SET('HAVE_MSGHDR_MSG_CONTROL') or conf.CONFIG_SET('HAVE_MSGHDR_MSG_ACCTRIGHTS')): + if (conf.CONFIG_SET('HAVE_STRUCT_MSGHDR_MSG_CONTROL') or conf.CONFIG_SET('HAVE_STRUCT_MSGHDR_MSG_ACCTRIGHTS')): default_shared_modules.extend(TO_LIST('vfs_aio_fork')) if Options.options.with_pthreadpool: -- Samba Shared Repository