[PATCH] Add support for multiplexed connections in dcerpc server

Julien Kerihuel j.kerihuel at openchange.org
Wed Mar 25 05:51:42 MDT 2015



On 25/03/15 05:27, Jeremy Allison wrote:
> On Tue, Mar 24, 2015 at 04:34:51PM +0100, Julien Kerihuel wrote:
>> 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.
> Unfortunately it doesn't apply to master.
>
> Julien, how about the version below ? Does that work for you ?
Hi Jeremi,

Works for me but did not apply cleanly to tag samba-4.1.17 without
patching dcerpc_server.h manually.

The DCESRV_CALL_STATE_FLAG_HEADER_SIGNING flag is still in use in this
release but has been removed in 79996cd1eb4855fbb780c10ff96cfab1c5e7c312
on master branch.


-- 
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: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150325/9ce4ad74/attachment.pgp>


More information about the samba-technical mailing list