[PATCH] Add support for multiplexed connections in dcerpc server

Jeremy Allison jra at samba.org
Wed Mar 25 13:15:26 MDT 2015


On Wed, Mar 25, 2015 at 12:51:42PM +0100, Julien Kerihuel wrote:
> 
> 
> 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.

Yes, that's the point. We need to get this into master first, then
we can back-port to 4.2.x and 4.1.x.

What I was asking you (and all reviewers) is if this is ok to
push to master ?

Then we'll log a bug and get a back-port done.

Jeremy.


More information about the samba-technical mailing list