swrap: add basic support for fd-passing via SCM_RIGHTS
authorStefan Metzmacher <metze@samba.org>
Mon, 29 Jun 2020 12:10:54 +0000 (14:10 +0200)
committerAndreas Schneider <asn@samba.org>
Tue, 2 Feb 2021 09:23:33 +0000 (10:23 +0100)
commitf69ed59e64acac52c1f8b3f8c7a76c5db0bc5877
tree8a45d924a42e7e4d13928c3d193754535329460c
parent66a5bef7f9aac4d70124bc8efec72dcd434c660a
swrap: add basic support for fd-passing via SCM_RIGHTS

We only allow passing up to 6 fds in a single sendmsg call,
in order to keep the logic simple.

That's more than enough for Samba's use of fd-passing,
there we only pass a single fd and the fd will be
closed in the sender on success. It means it's ok
to keep the socket_info.io.pck_{snd,rcv} fields per process
and the PCAP generation will still work as expected.

If these constraints turn out to be a problem for other applications,
we need to change to a more complex design and move the socket_info array
into a shared memory file and use shared robust mutexes.

But for now we just want to support multi-channel testing in Samba.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11899

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
doc/socket_wrapper.1
doc/socket_wrapper.1.txt
src/socket_wrapper.c
tests/CMakeLists.txt