[REVIEW REQUEST] recvmsg in socket_wrapper
asn at samba.org
Mon Jan 20 14:30:17 MST 2014
On Monday 20 January 2014 21:10:48 Stefan Metzmacher wrote:
> Hi Andreas,
> >>> http://git.cryptomilk.org/projects/socket_wrapper.git/log/?h=recvmsg
> >> Thanks! It's nice to see that my work is finally finished:-)
> >> However I don't see were you transfer the 'struct socket_info'
> >> transparently while doing fd-passing. Otherwise it's not possible to
> >> pass socket fds across to another process.
> > Well, the fd-passing is handled in the kernel. I can't fake the kernel
> > internals here :) That's why you can only pass fds on the local system
> > over
> > unix sockets.
> We need be able to test fd-passing of AF_INET/AF_INET6 sockets
> from one process to another process on the same system, while
> passing it over a AF_UNIX socket between the two processes.
> and getpeername() and getsockname() need to return the same
> in both processes.
Ok, so in swrap_sendmsg_before() we need to either send a special packet first
or we add cmsg structure to msg_control.
In swrap_recv_before() we read the information, allocate a socket info
structure and fill it.
> We may need to pass more additional stuff via the socket
> and hide it from the caller.
> We need that for 2 things:
> - dcerpc association group support with a prefork process model
> any process accepts an incoming connection and looks at
> the assoc_group_id field in the dcerpc bind request,
> if it's not 0, it indicates the wish to join an existing
> association. Then we need to hand over the connection
> to the process that already handles the association.
> - smb 3.0 multi-channel uses a similar model, there we need to
> look at the client_guid in the negprot request and hand over
> the connection to the smbd process that already handles that
> client (if there's already such a process).
> >> Otherwise I think it looks good, can you also backport this
> >> to the current samba socket_wrapper code, I'd like to have that
> >> also more or less complete before we remove/replace it with your
> >> new code.
> > I can take a look.
Andreas Schneider GPG-ID: CC014E3D
Samba Team asn at samba.org
More information about the samba-technical