Yes, the policy in EcDoAsyncConnectEx reply and EcDoAsyncWaitEx request are 
identical at the proxy-server connection level.  

Murray

From: Julien Kerihuel 
Sent: Wednesday, June 17, 2015 9:06 AM
To: devel@lists.openchange.org 
Subject: Re: [openchange][devel] Proxying in AsyncEMSMDB




On 17/06/15 05:05, Murray McCulligh wrote:

  A bit of background.

  I’ve added support for EcDoConnectEx/EcDoRpcExt2 and Kerberos constrained 
delegation in MAPIProxy when it is operating as a proxy.  This is working OK 
with Outlook 2010/2007 and an older version of Exchange (2003).  I’m now trying 
to add support for newer versions of Exchange.  I’m testing between Outlook 
2013 and Exchange 2010.

  Outlook sends an ALTER_CONTEXT request on the existing EMSMDB pipe.  
MAPIProxy seems to handle ALTER_CONTEXT by treating it as a new bind and thus 
the mapiproxy_op_connect function creates a new pipe to Exchange.  This all 
seems to be fine, the Kerberos authentication on the pipe is OK, and 
dcerpc_pipe_connect returns success.

  When the EcDoAsyncWaitEx RPC call is received, I see the following...  

  mapiproxy/dcesrv_mapiproxy.c:615(mapiproxy_op_dispatch): 
mapiproxy::mapiproxy_op_dispatch: [tv=1434509167.109593] [#491 start]
  mapiproxy/dcesrv_mapiproxy.c:633(mapiproxy_op_dispatch): 
mapiproxy::mapiproxy_op_dispatch: EcDoAsyncWaitEx(0x0): 32 bytes
       EcDoAsyncWaitEx_Ex: struct EcDoAsyncWaitEx
          in: struct EcDoAsyncWaitEx
              async_handle             : *
                  async_handle: struct policy_handle
                      handle_type              : 0x00000000 (0)
                      uuid                     : 
a2741b2e-1790-4ae9-918a-217abed84d9d
              ulFlagsIn                : 0x00000000 (0)
  rpc fault: DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH

  It looks like it has sent the RPC call to Exchange and gets back this error.  
I’m not sure where to go from here.  



EcDoAsyncWaitEx (asyncemsmdb endpoint) and EcDoAsyncConnectEx (emsmdb) endpoint 
shares a global session context. This asynchronous session context is created 
in EcDoAsyncConnectEx, then it is used to bind on asyncemsmdb pipe through 
EcDoAsyncWaitEx function.

I suspect the different client-proxy and proxy-server connections and their 
respective different session contexts to be the underlying reason why you hit 
this context mismatch. Hence, check the policy in EcDoAsyncConnectEx reply and 
EcDoAsyncWaitEx request and ensures they are the same at the proxy-server 
connection level.

Br,
Julien.

-- 
Julien Kerihuel
j.kerih...@openchange.org
OpenChange Project Founder

Twitter: http://twitter.com/jkerihuel

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

--------------------------------------------------------------------------------
_______________________________________________
devel mailing list
devel@lists.openchange.org
http://mailman.openchange.org/listinfo/devel
_______________________________________________
devel mailing list
devel@lists.openchange.org
http://mailman.openchange.org/listinfo/devel

Reply via email to