On Thu, Jan 23, 2020 at 11:43:04AM +0000, Daniel P. Berrangé wrote: > This is a simplified variant of gnulib's passfd module > without the portability code that we do not require. > > Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> > --- > src/libvirt_private.syms | 5 ++ > src/qemu/qemu_interface.c | 4 +- > src/rpc/virnetsocket.c | 5 +- > src/util/virfile.c | 5 +- > src/util/virsocket.c | 142 +++++++++++++++++++++++++++++++++++++- > src/util/virsocket.h | 3 + > 6 files changed, 154 insertions(+), 10 deletions(-) [...] > diff --git a/src/util/virsocket.c b/src/util/virsocket.c > index 96b9ece2b7..0e3775ac44 100644 > --- a/src/util/virsocket.c > +++ b/src/util/virsocket.c > @@ -19,10 +19,12 @@ > #include <config.h> > > #include "virsocket.h" > +#include "virutil.h" > +#include "virfile.h" > > -#ifdef WIN32 > +#include <fcntl.h> > > -# include <fcntl.h> > +#ifdef WIN32 > > # define FD2SK(fd) _get_osfhandle(fd) > # define SK2FD(sk) (_open_osfhandle((intptr_t) (sk), O_RDWR | O_BINARY)) > @@ -365,3 +367,139 @@ vir_socket(int domain, int type, int protocol) > } > > #endif /* WIN32 */ > + > +/* The code that uses CMSG_FIRSTHDR is enabled on > + Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD, AIX, OSF/1, Cygwin. > + The code that uses HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS is enabled on > + HP-UX, IRIX, Solaris. */ > + > +/* MSG_CMSG_CLOEXEC is defined only on Linux, as of 2011. */ > +#ifndef MSG_CMSG_CLOEXEC > +# define MSG_CMSG_CLOEXEC 0 > +#endif > + > +#ifndef WIN32 > +/* virSocketSendFD sends the file descriptor fd along the socket > + to a process calling recvfd on the other end. s/recvfd/virSocketRecvFD/ Otherwise looks good compared to passfd GNULIB module. Reviewed-by: Pavel Hrdina <phrdina@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature