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_call pointer to the session context
mem_ctx pointer to the memory context
r generic pointer to EcDoConnectEx structure
mapiproxy pointer to the mapiproxy structure
Returns:
NT_STATUS_NET_WRITE_FAULT when EcDoConnectEx is detected, otherwise NT_STATUS_OK
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_call pointer to the session context
r pointer 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]
static NTSTATUS downgrade_pull ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
void *  r 
) [static]
static NTSTATUS downgrade_push ( struct dcesrv_call_state *  dce_call,
TALLOC_CTX *  mem_ctx,
void *  r 
) [static]
NTSTATUS samba_init_module ( void   ) 

Entry point for the downgrade mapiproxy module

Returns:
NT_STATUS_OK on success, otherwise NTSTATUS error

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/