mapiproxy/modules/mpm_downgrade.c File Reference

Downgrade EMSMDB protocol version EcDoConnect/EcDoRpc. More...

#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/dcesrv_mapiproxy_proto.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include <util/debug.h>

Functions

static NTSTATUS downgrade_dispatch (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, struct mapiproxy *mapiproxy)
static bool downgrade_EcDoConnect (struct dcesrv_call_state *dce_call, struct EcDoConnect *r)
static NTSTATUS downgrade_ndr_pull (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_pull *pull)
static NTSTATUS downgrade_pull (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
static NTSTATUS downgrade_push (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
NTSTATUS samba_init_module (void)

Detailed Description

Downgrade EMSMDB protocol version EcDoConnect/EcDoRpc.


Function Documentation

static NTSTATUS downgrade_dispatch ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
void *  r,
struct mapiproxy *  mapiproxy 
) [static]

Returns the nca_op_rng_error DCERPC status code when Outlook sends an EcDoConnectEx requrest.

Parameters:
dce_callpointer to the session context
mem_ctxpointer to the memory context
rgeneric pointer to EcDoConnectEx structure
mapiproxypointer to the mapiproxy structure
Returns:
NT_STATUS_NET_WRITE_FAULT when EcDoConnectEx is detected, otherwise NT_STATUS_OK

Referenced by samba_init_module().

static bool downgrade_EcDoConnect ( struct dcesrv_call_state *  dce_call,
struct EcDoConnect *  r 
) [static]

This function replaces the store_version short array returned by Exchange in EcDoConnect with a version matching Exchange 2000. Otherwise Outlook tries to upgrade indefinitely.

Parameters:
dce_callpointer to the session context
rpointer to the EcDoConnect structure
Returns:
true on success

Referenced by downgrade_push().

static NTSTATUS downgrade_ndr_pull ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
struct ndr_pull *  pull 
) [static]

Referenced by samba_init_module().

static NTSTATUS downgrade_pull ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
void *  r 
) [static]

Referenced by samba_init_module().

static NTSTATUS downgrade_push ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
void *  r 
) [static]

References downgrade_EcDoConnect().

Referenced by samba_init_module().

NTSTATUS samba_init_module ( void  )

Entry point for the downgrade mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

References downgrade_dispatch(), downgrade_ndr_pull(), downgrade_pull(), and downgrade_push().


Creative Commons License
Creative Commons Attribution icon Creative Commons Share Alike icon
This content is licensed under the Creative Commons
Attribution ShareAlike License v. 3.0:
http://creativecommons.org/licenses/by-sa/3.0/