[PATCH] Add support for multiplexed connections in dcerpc server

Julien Kerihuel j.kerihuel at openchange.org
Tue Mar 24 09:34:51 MDT 2015


Good afternoon all,

Attached is a patch to add support for multiplexed connections in dcerpc
server. The implementation scope is similar to
DCESRV_CALL_STATE_FLAG_ASYNC, which means that the endpoint defines
whether it supports the flag or not by adding it to dcesrv_call_state
state_flags.

Context: Microsoft Exchange is implementing a DCERPC endpoint server
called async_emsmdb with a single asynchronous call named
EcDoAyncWaitEx. When Outlook sends a EcDoAsyncWaitEx request, the server
does not reply  unless there is either a notification for Outlook to
process or the timeout of 5 minutes is reached. Without this patch,
Microsoft Outlook clients block and do not move further with any of the
existing connections from DCERPC altered context unless the call to
EcDoAsyncWaitEx actually returns. With this patch, Outlook operates
properly and as expected.

I have identified that implementing this multiplexed connection behavior
was both required when:

    1. initializing a new connection, hence dcesrv_bind

    2. when altering an existing context, hence dcesrv_alter. However,
    in this specific case we don't have existing state_flags on the
    connection. It is therefore necessary to save  and retrieving the
    flags from the existing context to decide whether or not the
    DCERPC_PFC_FLAG_CONC_MPX should be applied to the state_flags of the
    current connection.

If you are happy with this patch, I would really appreciate if it could
also be applied to 4.1.X series.

Cheers,
Julien.

-- 
Julien Kerihuel
j.kerihuel at openchange.org
OpenChange Project Founder

Twitter: http://twitter.com/jkerihuel

GPG Fingerprint: 0B55 783D A781 6329 108A  B609 7EF6 FE11 A35F 1F79

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-multiplex-state-to-dcerpc-flags-and-control-over.patch
Type: text/x-patch
Size: 2733 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150324/111c310d/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150324/111c310d/attachment.pgp>


More information about the samba-technical mailing list