1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/lib/messaging
Volker Lendecke cf0c773ca5 messaging: Fix receiving file descriptors
Don't close unconsumed file descriptors in messaging_recv_cb(). Via
multiple registrations on different tevent contexts we might call
messaging_recv_cb() multiple times: All but the first tevent context
handled in the loop in msg_dgm_ref_recv() will not see file
descriptors anymore, it will just get a -1, even if the first
reference had no receiver interested in the fds.

Change the API such that consumers can set the file descriptor to -1
if it's consumed. If nobody wanted them, do the close where they were
created via recvmsg, in messages_dgm.c.

If you want multiple handlers to consume the file descriptors, you
should dup() them in the filter function handed to
messaging_filtered_read_send and save the duplicate in your private
data for later consumption.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Fri Mar 19 08:18:26 UTC 2021 on sn-devel-184
2021-03-19 08:18:26 +00:00
..
messages_dgm_ref.c lib/messaging: Move messages_dgm out of source3 2020-05-06 00:06:40 +00:00
messages_dgm_ref.h lib/messaging: Move messages_dgm out of source3 2020-05-06 00:06:40 +00:00
messages_dgm.c messaging: Fix receiving file descriptors 2021-03-19 08:18:26 +00:00
messages_dgm.h lib/messaging: Move messages_dgm out of source3 2020-05-06 00:06:40 +00:00
wscript_build lib/messaging: Move messages_dgm out of source3 2020-05-06 00:06:40 +00:00