summaryrefslogtreecommitdiff
path: root/epan
diff options
context:
space:
mode:
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-dcerpc-mapi.c1878
-rw-r--r--epan/dissectors/packet-dcerpc-mapi.h11
-rw-r--r--epan/dissectors/pidl/mapi/mapi.cnf11
-rw-r--r--epan/dissectors/pidl/mapi/request.cnf.c105
-rw-r--r--epan/dissectors/pidl/mapi/response.cnf.c55
5 files changed, 782 insertions, 1278 deletions
diff --git a/epan/dissectors/packet-dcerpc-mapi.c b/epan/dissectors/packet-dcerpc-mapi.c
index 7bf69d8050..9203ae16bc 100644
--- a/epan/dissectors/packet-dcerpc-mapi.c
+++ b/epan/dissectors/packet-dcerpc-mapi.c
@@ -1,6 +1,6 @@
/* DO NOT EDIT
This file was automatically generated by Pidl
- from mapi/mapi.idl and mapi/mapi.cnf.
+ from mapi.idl and mapi.cnf.
Pidl is a perl based IDL compiler for DCE/RPC idl files.
It is maintained by the Samba team, not the Wireshark team.
@@ -27,6 +27,15 @@
#include "packet-dcerpc-mapi.h"
/* Ett declarations */
+static gint ett_mapi_mapi_request = -1;
+static gint ett_mapi_EcDoRpc_MAPI_REQ = -1;
+static gint ett_mapi_OpenFolder_req = -1;
+static gint ett_mapi_GetProps_req = -1;
+static gint ett_mapi_OpenMsgStore_req = -1;
+static gint ett_mapi_mapi_response = -1;
+static gint ett_mapi_EcDoRpc_MAPI_REPL = -1;
+static gint ett_mapi_OpenFolder_repl = -1;
+static gint ett_mapi_GetProps_repl = -1;
static gint ett_dcerpc_mapi = -1;
static gint ett_mapi_DATA_BLOB = -1;
static gint ett_mapi_input_locale = -1;
@@ -37,8 +46,6 @@ static gint ett_mapi_SPropValue = -1;
static gint ett_mapi_SRow = -1;
static gint ett_mapi_Release_req = -1;
static gint ett_mapi_Release_repl = -1;
-static gint ett_mapi_OpenFolder_req = -1;
-static gint ett_mapi_OpenFolder_repl = -1;
static gint ett_mapi_OpenMessage_req = -1;
static gint ett_mapi_RecipExchange = -1;
static gint ett_mapi_RecipSMTP = -1;
@@ -46,142 +53,124 @@ static gint ett_mapi_recipient_type = -1;
static gint ett_mapi_recipient_displayname_7bit = -1;
static gint ett_mapi_recipients_headers = -1;
static gint ett_mapi_OpenMessage_recipients = -1;
-static gint ett_mapi_GetProps_req = -1;
-static gint ett_mapi_GetProps_repl = -1;
static gint ett_mapi_ulEventType = -1;
-static gint ett_mapi_OpenMsgStore_req = -1;
static gint ett_mapi_EcDoRpc_MAPI_REQ_UNION = -1;
static gint ett_mapi_EcDoRpc_MAPI_REPL_UNION = -1;
-static gint ett_mapi_EcDoRpc_MAPI_REQ = -1;
-static gint ett_mapi_EcDoRpc_MAPI_REPL = -1;
-static gint ett_mapi_mapi_request = -1;
-static gint ett_mapi_mapi_response = -1;
/* Header field declarations */
-static gint hf_mapi_ulEventType_fnevStatusObjectModified = -1;
-static gint hf_mapi_SPropValue_CTR_i = -1;
-static gint hf_mapi_RecipExchange_organization_length = -1;
-static gint hf_mapi_OpenMessage_req_max_data = -1;
-static gint hf_mapi_DATA_BLOB_data = -1;
-static gint hf_mapi_OpenMessage_recipients_recipients_headers_ = -1;
-static gint hf_mapi_EcDoRpc_length = -1;
-static gint hf_mapi_OpenFolder_req_folder_id = -1;
-static gint hf_mapi_mapi_request_length = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder = -1;
-static gint hf_mapi_ulEventType_fnevNewMail = -1;
-static gint hf_mapi_SPropValue_CTR_lpguid = -1;
-static gint hf_mapi_GetProps_req_properties = -1;
-static gint hf_mapi_EcDoRpc_max_data = -1;
-static gint hf_mapi_OpenMessage_req_folder_handle_idx = -1;
-static gint hf_mapi_SPropValue_CTR_ft = -1;
-static gint hf_mapi_recipients_headers_username = -1;
-static gint hf_mapi_ulEventType_fnevObjectModified = -1;
-static gint hf_mapi_EcDoConnect_emsmdb_client_version = -1;
+static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps = -1;
+static gint hf_mapi_EcDoConnect_org_group = -1;
+static gint hf_mapi_input_locale_method = -1;
+static gint hf_mapi_ulEventType_fnevObjectMoved = -1;
+static gint hf_mapi_SPropValue_CTR_lpszA = -1;
+static gint hf_mapi_OpenMessage_recipients_recipients_headers = -1;
+static gint hf_mapi_SPropValue_ulPropTag = -1;
+static gint hf_mapi_EcDoConnect_name = -1;
+static gint hf_mapi_EcDoRpc_mapi_flags = -1;
+static gint hf_mapi_FILETIME_dwHighDateTime = -1;
+static gint hf_mapi_EcDoRpc_str_length = -1;
+static gint hf_mapi_ulEventType_fnevObjectCreated = -1;
+static gint hf_mapi_EcDoConnect_unknown3 = -1;
+static gint hf_mapi_recipients_headers_prop_count = -1;
+static gint hf_mapi_ulEventType_fnevObjectDeleted = -1;
+static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore = -1;
+static gint hf_mapi_EcDoRpc_subcontext_size = -1;
static gint hf_mapi_SPropValue_CTR_b = -1;
-static gint hf_mapi_mapi_request_mapi_len = -1;
-static gint hf_mapi_EcRRegisterPushNotification_ulEventMask = -1;
-static gint hf_mapi_recipient_displayname_7bit_lpszA = -1;
-static gint hf_mapi_GetProps_req_unknown = -1;
-static gint hf_mapi_EcRRegisterPushNotification_sockaddr_len = -1;
-static gint hf_mapi_GetProps_repl_prop_data = -1;
-static gint hf_mapi_mapi_response_handles = -1;
+static gint hf_mapi_EcRRegisterPushNotification_retval = -1;
+static gint hf_mapi_SPropValue_CTR_d = -1;
+static gint hf_mapi_EcDoRpc_unknown2 = -1;
static gint hf_mapi_DATA_BLOB_length = -1;
-static gint hf_mapi_OpenFolder_repl_unknown = -1;
+static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder = -1;
+static gint hf_mapi_EcDoConnect_unknown2 = -1;
+static gint hf_mapi_OpenMessage_req_folder_id = -1;
+static gint hf_mapi_ulEventType_fnevObjectCopied = -1;
+static gint hf_mapi_ulEventType_fnevSearchComplete = -1;
+static gint hf_mapi_recipient_type = -1;
+static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps = -1;
+static gint hf_mapi_SPropValue_CTR_lpszW = -1;
+static gint hf_mapi_recipient_displayname_7bit_lpszA = -1;
static gint hf_mapi_EcRRegisterPushNotification_notif_len = -1;
-static gint hf_mapi_recipients_headers_layout = -1;
+static gint hf_mapi_EcDoConnect_session_nb = -1;
static gint hf_mapi_EcDoConnect_unknown1 = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_u = -1;
-static gint hf_mapi_SPropValue_CTR_lpszW = -1;
+static gint hf_mapi_FILETIME_dwLowDateTime = -1;
+static gint hf_mapi_MAPI_OPNUM = -1;
+static gint hf_mapi_OpenMessage_recipients_RecipClass = -1;
+static gint hf_mapi_ulEventType_fnevCriticalError = -1;
+static gint hf_mapi_DATA_BLOB_data = -1;
+static gint hf_mapi_EcDoRpc_unknown3 = -1;
+static gint hf_mapi_EcDoRpc_mapi_request_ = -1;
+static gint hf_mapi_EcDoConnect_store_version = -1;
+static gint hf_mapi_EcDoConnect_input_locale = -1;
+static gint hf_mapi_EcDoConnect_emsmdb_client_version = -1;
+static gint hf_mapi_EcDoRpc_length = -1;
+static gint hf_mapi_EcDoConnect_unknown4 = -1;
+static gint hf_mapi_RecipExchange_organization_length = -1;
static gint hf_mapi_handle = -1;
-static gint hf_mapi_SPropValue_CTR_lpszA = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps = -1;
-static gint hf_mapi_EcDoConnect_name = -1;
-static gint hf_mapi_OpenFolder_req_unknown = -1;
-static gint hf_mapi_input_locale_language = -1;
-static gint hf_mapi_recipients_headers_prop_values = -1;
-static gint hf_mapi_OpenMessage_recipients_recipients_headers = -1;
-static gint hf_mapi_opnum = -1;
-static gint hf_mapi_EcRRegisterPushNotification_retval = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release = -1;
-static gint hf_mapi_decrypted_data = -1;
-static gint hf_mapi_mapi_request_mapi_req = -1;
static gint hf_mapi_RecipExchange_addr_type = -1;
+static gint hf_mapi_ulEventType_fnevObjectModified = -1;
+static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release = -1;
+static gint hf_mapi_OpenMessage_req_message_id = -1;
+static gint hf_mapi_EcDoRpc_mailbox = -1;
+static gint hf_mapi_property_types = -1;
+static gint hf_mapi_mapi_response_mapi_repl = -1;
+static gint hf_mapi_ulEventType_fnevNewMail = -1;
+static gint hf_mapi_EcDoRpc_max_data = -1;
+static gint hf_mapi_recipients_headers_username = -1;
static gint hf_mapi_SPropValue_CTR_dbl = -1;
-static gint hf_mapi_OpenMsgStore_req_mailbox = -1;
+static gint hf_mapi_MAPI_handle = -1;
static gint hf_mapi_EcDoRpc_mapi_response = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_error_code = -1;
-static gint hf_mapi_OpenMessage_req_message_permissions = -1;
-static gint hf_mapi_ulEventType_fnevSearchComplete = -1;
-static gint hf_mapi_EcDoRpc_size = -1;
+static gint hf_mapi_ulEventType_fnevTableModified = -1;
+static gint hf_mapi_EcDoRpc_mapi_tag = -1;
+static gint hf_mapi_OpenMessage_recipients_recipients_headers_ = -1;
+static gint hf_mapi_EcRUnregisterPushNotification_unknown = -1;
+static gint hf_mapi_SPropValue_CTR_err = -1;
+static gint hf_mapi_pdu_len = -1;
static gint hf_mapi_recipient_type_SMTP = -1;
-static gint hf_mapi_OpenMessage_req_folder_id = -1;
-static gint hf_mapi_SPropValue_ulPropTag = -1;
-static gint hf_mapi_mapi_response_mapi_repl = -1;
-static gint hf_mapi_EcDoConnect_org_group = -1;
-static gint hf_mapi_EcDoRpc_mapi_response_ = -1;
-static gint hf_mapi_mapi_response_length = -1;
-static gint hf_mapi_recipient_type = -1;
+static gint hf_mapi_MAPISTATUS_status = -1;
+static gint hf_mapi_ulEventType_fnevExtended = -1;
+static gint hf_mapi_OpenMessage_recipients_codepage = -1;
+static gint hf_mapi_ulEventType_fnevStatusObjectModified = -1;
static gint hf_mapi_EcRRegisterPushNotification_notifkey = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_u = -1;
+static gint hf_mapi_EcRRegisterPushNotification_sockaddr_len = -1;
+static gint hf_mapi_EcDoRpc_offset = -1;
+static gint hf_mapi_EcDoRpc_mapi_request = -1;
+static gint hf_mapi_EcDoRpc_row = -1;
static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder = -1;
-static gint hf_mapi_recipients_headers_prop_count = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps = -1;
-static gint hf_mapi_mapi_request_handles = -1;
-static gint hf_mapi_EcDoConnect_input_locale = -1;
-static gint hf_mapi_GetProps_req_prop_count = -1;
-static gint hf_mapi_ulEventType_fnevReservedForMapi = -1;
-static gint hf_mapi_OpenMsgStore_req_codepage = -1;
+static gint hf_mapi_recipient_type_EXCHANGE = -1;
+static gint hf_mapi_SPropValue_CTR_lpguid = -1;
static gint hf_mapi_LPSTR_lppszA = -1;
-static gint hf_mapi_EcDoRpc_mapi_request_ = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_handle_idx = -1;
-static gint hf_mapi_EcRRegisterPushNotification_unknown2 = -1;
-static gint hf_mapi_SPropValue_CTR_err = -1;
+static gint hf_mapi_EcDoRpc_padding = -1;
+static gint hf_mapi_EcDoRpc_folder_id = -1;
+static gint hf_mapi_opnum = -1;
+static gint hf_mapi_EcDoRpc_codepage = -1;
+static gint hf_mapi_recipients_headers_prop_values = -1;
+static gint hf_mapi_decrypted_data = -1;
+static gint hf_mapi_EcDoConnect_user = -1;
+static gint hf_mapi_SPropValue_CTR_l = -1;
+static gint hf_mapi_SPropValue_CTR_i = -1;
+static gint hf_mapi_EcDoRpc_size = -1;
+static gint hf_mapi_EcRRegisterPushNotification_ulEventMask = -1;
+static gint hf_mapi_EcDoConnect_alloc_space = -1;
+static gint hf_mapi_OpenMessage_req_message_permissions = -1;
+static gint hf_mapi_EcDoRpc_prop_count = -1;
static gint hf_mapi_EcRRegisterPushNotification_sockaddr = -1;
-static gint hf_mapi_recipient_type_EXCHANGE = -1;
-static gint hf_mapi_OpenFolder_req_handle_idx = -1;
-static gint hf_mapi_SPropValue_CTR_d = -1;
-static gint hf_mapi_EcDoConnect_unknown2 = -1;
-static gint hf_mapi_ulEventType_fnevObjectMoved = -1;
+static gint hf_mapi_EcDoRpc_unknown1 = -1;
+static gint hf_mapi_OpenMessage_req_max_data = -1;
static gint hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_Release = -1;
-static gint hf_mapi_mapi_response_mapi_len = -1;
-static gint hf_mapi_ulEventType_fnevObjectCopied = -1;
-static gint hf_mapi_ulEventType_fnevCriticalError = -1;
-static gint hf_mapi_FILETIME_dwHighDateTime = -1;
-static gint hf_mapi_EcDoConnect_alloc_space = -1;
-static gint hf_mapi_property_types = -1;
-static gint hf_mapi_OpenMsgStore_req_mailbox_str_size = -1;
-static gint hf_mapi_OpenMessage_recipients_RecipClass = -1;
-static gint hf_mapi_EcDoConnect_session_nb = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_handle_idx = -1;
-static gint hf_mapi_ulEventType_fnevTableModified = -1;
-static gint hf_mapi_OpenMsgStore_req_padding = -1;
-static gint hf_mapi_GetProps_repl_layout = -1;
-static gint hf_mapi_EcDoConnect_code_page = -1;
-static gint hf_mapi_EcDoConnect_unknown3 = -1;
-static gint hf_mapi_OpenMessage_req_message_id = -1;
-static gint hf_mapi_OpenMessage_recipients_codepage = -1;
-static gint hf_mapi_EcRUnregisterPushNotification_unknown = -1;
-static gint hf_mapi_EcDoRpc_mapi_request = -1;
-static gint hf_mapi_ulEventType_fnevObjectCreated = -1;
-static gint hf_mapi_EcDoConnect_store_version = -1;
-static gint hf_mapi_EcDoRpc_offset = -1;
-static gint hf_mapi_SRow_ulRowFlags = -1;
-static gint hf_mapi_MAPI_OPNUM = -1;
-static gint hf_mapi_ulEventType_fnevExtended = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REPL_opnum = -1;
-static gint hf_mapi_ulEventType_fnevObjectDeleted = -1;
-static gint hf_mapi_FILETIME_dwLowDateTime = -1;
-static gint hf_mapi_OpenMsgStore_req_row = -1;
-static gint hf_mapi_pdu_len = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore = -1;
-static gint hf_mapi_input_locale_method = -1;
-static gint hf_mapi_SPropValue_CTR_l = -1;
+static gint hf_mapi_EcRRegisterPushNotification_unknown2 = -1;
+static gint hf_mapi_ulEventType_fnevReservedForMapi = -1;
+static gint hf_mapi_EcDoRpc_mapi_response_ = -1;
static gint hf_mapi_recipients_headers_bitmask = -1;
-static gint hf_mapi_EcDoConnect_user = -1;
-static gint hf_mapi_EcDoConnect_unknown4 = -1;
-static gint hf_mapi_EcDoRpc_MAPI_REQ_mapi_flags = -1;
-static gint hf_mapi_MAPISTATUS_status = -1;
+static gint hf_mapi_SPropValue_CTR_ft = -1;
+static gint hf_mapi_input_locale_language = -1;
+static gint hf_mapi_SRow_ulRowFlags = -1;
+static gint hf_mapi_OpenMessage_req_folder_handle_idx = -1;
+static gint hf_mapi_recipients_headers_layout = -1;
+static gint hf_mapi_mapi_request_mapi_req = -1;
+static gint hf_mapi_EcDoRpc_layout = -1;
+static gint hf_mapi_EcDoConnect_code_page = -1;
+static gint hf_mapi_EcDoRpc_handle_index = -1;
static gint proto_dcerpc_mapi = -1;
/* Version information */
@@ -3819,10 +3808,6 @@ const value_string mapi_ulRowFlags_vals[] = {
{ 0, NULL }
};
static int mapi_dissect_element_SRow_ulRowFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenFolder_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenFolder_req_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenFolder_req_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenFolder_repl_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_OpenMessage_req_folder_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_OpenMessage_req_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_OpenMessage_req_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
@@ -3873,12 +3858,6 @@ static int mapi_dissect_element_OpenMessage_recipients_RecipClass(tvbuff_t *tvb
static int mapi_dissect_element_OpenMessage_recipients_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_OpenMessage_recipients_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_OpenMessage_recipients_recipients_headers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_req_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_repl_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_GetProps_repl_prop_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string ulEventType_fnevCriticalError_tfs = {
"fnevCriticalError is SET",
"fnevCriticalError is NOT SET",
@@ -3927,12 +3906,6 @@ static const true_false_string ulEventType_fnevExtended_tfs = {
"fnevExtended is SET",
"fnevExtended is NOT SET",
};
-static int mapi_dissect_element_OpenMsgStore_req_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenMsgStore_req_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenMsgStore_req_row(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenMsgStore_req_mailbox_str_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenMsgStore_req_mailbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_OpenMsgStore_req_mailbox_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
@@ -3940,26 +3913,6 @@ static int mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tv
static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_EcDoRpc_MAPI_REQ_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum);
-static int mapi_dissect_element_EcDoRpc_MAPI_REQ_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_EcDoRpc_MAPI_REQ_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_EcDoRpc_MAPI_REQ_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum);
-static int mapi_dissect_element_EcDoRpc_MAPI_REPL_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum);
-static int mapi_dissect_element_EcDoRpc_MAPI_REPL_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_EcDoRpc_MAPI_REPL_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_EcDoRpc_MAPI_REPL_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum);
-static int mapi_dissect_element_request_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_request_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_request_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_request_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_request_handles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_request_handles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_repl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_handles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int mapi_dissect_element_response_handles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoConnect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoConnect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoConnect_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
@@ -4028,20 +3981,393 @@ static int mapi_dissect_element_request_handles_cnf(tvbuff_t *tvb _U_, int offse
gint reported_len;
gint i;
gint handles_cnt = 0;
- int old_offset;
guint32 value;
proto_tree *tr = NULL;
reported_len = tvb_reported_length_remaining(tvb, offset);
handles_cnt = reported_len / 4;
tr = proto_tree_add_subtree_format(tree, tvb, offset, reported_len, ett_mapi_mapi_request, NULL, "MAPI Handles: %d", handles_cnt);
for (i = 0; i < handles_cnt; i++) {
- old_offset = offset;
- value = tvb_get_letohl(tvb, offset);
+ value = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint_format(tr, hf_mapi_MAPI_handle, tvb, offset, 4, value, "[%.2d] MAPI handle: 0x%.8x", i, value);
+ offset += 4;
+ }
+ return offset;
+}
+int
+mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ guint8 opnum;
+
+ old_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REQ);
+ }
+ opnum = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation"));
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_mapi_flags, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ switch(opnum) {
+ case op_MAPI_Release:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvb, offset, pinfo, tree, di, drep);
+ break;
+ case op_MAPI_OpenFolder:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep);
+ break;
+ case op_MAPI_GetProps:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvb, offset, pinfo, tree, di, drep);
+ break;
+ case op_MAPI_OpenMsgStore:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvb, offset, pinfo, tree, di, drep);
+ break;
+ default:
+ offset += param - 3;
+ }
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}
+static int
+mapi_dissect_element_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ offset = mapi_dissect_element_EcDoRpc_request_(tvb, offset, pinfo, tree, di, drep);
+ return offset;
+}
+static int
+mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ guint32 size;
+ int start_offset = offset;
+ guint8 *decrypted_data;
+ tvbuff_t *decrypted_tvb;
+ const guint8 *ptr;
+ gint reported_len;
+ guint16 pdu_len;
+ guint32 i;
+ proto_tree *tr = NULL;
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_request, &size);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size);
+ reported_len = tvb_reported_length_remaining(tvb, offset);
+ if ((guint32) reported_len > size) {
+ reported_len = size;
+ }
+ if (size > (guint32) reported_len) {
+ size = reported_len;
+ }
+ ptr = tvb_get_ptr(tvb, offset, size);
+ decrypted_data = (guint8 *)g_malloc(size);
+ for (i = 0; i < size; i++) {
+ decrypted_data[i] = ptr[i] ^ 0xA5;
+ }
+ decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len);
+ tvb_set_free_cb(decrypted_tvb, g_free);
+
+ add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI");
+ tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_request, NULL, "Decrypted MAPI PDU");
+ pdu_len = tvb_get_letohs(decrypted_tvb, 0);
+ proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len);
+ proto_tree_add_item(tr, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA);
+ /* analyze contents */
+ offset = mapi_dissect_element_EcDoRpc_request__(decrypted_tvb, 0, pinfo, tr, di, drep);
+ /* analyze mapi handles */
+ offset = mapi_dissect_element_request_handles_cnf(decrypted_tvb, offset, pinfo, tr, di, drep);
+ /* append ptr size (4) */
+ return start_offset + offset + 4;
+}
+/*
+ * Analyze mapi_request real contents
+ */
+static int mapi_dissect_element_EcDoRpc_request__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ guint16 length;
+ length = tvb_get_letohs(tvb, offset);
+ offset += 2;
+ while (offset < length) {
+ offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_req, length - offset);
+ }
+ return offset;
+}
+int
+mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_mapi_mapi_request);
+ }
+ offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_req, 0);
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0x2 */
+static int
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int origin_offset;
+ origin_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_req);
+ }
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_folder_id, tvb, offset, 8, ENC_LITTLE_ENDIAN);
+ offset += 8;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown2, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ proto_item_set_len(item, offset - origin_offset);
+
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0x7 */
+static int
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int origin_offset;
+ guint16 i;
+ /**** Function parameters ****/
+ guint16 prop_count;
+ guint32 mapitag;
+ origin_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_GetProps_req);
+ }
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown3, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ prop_count = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 2, prop_count);
+ offset += 2;
+ for (i = 0; i < prop_count; i++) {
+ mapitag = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint_format(tree, hf_mapi_EcDoRpc_mapi_tag, tvb, offset, 4, mapitag, "[%.2d] %s", i, val_to_str(mapitag, mapi_MAPITAGS_vals, "Unknown MAPITAGS"));
offset += 4;
- proto_tree_add_text(tr, tvb, old_offset, offset - old_offset, "[%.2d] MAPI handle: 0x%.8x", i, value);
}
+ proto_item_set_len(item, offset - origin_offset);
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0xFE */
+static int
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ int origin_offset;
+ /**** Function parameters ****/
+ guint32 codepage;
+ guint32 padding;
+ guint8 row;
+ guint16 str_len;
+ gchar *mailbox;
+ origin_offset = offset;
+ old_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_req);
+ }
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_codepage, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_padding, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_row, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ str_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_str_length, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ mailbox = tvb_format_text(tvb, offset, str_len - 1);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_mailbox, tvb, offset, str_len, ENC_ASCII|ENC_NA);
+ offset += str_len;
+ proto_item_set_len(item, offset - origin_offset);
+ return offset;
+}
+static int
+mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ guint8 opnum;
+ guint8 handle_idx;
+ guint32 retval;
+ old_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REPL);
+ }
+ opnum = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation: 0x%02x"));
+ if (opnum != op_MAPI_Notify) {
+ handle_idx = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ retval = tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPISTATUS_status, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ if (retval == MAPI_E_SUCCESS) {
+ switch(opnum) {
+ case op_MAPI_Release:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvb, offset, pinfo, tree, di, drep);
+ break;
+ case op_MAPI_OpenFolder:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep);
+ break;
+ case op_MAPI_GetProps:
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvb, offset, pinfo, tree, di, drep);
+ break;
+/* case op_MAPI_OpenMsgStore: */
+/* offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvb, offset, pinfo, tree, di, drep); */
+/* break; */
+ default:
+ offset += param - 6;
+ }
+ }
+ } else {
+ /* we don't decode notifications within the dissector yet */
+ offset += param - 1;
+ }
+ proto_item_set_len(item, offset - old_offset);
+ return offset;
+}
+static int
+mapi_dissect_element_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ offset = mapi_dissect_element_EcDoRpc_response_(tvb, offset, pinfo, tree, di, drep);
return offset;
}
+static int
+mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ guint32 size;
+ int start_offset = offset;
+ guint8 *decrypted_data;
+ tvbuff_t *decrypted_tvb;
+ const guint8 *ptr;
+ gint reported_len;
+ guint16 pdu_len;
+ guint32 i;
+ proto_tree *tr = NULL;
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_response, &size);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size);
+ reported_len = tvb_reported_length_remaining(tvb, offset);
+ if ((guint32) reported_len > size) {
+ reported_len = size;
+ }
+ if (size > (guint32) reported_len) {
+ size = reported_len;
+ }
+ ptr = tvb_get_ptr(tvb, offset, size);
+ decrypted_data = (guint8 *)g_malloc(size);
+ for (i = 0; i < size; i++) {
+ decrypted_data[i] = ptr[i] ^ 0xA5;
+ }
+ decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len);
+ tvb_set_free_cb(decrypted_tvb, g_free);
+ add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI");
+ tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_response, NULL, "Decrypted MAPI PDU");
+ pdu_len = tvb_get_letohs(decrypted_tvb, 0);
+ proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len);
+ proto_tree_add_item(tr, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA);
+ /* Analyze contents */
+ offset = mapi_dissect_element_EcDoRpc_response__(decrypted_tvb, 0, pinfo, tr, di, drep);
+ /* Analyze mapi handles */
+ offset = mapi_dissect_element_request_handles_cnf(decrypted_tvb, offset, pinfo, tr, di, drep);
+ return start_offset + offset + 4;
+}
+static int
+mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ guint16 length;
+ tvbuff_t *subtvb;
+ length = tvb_get_letohs(tvb, offset);
+ subtvb = tvb_new_subset(tvb, offset, length, length);
+ offset += 2;
+ while (offset < length) {
+ offset = mapi_dissect_struct_EcDoRpc_MAPI_REPL(subtvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_mapi_repl, length - offset);
+ }
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0x2 */
+static int
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ int origin_offset;
+ /**** Function parameters ****/
+ guint16 unknown;
+ origin_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_repl);
+ }
+ old_offset = offset;
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown1, tvb, old_offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ proto_item_set_len(item, offset - origin_offset);
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0x7 */
+static int
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int origin_offset;
+ /**** Function parameters ****/
+ guint8 layout;
+ guint16 length;
+ origin_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl);
+ }
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_layout, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ length = tvb_reported_length_remaining(tvb, offset);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 0, length);
+ offset += length;
+ proto_item_set_len(item, offset - origin_offset);
+ return offset;
+}
+/*************************/
+/* EcDoRpc Function 0xFE */
+/* static int
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ int origin_offset;
+ origin_offset = offset;
+ old_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenMsgStore, tvb, offset, -1, TRUE);
+ tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_repl);
+ }
+ offset = mapi_dissect_element_OpenMsgStore_repl_PR_OBJECT_TYPE(tvb, offset, pinfo, tree, di, drep);
+ proto_item_set_len(item, offset - origin_offset);
+ return offset;
+ }*/
/* IDL: enum { */
@@ -7960,15 +8286,15 @@ mapi_dissect_enum_property_types(tvbuff_t *tvb _U_, int offset _U_, packet_info
}
-/* IDL: [switch_type(property_types)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
+/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(property_types)] union { */
/* IDL: [case(PT_I2)] [case(PT_I2)] uint16 i; */
/* IDL: [case(PT_LONG)] [case(PT_LONG)] uint32 l; */
/* IDL: [case(PT_DOUBLE)] [case(PT_DOUBLE)] dlong dbl; */
/* IDL: [case(PT_ERROR)] [case(PT_ERROR)] uint32 err; */
/* IDL: [case(PT_BOOLEAN)] [case(PT_BOOLEAN)] uint8 b; */
/* IDL: [case(PT_I8)] [case(PT_I8)] dlong d; */
-/* IDL: [case(PT_STRING8)] [case(PT_STRING8)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */
-/* IDL: [case(PT_UNICODE)] [flag(LIBNDR_FLAG_STR_NULLTERM)] [case(PT_UNICODE)] string lpszW; */
+/* IDL: [case(PT_STRING8)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [case(PT_STRING8)] string lpszA; */
+/* IDL: [case(PT_UNICODE)] [case(PT_UNICODE)] [flag(LIBNDR_FLAG_STR_NULLTERM)] string lpszW; */
/* IDL: [case(PT_SYSTIME)] [case(PT_SYSTIME)] FILETIME ft; */
/* IDL: [case(PT_CLSID)] [case(PT_CLSID)] GUID lpguid; */
/* IDL: } */
@@ -8304,103 +8630,11 @@ mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info
/* IDL: uint8 unknown; */
/* IDL: } */
-static int
-mapi_dissect_element_OpenFolder_req_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_req_handle_idx, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenFolder_req_folder_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, 0, hf_mapi_OpenFolder_req_folder_id);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenFolder_req_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_req_unknown, 0);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_OpenFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_req);
- }
-
- offset = mapi_dissect_element_OpenFolder_req_handle_idx(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenFolder_req_folder_id(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenFolder_req_unknown(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_8_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint16 unknown; */
/* IDL: } */
-static int
-mapi_dissect_element_OpenFolder_repl_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenFolder_repl_unknown, 0);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_OpenFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_repl);
- }
-
- offset = mapi_dissect_element_OpenFolder_repl_unknown(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_2_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint8 folder_handle_idx; */
@@ -8647,7 +8881,7 @@ mapi_dissect_enum_OM_recipient_type(tvbuff_t *tvb _U_, int offset _U_, packet_in
}
-/* IDL: [switch_type(OM_recipient_type)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
+/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(OM_recipient_type)] union { */
/* IDL: [case(0x0)] [case(0x0)] RecipExchange EXCHANGE; */
/* IDL: [case(0xA)] [case(0xA)] RecipSMTP SMTP; */
/* IDL: [default] ; */
@@ -8721,7 +8955,7 @@ mapi_dissect_enum_OM_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U
/* IDL: [flag(LIBNDR_FLAG_NOALIGN)] [switch_type(OM_recipient_displayname_7bit)] union { */
-/* IDL: [case(0x400)] [case(0x400)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string lpszA; */
+/* IDL: [case(0x400)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [case(0x400)] string lpszA; */
/* IDL: [default] ; */
/* IDL: } */
@@ -8956,121 +9190,12 @@ mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, pa
/* IDL: MAPITAGS properties[prop_count]; */
/* IDL: } */
-static int
-mapi_dissect_element_GetProps_req_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_unknown, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_GetProps_req_prop_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_prop_count, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_GetProps_req_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
-
- return offset;
-}
-
-static int
-mapi_dissect_element_GetProps_req_properties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_enum_MAPITAGS(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_req_properties, 0);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_GetProps_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_GetProps_req);
- }
-
- offset = mapi_dissect_element_GetProps_req_unknown(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_GetProps_req_prop_count(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_GetProps_req_properties(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_4_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint8 layout; */
/* IDL: [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prop_data; */
/* IDL: } */
-static int
-mapi_dissect_element_GetProps_repl_layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_layout, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_GetProps_repl_prop_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_mapi_GetProps_repl_prop_data, 1);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_GetProps_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl);
- }
-
- offset = mapi_dissect_element_GetProps_repl_layout(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_GetProps_repl_prop_data(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_4_BYTES;
- }
-
- return offset;
-}
-
/* IDL: bitmap { */
/* IDL: fnevCriticalError = 0x00000001 , */
@@ -9219,93 +9344,6 @@ mapi_dissect_bitmap_ulEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *
/* IDL: [charset(DOS)] [unique(1)] uint8 *mailbox; */
/* IDL: } */
-static int
-mapi_dissect_element_OpenMsgStore_req_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMsgStore_req_codepage, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenMsgStore_req_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMsgStore_req_padding, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenMsgStore_req_row(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMsgStore_req_row, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenMsgStore_req_mailbox_str_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_OpenMsgStore_req_mailbox_str_size, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenMsgStore_req_mailbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_OpenMsgStore_req_mailbox_, NDR_POINTER_UNIQUE, "Pointer to Mailbox (uint8)",hf_mapi_OpenMsgStore_req_mailbox);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_OpenMsgStore_req_mailbox_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- char *data;
-
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_mapi_OpenMsgStore_req_mailbox, FALSE, &data);
- proto_item_append_text(tree, ": %s", data);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_OpenMsgStore_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_req);
- }
-
- offset = mapi_dissect_element_OpenMsgStore_req_codepage(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenMsgStore_req_padding(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenMsgStore_req_row(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenMsgStore_req_mailbox_str_size(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_OpenMsgStore_req_mailbox(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_5_BYTES;
- }
-
- return offset;
-}
-
/* IDL: [switch_type(MAPI_OPNUM)] union { */
/* IDL: [case(op_MAPI_Release)] [case(op_MAPI_Release)] Release_req mapi_Release; */
@@ -9322,70 +9360,8 @@ mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvbuff_t *tvb _U_, int offse
return offset;
}
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_OpenFolder_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_GetProps_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_OpenMsgStore_req(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_EcDoRpc_MAPI_REQ_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
- guint8 level;
-
- old_offset = offset;
- if (parent_tree) {
- tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_EcDoRpc_MAPI_REQ_UNION, &item, "EcDoRpc_MAPI_REQ_UNION");
- }
-
- offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
- ALIGN_TO_8_BYTES;
-
- switch(level) {
- case op_MAPI_Release:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvb, offset, pinfo, tree, di, drep);
- break;
- case op_MAPI_OpenFolder:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep);
- break;
-
- case op_MAPI_GetProps:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvb, offset, pinfo, tree, di, drep);
- break;
-
- case op_MAPI_OpenMsgStore:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvb, offset, pinfo, tree, di, drep);
- break;
- }
- proto_item_set_len(item, offset-old_offset);
-
-
- return offset;
-}
-
-/* IDL: [public(1)] [switch_type(MAPI_OPNUM)] union { */
+/* IDL: [switch_type(MAPI_OPNUM)] [public(1)] union { */
/* IDL: [case(op_MAPI_Release)] [case(op_MAPI_Release)] Release_repl mapi_Release; */
/* IDL: [case(op_MAPI_OpenFolder)] [case(op_MAPI_OpenFolder)] OpenFolder_repl mapi_OpenFolder; */
/* IDL: [case(op_MAPI_GetProps)] [case(op_MAPI_GetProps)] GetProps_repl mapi_GetProps; */
@@ -9399,56 +9375,6 @@ mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvbuff_t *tvb _U_, int offs
return offset;
}
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_OpenFolder_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_GetProps_repl(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_EcDoRpc_MAPI_REPL_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
- guint8 level;
-
- old_offset = offset;
- if (parent_tree) {
- tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_mapi_EcDoRpc_MAPI_REPL_UNION, &item, "EcDoRpc_MAPI_REPL_UNION");
- }
-
- offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
- ALIGN_TO_4_BYTES;
-
- switch(level) {
- case op_MAPI_Release:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_Release(tvb, offset, pinfo, tree, di, drep);
- break;
-
- case op_MAPI_OpenFolder:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep);
- break;
-
- case op_MAPI_GetProps:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvb, offset, pinfo, tree, di, drep);
- break;
- }
- proto_item_set_len(item, offset-old_offset);
-
-
- return offset;
-}
/* IDL: struct { */
/* IDL: uint8 opnum; */
@@ -9457,73 +9383,6 @@ mapi_dissect_EcDoRpc_MAPI_REPL_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_i
/* IDL: [switch_is(opnum)] EcDoRpc_MAPI_REQ_UNION u; */
/* IDL: } */
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_MAPI_OPNUM, *opnum);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REQ_mapi_flags, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REQ_handle_idx, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum)
-{
- offset = mapi_dissect_EcDoRpc_MAPI_REQ_UNION(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REQ_u, *opnum);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- guint8 opnum;
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REQ);
- }
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_opnum(tvb, offset, pinfo, tree, di, drep, &opnum);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_flags(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_handle_idx(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_u(tvb, offset, pinfo, tree, di, drep, &opnum);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_8_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint8 opnum; */
@@ -9532,73 +9391,6 @@ mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_i
/* IDL: [switch_is(opnum)] EcDoRpc_MAPI_REPL_UNION u; */
/* IDL: } */
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REPL_opnum, *opnum);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_handle_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REPL_handle_idx, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_enum_MAPISTATUS(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REPL_error_code, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 *opnum)
-{
- offset = mapi_dissect_EcDoRpc_MAPI_REPL_UNION(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_MAPI_REPL_u, *opnum);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- guint8 opnum;
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REPL);
- }
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_opnum(tvb, offset, pinfo, tree, di, drep, &opnum);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_handle_idx(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_error_code(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_EcDoRpc_MAPI_REPL_u(tvb, offset, pinfo, tree, di, drep, &opnum);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_4_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint32 mapi_len; */
@@ -9607,89 +9399,6 @@ mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_
/* IDL: [unique(1)] uint32 *handles; */
/* IDL: } */
-static int
-mapi_dissect_element_request_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_len, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_request_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_length, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_request_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_request_req_, NDR_POINTER_UNIQUE, "Pointer to Req (EcDoRpc_MAPI_REQ)",hf_mapi_mapi_request_mapi_req);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_request_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_request_mapi_req,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_request_handles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_request_handles_, NDR_POINTER_UNIQUE, "Pointer to Handles (uint32)",hf_mapi_mapi_request_handles);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_request_handles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_handles, 0);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
- ALIGN_TO_5_BYTES;
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_mapi_request);
- }
-
- offset = mapi_dissect_element_request_len(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_request_length(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_request_req(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_request_handles(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_5_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint32 mapi_len; */
@@ -9698,89 +9407,6 @@ mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf
/* IDL: [unique(1)] uint32 *handles; */
/* IDL: } */
-static int
-mapi_dissect_element_response_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_mapi_len, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_response_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_length, 0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_response_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_response_repl_, NDR_POINTER_UNIQUE, "Pointer to Repl (EcDoRpc_MAPI_REPL)",hf_mapi_mapi_response_mapi_repl);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_response_repl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvb,offset,pinfo,tree,di,drep,hf_mapi_mapi_response_mapi_repl,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_response_handles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_response_handles_, NDR_POINTER_UNIQUE, "Pointer to Handles (uint32)",hf_mapi_mapi_response_handles);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_response_handles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_handles, 0);
-
- return offset;
-}
-
-int
-mapi_dissect_struct_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
-{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
- ALIGN_TO_5_BYTES;
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mapi_mapi_response);
- }
-
- offset = mapi_dissect_element_response_len(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_response_length(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_response_repl(tvb, offset, pinfo, tree, di, drep);
-
- offset = mapi_dissect_element_response_handles(tvb, offset, pinfo, tree, di, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
-
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_5_BYTES;
- }
-
- return offset;
-}
-
/* IDL: struct { */
/* IDL: uint16 cb; */
@@ -9989,7 +9615,7 @@ mapi_dissect_element_EcDoConnect_alloc_space_(tvbuff_t *tvb _U_, int offset _U_,
}
/* IDL: MAPISTATUS EcDoConnect( */
-/* IDL: [out] [ref] policy_handle *handle, */
+/* IDL: [ref] [out] policy_handle *handle, */
/* IDL: [in] uint8 name[*], */
/* IDL: [in] uint32 unknown1[3], */
/* IDL: [in] uint32 code_page, */
@@ -9999,10 +9625,10 @@ mapi_dissect_element_EcDoConnect_alloc_space_(tvbuff_t *tvb _U_, int offset _U_,
/* IDL: [out] uint32 unknown4[3], */
/* IDL: [ref] [out] uint16 *session_nb, */
/* IDL: [out] [unique(1)] uint8 *org_group, */
-/* IDL: [out] [unique(1)] uint8 *user, */
+/* IDL: [unique(1)] [out] uint8 *user, */
/* IDL: [out] uint16 store_version[3], */
/* IDL: [out] [in] uint16 emsmdb_client_version[3], */
-/* IDL: [ref] [in] [out] uint32 *alloc_space */
+/* IDL: [out] [ref] [in] uint32 *alloc_space */
/* IDL: ); */
static int
@@ -10082,7 +9708,7 @@ mapi_dissect_element_EcDoDisconnect_handle_(tvbuff_t *tvb _U_, int offset _U_, p
}
/* IDL: MAPISTATUS EcDoDisconnect( */
-/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: [in] [out] [ref] policy_handle *handle */
/* IDL: ); */
static int
@@ -10143,78 +9769,6 @@ mapi_dissect_element_EcDoRpc_offset(tvbuff_t *tvb _U_, int offset _U_, packet_in
}
static int
-mapi_dissect_element_EcDoRpc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_request_, NDR_POINTER_REF, "Pointer to Request (mapi_request)",hf_mapi_EcDoRpc_mapi_request);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- guint3264 size;
- int conformant = di->conformant_run;
- tvbuff_t *subtvb;
-
- if (!conformant) {
- guint32 saved_flags = di->call_data->flags;
- offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_request_, &size);
- di->call_data->flags &= ~DCERPC_IS_NDR64;
- subtvb = tvb_new_subset(tvb, offset, (const gint)size, -1);
- mapi_dissect_element_EcDoRpc_request__(subtvb, 0, pinfo, tree, di, drep);
- offset += (int)size;
- di->call_data->flags = saved_flags;
- }
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_request__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_request(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_mapi_request,0);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_response_, NDR_POINTER_REF, "Pointer to Response (mapi_response)",hf_mapi_EcDoRpc_mapi_response);
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- guint3264 size;
- int conformant = di->conformant_run;
- tvbuff_t *subtvb;
-
- if (!conformant) {
- guint32 saved_flags = di->call_data->flags;
- offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_response_, &size);
- di->call_data->flags &= ~DCERPC_IS_NDR64;
- subtvb = tvb_new_subset(tvb, offset, (const gint)size, -1);
- mapi_dissect_element_EcDoRpc_response__(subtvb, 0, pinfo, tree, di, drep);
- offset += (int)size;
- di->call_data->flags = saved_flags;
- }
-
- return offset;
-}
-
-static int
-mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
-{
- offset = mapi_dissect_struct_response(tvb,offset,pinfo,tree,di,drep,hf_mapi_EcDoRpc_mapi_response,0);
-
- return offset;
-}
-
-static int
mapi_dissect_element_EcDoRpc_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, mapi_dissect_element_EcDoRpc_length_, NDR_POINTER_REF, "Pointer to Length (uint16)",hf_mapi_EcDoRpc_length);
@@ -10240,11 +9794,11 @@ mapi_dissect_element_EcDoRpc_max_data(tvbuff_t *tvb _U_, int offset _U_, packet_
/* IDL: MAPISTATUS EcDoRpc( */
/* IDL: [out] [ref] [in] policy_handle *handle, */
-/* IDL: [in] [out] uint32 size, */
+/* IDL: [out] [in] uint32 size, */
/* IDL: [in] [out] uint32 offset, */
-/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [in] [ref] [subcontext(4)] mapi_request *mapi_request, */
-/* IDL: [subcontext(4)] [out] [ref] [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] mapi_response *mapi_response, */
-/* IDL: [out] [in] [ref] uint16 *length, */
+/* IDL: [subcontext(4)] [in] [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [ref] mapi_request *mapi_request, */
+/* IDL: [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_NOALIGN)] [subcontext(4)] [ref] [out] mapi_response *mapi_response, */
+/* IDL: [in] [out] [ref] uint16 *length, */
/* IDL: [in] uint16 max_data */
/* IDL: ); */
@@ -10412,12 +9966,12 @@ mapi_dissect_element_EcRRegisterPushNotification_retval_(tvbuff_t *tvb _U_, int
/* IDL: MAPISTATUS EcRRegisterPushNotification( */
/* IDL: [in] [ref] [out] policy_handle *handle, */
/* IDL: [in] ulEventType ulEventMask, */
-/* IDL: [size_is(notif_len)] [in] uint8 notifkey[*], */
+/* IDL: [in] [size_is(notif_len)] uint8 notifkey[*], */
/* IDL: [in] uint16 notif_len, */
/* IDL: [in] uint32 unknown2, */
-/* IDL: [size_is(sockaddr_len)] [in] uint8 sockaddr[*], */
+/* IDL: [in] [size_is(sockaddr_len)] uint8 sockaddr[*], */
/* IDL: [in] uint16 sockaddr_len, */
-/* IDL: [ref] [out] uint32 *retval */
+/* IDL: [out] [ref] uint32 *retval */
/* IDL: ); */
static int
@@ -10495,7 +10049,7 @@ mapi_dissect_element_EcRUnregisterPushNotification_unknown_(tvbuff_t *tvb _U_, i
}
/* IDL: MAPISTATUS EcRUnregisterPushNotification( */
-/* IDL: [in] [ref] [out] policy_handle *handle, */
+/* IDL: [ref] [out] [in] policy_handle *handle, */
/* IDL: [in] uint32 unknown[2] */
/* IDL: ); */
@@ -10626,256 +10180,243 @@ static dcerpc_sub_dissector mapi_dissectors[] = {
void proto_register_dcerpc_mapi(void)
{
static hf_register_info hf[] = {
- { &hf_mapi_ulEventType_fnevStatusObjectModified,
- { "Fnevstatusobjectmodified", "mapi.ulEventType.fnevStatusObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevStatusObjectModified_tfs), ( 0x00000200 ), NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_i,
- { "I", "mapi.SPropValue_CTR.i", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_RecipExchange_organization_length,
- { "Organization Length", "mapi.RecipExchange.organization_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_req_max_data,
- { "Max Data", "mapi.OpenMessage_req.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_DATA_BLOB_data,
- { "Data", "mapi.DATA_BLOB.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_recipients_recipients_headers_,
- { "Subcontext length", "mapi.OpenMessage_recipients.subcontext", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_length,
- { "Length", "mapi.EcDoRpc.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenFolder_req_folder_id,
- { "Folder Id", "mapi.OpenFolder_req.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_request_length,
- { "Length", "mapi.mapi_request.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder,
- { "Mapi Openfolder", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevNewMail,
- { "Fnevnewmail", "mapi.ulEventType.fnevNewMail", FT_BOOLEAN, 16, TFS(&ulEventType_fnevNewMail_tfs), ( 0x00000002 ), NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_lpguid,
- { "Lpguid", "mapi.SPropValue_CTR.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_GetProps_req_properties,
- { "Properties", "mapi.GetProps_req.properties", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_max_data,
- { "Max Data", "mapi.EcDoRpc.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_req_folder_handle_idx,
- { "Folder Handle Idx", "mapi.OpenMessage_req.folder_handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_ft,
- { "Ft", "mapi.SPropValue_CTR.ft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipients_headers_username,
- { "Username", "mapi.recipients_headers.username", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevObjectModified,
- { "Fnevobjectmodified", "mapi.ulEventType.fnevObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectModified_tfs), ( 0x00000010 ), NULL, HFILL }},
- { &hf_mapi_EcDoConnect_emsmdb_client_version,
- { "Emsmdb Client Version", "mapi.EcDoConnect.emsmdb_client_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps,
+ { "Mapi Getprops", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_org_group,
+ { "Org Group", "mapi.EcDoConnect.org_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_input_locale_method,
+ { "Method", "mapi.input_locale.method", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevObjectMoved,
+ { "Fnevobjectmoved", "mapi.ulEventType.fnevObjectMoved", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectMoved_tfs), ( 0x00000020 ), NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_lpszA,
+ { "Lpsza", "mapi.SPropValue_CTR.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_OpenMessage_recipients_recipients_headers,
+ { "Recipients Headers", "mapi.OpenMessage_recipients.recipients_headers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_ulPropTag,
+ { "Ulproptag", "mapi.SPropValue.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_name,
+ { "Name", "mapi.EcDoConnect.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_mapi_flags,
+ { "mapi_flags", "mapi.EcDoRpc.mapi_flags", FT_UINT8, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_FILETIME_dwHighDateTime,
+ { "Dwhighdatetime", "mapi.FILETIME.dwHighDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_str_length,
+ { "Length", "mapi.EcDoRpc.str_length", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_ulEventType_fnevObjectCreated,
+ { "Fnevobjectcreated", "mapi.ulEventType.fnevObjectCreated", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCreated_tfs), ( 0x00000004 ), NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_unknown3,
+ { "Unknown3", "mapi.EcDoConnect.unknown3", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_recipients_headers_prop_count,
+ { "Prop Count", "mapi.recipients_headers.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevObjectDeleted,
+ { "Fnevobjectdeleted", "mapi.ulEventType.fnevObjectDeleted", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectDeleted_tfs), ( 0x00000008 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore,
+ { "Mapi Openmsgstore", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_OpenMsgStore", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_subcontext_size,
+ { "Subcontext size", "mapi.EcDoRpc.subcontext_size", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
{ &hf_mapi_SPropValue_CTR_b,
{ "B", "mapi.SPropValue_CTR.b", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_request_mapi_len,
- { "Mapi Len", "mapi.mapi_request.mapi_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcRRegisterPushNotification_ulEventMask,
- { "Uleventmask", "mapi.EcRRegisterPushNotification.ulEventMask", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipient_displayname_7bit_lpszA,
- { "Lpsza", "mapi.recipient_displayname_7bit.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_GetProps_req_unknown,
- { "Unknown", "mapi.GetProps_req.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcRRegisterPushNotification_sockaddr_len,
- { "Sockaddr Len", "mapi.EcRRegisterPushNotification.sockaddr_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_GetProps_repl_prop_data,
- { "Prop Data", "mapi.GetProps_repl.prop_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_response_handles,
- { "Handles", "mapi.mapi_response.handles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcRRegisterPushNotification_retval,
+ { "Retval", "mapi.EcRRegisterPushNotification.retval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_d,
+ { "D", "mapi.SPropValue_CTR.d", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_unknown2,
+ { "Unknown2", "mapi.EcDoRpc.unknown2", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }},
{ &hf_mapi_DATA_BLOB_length,
{ "Length", "mapi.DATA_BLOB.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenFolder_repl_unknown,
- { "Unknown", "mapi.OpenFolder_repl.unknown", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_OpenFolder,
+ { "Mapi Openfolder", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_unknown2,
+ { "Unknown2", "mapi.EcDoConnect.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_OpenMessage_req_folder_id,
+ { "Folder Id", "mapi.OpenMessage_req.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevObjectCopied,
+ { "Fnevobjectcopied", "mapi.ulEventType.fnevObjectCopied", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCopied_tfs), ( 0x00000040 ), NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevSearchComplete,
+ { "Fnevsearchcomplete", "mapi.ulEventType.fnevSearchComplete", FT_BOOLEAN, 16, TFS(&ulEventType_fnevSearchComplete_tfs), ( 0x00000080 ), NULL, HFILL }},
+ { &hf_mapi_recipient_type,
+ { "Recipient Type", "mapi.recipients_headers.type", FT_UINT16, BASE_HEX, VALS(mapi_OM_recipient_type_vals), 0, "NULL", HFILL }},
+ { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps,
+ { "Mapi Getprops", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_lpszW,
+ { "Lpszw", "mapi.SPropValue_CTR.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_recipient_displayname_7bit_lpszA,
+ { "Lpsza", "mapi.recipient_displayname_7bit.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_mapi_EcRRegisterPushNotification_notif_len,
{ "Notif Len", "mapi.EcRRegisterPushNotification.notif_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipients_headers_layout,
- { "Layout", "mapi.recipients_headers.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_session_nb,
+ { "Session Nb", "mapi.EcDoConnect.session_nb", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_mapi_EcDoConnect_unknown1,
{ "Unknown1", "mapi.EcDoConnect.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_u,
- { "U", "mapi.EcDoRpc_MAPI_REPL.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_lpszW,
- { "Lpszw", "mapi.SPropValue_CTR.lpszW", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_FILETIME_dwLowDateTime,
+ { "Dwlowdatetime", "mapi.FILETIME.dwLowDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_MAPI_OPNUM,
+ { "Opnum", "mapi.EcDoRpc_MAPI_REPL.opnum", FT_UINT8, BASE_HEX, VALS(mapi_MAPI_OPNUM_vals), 0, "NULL", HFILL }},
+ { &hf_mapi_OpenMessage_recipients_RecipClass,
+ { "Recipclass", "mapi.OpenMessage_recipients.RecipClass", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevCriticalError,
+ { "Fnevcriticalerror", "mapi.ulEventType.fnevCriticalError", FT_BOOLEAN, 16, TFS(&ulEventType_fnevCriticalError_tfs), ( 0x00000001 ), NULL, HFILL }},
+ { &hf_mapi_DATA_BLOB_data,
+ { "Data", "mapi.DATA_BLOB.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_unknown3,
+ { "Unknown3", "mapi.EcDoRpc.unknown3", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_EcDoRpc_mapi_request_,
+ { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_store_version,
+ { "Store Version", "mapi.EcDoConnect.store_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_input_locale,
+ { "Input Locale", "mapi.EcDoConnect.input_locale", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_emsmdb_client_version,
+ { "Emsmdb Client Version", "mapi.EcDoConnect.emsmdb_client_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_length,
+ { "Length", "mapi.EcDoRpc.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_unknown4,
+ { "Unknown4", "mapi.EcDoConnect.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_RecipExchange_organization_length,
+ { "Organization Length", "mapi.RecipExchange.organization_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_mapi_handle,
{ "Handle", "mapi.handle", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }},
- { &hf_mapi_SPropValue_CTR_lpszA,
- { "Lpsza", "mapi.SPropValue_CTR.lpszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_GetProps,
- { "Mapi Getprops", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_name,
- { "Name", "mapi.EcDoConnect.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenFolder_req_unknown,
- { "Unknown", "mapi.OpenFolder_req.unknown", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_input_locale_language,
- { "Language", "mapi.input_locale.language", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipients_headers_prop_values,
- { "Prop Values", "mapi.recipients_headers.prop_values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_recipients_recipients_headers,
- { "Recipients Headers", "mapi.OpenMessage_recipients.recipients_headers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_opnum,
- { "Operation", "mapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcRRegisterPushNotification_retval,
- { "Retval", "mapi.EcRRegisterPushNotification.retval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release,
- { "Mapi Release", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_decrypted_data,
- { "Decrypted data", "mapi.decrypted.data", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }},
- { &hf_mapi_mapi_request_mapi_req,
- { "Mapi Req", "mapi.mapi_request.mapi_req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_mapi_RecipExchange_addr_type,
{ "Addr Type", "mapi.RecipExchange.addr_type", FT_UINT8, BASE_DEC, VALS(mapi_addr_type_vals), 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevObjectModified,
+ { "Fnevobjectmodified", "mapi.ulEventType.fnevObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectModified_tfs), ( 0x00000010 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_Release,
+ { "Mapi Release", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_OpenMessage_req_message_id,
+ { "Message Id", "mapi.OpenMessage_req.message_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_mailbox,
+ { "Mailbox", "mapi.EcDoRpc.mailbox", FT_STRING, BASE_NONE, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_property_types,
+ { "Value", "mapi.SPropValue.value", FT_UINT32, BASE_HEX, VALS(mapi_property_types_vals), 0, "NULL", HFILL }},
+ { &hf_mapi_mapi_response_mapi_repl,
+ { "Mapi Repl", "mapi.mapi_response.mapi_repl", FT_NONE, BASE_NONE, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_ulEventType_fnevNewMail,
+ { "Fnevnewmail", "mapi.ulEventType.fnevNewMail", FT_BOOLEAN, 16, TFS(&ulEventType_fnevNewMail_tfs), ( 0x00000002 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_max_data,
+ { "Max Data", "mapi.EcDoRpc.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_recipients_headers_username,
+ { "Username", "mapi.recipients_headers.username", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_mapi_SPropValue_CTR_dbl,
{ "Dbl", "mapi.SPropValue_CTR.dbl", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMsgStore_req_mailbox,
- { "Mailbox", "mapi.OpenMsgStore_req.mailbox", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_MAPI_handle,
+ { "MAPI handle", "mapi.mapi_handle", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
{ &hf_mapi_EcDoRpc_mapi_response,
{ "Mapi Response", "mapi.EcDoRpc.mapi_response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_error_code,
- { "Error Code", "mapi.EcDoRpc_MAPI_REPL.error_code", FT_UINT32, BASE_DEC, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_req_message_permissions,
- { "Message Permissions", "mapi.OpenMessage_req.message_permissions", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevSearchComplete,
- { "Fnevsearchcomplete", "mapi.ulEventType.fnevSearchComplete", FT_BOOLEAN, 16, TFS(&ulEventType_fnevSearchComplete_tfs), ( 0x00000080 ), NULL, HFILL }},
- { &hf_mapi_EcDoRpc_size,
- { "Size", "mapi.EcDoRpc.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevTableModified,
+ { "Fnevtablemodified", "mapi.ulEventType.fnevTableModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevTableModified_tfs), ( 0x00000100 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_mapi_tag,
+ { "MAPI tag", "mapi.EcDoRpc.mapi_tag", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_OpenMessage_recipients_recipients_headers_,
+ { "Subcontext length", "mapi.OpenMessage_recipients.subcontext", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcRUnregisterPushNotification_unknown,
+ { "Unknown", "mapi.EcRUnregisterPushNotification.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_err,
+ { "Err", "mapi.SPropValue_CTR.err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_pdu_len,
+ { "Length", "mapi.pdu.len", FT_UINT16, BASE_HEX, NULL, 0x0, "Size of the command PDU", HFILL }},
{ &hf_mapi_recipient_type_SMTP,
{ "Smtp", "mapi.recipient_type.SMTP", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_req_folder_id,
- { "Folder Id", "mapi.OpenMessage_req.folder_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_ulPropTag,
- { "Ulproptag", "mapi.SPropValue.ulPropTag", FT_UINT32, BASE_DEC, VALS(mapi_MAPITAGS_vals), 0, NULL, HFILL }},
- { &hf_mapi_mapi_response_mapi_repl,
- { "Mapi Repl", "mapi.mapi_response.mapi_repl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_org_group,
- { "Org Group", "mapi.EcDoConnect.org_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_mapi_response_,
- { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_response_length,
- { "Length", "mapi.mapi_response.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipient_type,
- { "Recipient Type", "mapi.recipients_headers.type", FT_UINT16, BASE_HEX, VALS(mapi_OM_recipient_type_vals), 0, "NULL", HFILL }},
+ { &hf_mapi_MAPISTATUS_status,
+ { "MAPISTATUS", "mapi.MAPISTATUS_status", FT_UINT32, BASE_HEX, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevExtended,
+ { "Fnevextended", "mapi.ulEventType.fnevExtended", FT_BOOLEAN, 16, TFS(&ulEventType_fnevExtended_tfs), ( 0x80000000 ), NULL, HFILL }},
+ { &hf_mapi_OpenMessage_recipients_codepage,
+ { "Codepage", "mapi.OpenMessage_recipients.codepage", FT_UINT32, BASE_DEC, VALS(mapi_CODEPAGEID_vals), 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevStatusObjectModified,
+ { "Fnevstatusobjectmodified", "mapi.ulEventType.fnevStatusObjectModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevStatusObjectModified_tfs), ( 0x00000200 ), NULL, HFILL }},
{ &hf_mapi_EcRRegisterPushNotification_notifkey,
{ "Notifkey", "mapi.EcRRegisterPushNotification.notifkey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_u,
- { "U", "mapi.EcDoRpc_MAPI_REQ.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcRRegisterPushNotification_sockaddr_len,
+ { "Sockaddr Len", "mapi.EcRRegisterPushNotification.sockaddr_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_offset,
+ { "Offset", "mapi.EcDoRpc.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_mapi_request,
+ { "Mapi Request", "mapi.EcDoRpc.mapi_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_row,
+ { "Row", "mapi.EcDoRpc.row", FT_UINT8, BASE_HEX, NULL, 0, "NULL", HFILL }},
{ &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenFolder,
{ "Mapi Openfolder", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_OpenFolder", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipients_headers_prop_count,
- { "Prop Count", "mapi.recipients_headers.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_GetProps,
- { "Mapi Getprops", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_GetProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_request_handles,
- { "Handles", "mapi.mapi_request.handles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_input_locale,
- { "Input Locale", "mapi.EcDoConnect.input_locale", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_GetProps_req_prop_count,
- { "Prop Count", "mapi.GetProps_req.prop_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevReservedForMapi,
- { "Fnevreservedformapi", "mapi.ulEventType.fnevReservedForMapi", FT_BOOLEAN, 16, TFS(&ulEventType_fnevReservedForMapi_tfs), ( 0x40000000 ), NULL, HFILL }},
- { &hf_mapi_OpenMsgStore_req_codepage,
- { "Codepage", "mapi.OpenMsgStore_req.codepage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_recipient_type_EXCHANGE,
+ { "Exchange", "mapi.recipient_type.EXCHANGE", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_lpguid,
+ { "Lpguid", "mapi.SPropValue_CTR.lpguid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_mapi_LPSTR_lppszA,
{ "Lppsza", "mapi.LPSTR.lppszA", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_mapi_request_,
- { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_handle_idx,
- { "Handle Idx", "mapi.EcDoRpc_MAPI_REPL.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcRRegisterPushNotification_unknown2,
- { "Unknown2", "mapi.EcRRegisterPushNotification.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_err,
- { "Err", "mapi.SPropValue_CTR.err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_padding,
+ { "Padding", "mapi.EcDoRpc.padding", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_EcDoRpc_folder_id,
+ { "Folder ID", "mapi.EcDoRpc.folder_id", FT_UINT64, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_opnum,
+ { "Operation", "mapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_codepage,
+ { "Codepage", "mapi.EcDoRpc.codepage", FT_UINT32, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_recipients_headers_prop_values,
+ { "Prop Values", "mapi.recipients_headers.prop_values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_decrypted_data,
+ { "Decrypted data", "mapi.decrypted.data", FT_BYTES, BASE_NONE, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_EcDoConnect_user,
+ { "User", "mapi.EcDoConnect.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_l,
+ { "L", "mapi.SPropValue_CTR.l", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_i,
+ { "I", "mapi.SPropValue_CTR.i", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_size,
+ { "Size", "mapi.EcDoRpc.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcRRegisterPushNotification_ulEventMask,
+ { "Uleventmask", "mapi.EcRRegisterPushNotification.ulEventMask", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoConnect_alloc_space,
+ { "Alloc Space", "mapi.EcDoConnect.alloc_space", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_OpenMessage_req_message_permissions,
+ { "Message Permissions", "mapi.OpenMessage_req.message_permissions", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_prop_count,
+ { "Prop count", "mapi.EcDoRpc.prop_count", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }},
{ &hf_mapi_EcRRegisterPushNotification_sockaddr,
{ "Sockaddr", "mapi.EcRRegisterPushNotification.sockaddr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_recipient_type_EXCHANGE,
- { "Exchange", "mapi.recipient_type.EXCHANGE", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenFolder_req_handle_idx,
- { "Handle Idx", "mapi.OpenFolder_req.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_d,
- { "D", "mapi.SPropValue_CTR.d", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_unknown2,
- { "Unknown2", "mapi.EcDoConnect.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevObjectMoved,
- { "Fnevobjectmoved", "mapi.ulEventType.fnevObjectMoved", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectMoved_tfs), ( 0x00000020 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_unknown1,
+ { "Unknown1", "mapi.EcDoRpc.unknown1", FT_UINT16, BASE_HEX, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_OpenMessage_req_max_data,
+ { "Max Data", "mapi.OpenMessage_req.max_data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_mapi_EcDoRpc_MAPI_REPL_UNION_mapi_Release,
{ "Mapi Release", "mapi.EcDoRpc_MAPI_REPL_UNION.mapi_Release", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_mapi_response_mapi_len,
- { "Mapi Len", "mapi.mapi_response.mapi_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevObjectCopied,
- { "Fnevobjectcopied", "mapi.ulEventType.fnevObjectCopied", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCopied_tfs), ( 0x00000040 ), NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevCriticalError,
- { "Fnevcriticalerror", "mapi.ulEventType.fnevCriticalError", FT_BOOLEAN, 16, TFS(&ulEventType_fnevCriticalError_tfs), ( 0x00000001 ), NULL, HFILL }},
- { &hf_mapi_FILETIME_dwHighDateTime,
- { "Dwhighdatetime", "mapi.FILETIME.dwHighDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_alloc_space,
- { "Alloc Space", "mapi.EcDoConnect.alloc_space", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_property_types,
- { "Value", "mapi.SPropValue.value", FT_UINT32, BASE_HEX, VALS(mapi_property_types_vals), 0, "NULL", HFILL }},
- { &hf_mapi_OpenMsgStore_req_mailbox_str_size,
- { "Mailbox Str Size", "mapi.OpenMsgStore_req.mailbox_str_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_recipients_RecipClass,
- { "Recipclass", "mapi.OpenMessage_recipients.RecipClass", FT_UINT8, BASE_DEC, VALS(mapi_ulRecipClass_vals), 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_session_nb,
- { "Session Nb", "mapi.EcDoConnect.session_nb", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_handle_idx,
- { "Handle Idx", "mapi.EcDoRpc_MAPI_REQ.handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevTableModified,
- { "Fnevtablemodified", "mapi.ulEventType.fnevTableModified", FT_BOOLEAN, 16, TFS(&ulEventType_fnevTableModified_tfs), ( 0x00000100 ), NULL, HFILL }},
- { &hf_mapi_OpenMsgStore_req_padding,
- { "Padding", "mapi.OpenMsgStore_req.padding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_GetProps_repl_layout,
- { "Layout", "mapi.GetProps_repl.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_code_page,
- { "Code Page", "mapi.EcDoConnect.code_page", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_unknown3,
- { "Unknown3", "mapi.EcDoConnect.unknown3", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_req_message_id,
- { "Message Id", "mapi.OpenMessage_req.message_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMessage_recipients_codepage,
- { "Codepage", "mapi.OpenMessage_recipients.codepage", FT_UINT32, BASE_DEC, VALS(mapi_CODEPAGEID_vals), 0, NULL, HFILL }},
- { &hf_mapi_EcRUnregisterPushNotification_unknown,
- { "Unknown", "mapi.EcRUnregisterPushNotification.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_mapi_request,
- { "Mapi Request", "mapi.EcDoRpc.mapi_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevObjectCreated,
- { "Fnevobjectcreated", "mapi.ulEventType.fnevObjectCreated", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectCreated_tfs), ( 0x00000004 ), NULL, HFILL }},
- { &hf_mapi_EcDoConnect_store_version,
- { "Store Version", "mapi.EcDoConnect.store_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_offset,
- { "Offset", "mapi.EcDoRpc.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SRow_ulRowFlags,
- { "Ulrowflags", "mapi.SRow.ulRowFlags", FT_UINT8, BASE_DEC, VALS(mapi_ulRowFlags_vals), 0, NULL, HFILL }},
- { &hf_mapi_MAPI_OPNUM,
- { "Opnum", "mapi.EcDoRpc_MAPI_REQ.opnum", FT_UINT8, BASE_HEX, VALS(mapi_MAPI_OPNUM_vals), 0, "NULL", HFILL }},
- { &hf_mapi_ulEventType_fnevExtended,
- { "Fnevextended", "mapi.ulEventType.fnevExtended", FT_BOOLEAN, 16, TFS(&ulEventType_fnevExtended_tfs), ( 0x80000000 ), NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REPL_opnum,
- { "Opnum", "mapi.EcDoRpc_MAPI_REPL.opnum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_ulEventType_fnevObjectDeleted,
- { "Fnevobjectdeleted", "mapi.ulEventType.fnevObjectDeleted", FT_BOOLEAN, 16, TFS(&ulEventType_fnevObjectDeleted_tfs), ( 0x00000008 ), NULL, HFILL }},
- { &hf_mapi_FILETIME_dwLowDateTime,
- { "Dwlowdatetime", "mapi.FILETIME.dwLowDateTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_OpenMsgStore_req_row,
- { "Row", "mapi.OpenMsgStore_req.row", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_pdu_len,
- { "Length", "mapi.pdu.len", FT_UINT16, BASE_HEX, NULL, 0x0, "Size of the command PDU", HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_UNION_mapi_OpenMsgStore,
- { "Mapi Openmsgstore", "mapi.EcDoRpc_MAPI_REQ_UNION.mapi_OpenMsgStore", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_input_locale_method,
- { "Method", "mapi.input_locale.method", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_SPropValue_CTR_l,
- { "L", "mapi.SPropValue_CTR.l", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcRRegisterPushNotification_unknown2,
+ { "Unknown2", "mapi.EcRRegisterPushNotification.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_ulEventType_fnevReservedForMapi,
+ { "Fnevreservedformapi", "mapi.ulEventType.fnevReservedForMapi", FT_BOOLEAN, 16, TFS(&ulEventType_fnevReservedForMapi_tfs), ( 0x40000000 ), NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_mapi_response_,
+ { "Subcontext length", "mapi.EcDoRpc.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_mapi_recipients_headers_bitmask,
{ "Bitmask", "mapi.recipients_headers.bitmask", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_user,
- { "User", "mapi.EcDoConnect.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoConnect_unknown4,
- { "Unknown4", "mapi.EcDoConnect.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_EcDoRpc_MAPI_REQ_mapi_flags,
- { "Mapi Flags", "mapi.EcDoRpc_MAPI_REQ.mapi_flags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_mapi_MAPISTATUS_status,
- { "MAPISTATUS", "mapi.MAPISTATUS_status", FT_UINT32, BASE_HEX, VALS(mapi_MAPISTATUS_vals), 0, NULL, HFILL }},
+ { &hf_mapi_SPropValue_CTR_ft,
+ { "Ft", "mapi.SPropValue_CTR.ft", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_input_locale_language,
+ { "Language", "mapi.input_locale.language", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_SRow_ulRowFlags,
+ { "Ulrowflags", "mapi.SRow.ulRowFlags", FT_UINT8, BASE_DEC, VALS(mapi_ulRowFlags_vals), 0, NULL, HFILL }},
+ { &hf_mapi_OpenMessage_req_folder_handle_idx,
+ { "Folder Handle Idx", "mapi.OpenMessage_req.folder_handle_idx", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_recipients_headers_layout,
+ { "Layout", "mapi.recipients_headers.layout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_mapi_request_mapi_req,
+ { "Mapi Req", "mapi.mapi_request.mapi_req", FT_NONE, BASE_NONE, NULL, 0, "HFILL", HFILL }},
+ { &hf_mapi_EcDoRpc_layout,
+ { "Layout", "mapi.EcDoRpc.layout", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }},
+ { &hf_mapi_EcDoConnect_code_page,
+ { "Code Page", "mapi.EcDoConnect.code_page", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_mapi_EcDoRpc_handle_index,
+ { "Handle index", "mapi.EcDoRpc.handle_index", FT_UINT8, BASE_DEC, NULL, 0, "NULL", HFILL }},
};
static gint *ett[] = {
+ &ett_mapi_mapi_request,
+ &ett_mapi_EcDoRpc_MAPI_REQ,
+ &ett_mapi_OpenFolder_req,
+ &ett_mapi_GetProps_req,
+ &ett_mapi_OpenMsgStore_req,
+ &ett_mapi_mapi_response,
+ &ett_mapi_EcDoRpc_MAPI_REPL,
+ &ett_mapi_OpenFolder_repl,
+ &ett_mapi_GetProps_repl,
&ett_dcerpc_mapi,
&ett_mapi_DATA_BLOB,
&ett_mapi_input_locale,
@@ -10886,8 +10427,6 @@ void proto_register_dcerpc_mapi(void)
&ett_mapi_SRow,
&ett_mapi_Release_req,
&ett_mapi_Release_repl,
- &ett_mapi_OpenFolder_req,
- &ett_mapi_OpenFolder_repl,
&ett_mapi_OpenMessage_req,
&ett_mapi_RecipExchange,
&ett_mapi_RecipSMTP,
@@ -10895,16 +10434,9 @@ void proto_register_dcerpc_mapi(void)
&ett_mapi_recipient_displayname_7bit,
&ett_mapi_recipients_headers,
&ett_mapi_OpenMessage_recipients,
- &ett_mapi_GetProps_req,
- &ett_mapi_GetProps_repl,
&ett_mapi_ulEventType,
- &ett_mapi_OpenMsgStore_req,
&ett_mapi_EcDoRpc_MAPI_REQ_UNION,
&ett_mapi_EcDoRpc_MAPI_REPL_UNION,
- &ett_mapi_EcDoRpc_MAPI_REQ,
- &ett_mapi_EcDoRpc_MAPI_REPL,
- &ett_mapi_mapi_request,
- &ett_mapi_mapi_response,
};
proto_dcerpc_mapi = proto_register_protocol("Exchange 5.5 EMSMDB", "MAPI", "mapi");
diff --git a/epan/dissectors/packet-dcerpc-mapi.h b/epan/dissectors/packet-dcerpc-mapi.h
index 5088ebb6a6..16d0b7fe61 100644
--- a/epan/dissectors/packet-dcerpc-mapi.h
+++ b/epan/dissectors/packet-dcerpc-mapi.h
@@ -1,6 +1,6 @@
/* DO NOT EDIT
This file was automatically generated by Pidl
- from mapi/mapi.idl and mapi/mapi.cnf.
+ from mapi.idl and mapi.cnf.
Pidl is a perl based IDL compiler for DCE/RPC idl files.
It is maintained by the Samba team, not the Wireshark team.
@@ -3617,8 +3617,6 @@ int mapi_dissect_enum_ulRowFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info
int mapi_dissect_struct_SRow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int mapi_dissect_struct_Release_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int mapi_dissect_struct_Release_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_OpenFolder_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_OpenFolder_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int mapi_dissect_struct_OpenMessage_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#define CP_USASCII (0x04E4)
#define CP_UNICODE (0x04B0)
@@ -3649,12 +3647,5 @@ extern const value_string mapi_OM_recipient_displayname_7bit_vals[];
int mapi_dissect_enum_OM_recipient_displayname_7bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_);
int mapi_dissect_struct_recipients_headers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int mapi_dissect_struct_OpenMessage_recipients(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_GetProps_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_GetProps_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int mapi_dissect_bitmap_ulEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_OpenMsgStore_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int mapi_dissect_struct_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#endif /* __PACKET_DCERPC_MAPI_H */
diff --git a/epan/dissectors/pidl/mapi/mapi.cnf b/epan/dissectors/pidl/mapi/mapi.cnf
index 78f2190b52..fffb620554 100644
--- a/epan/dissectors/pidl/mapi/mapi.cnf
+++ b/epan/dissectors/pidl/mapi/mapi.cnf
@@ -28,6 +28,7 @@ HF_RENAME hf_mapi_EcDoRpc_MAPI_REQ_opnum hf_mapi_MAPI_OPNUM
HF_FIELD hf_mapi_pdu_len "Length" "mapi.pdu.len" FT_UINT16 BASE_HEX NULL 0x0 "Size of the command PDU" HFILL
HF_FIELD hf_mapi_decrypted_data "Decrypted data" "mapi.decrypted.data" FT_BYTES BASE_NONE NULL 0 NULL HFILL
+HF_FIELD hf_mapi_MAPI_handle "MAPI handle" "mapi.mapi_handle" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
NOEMIT SBinary_short
NOEMIT MV_LONG_STRUCT
@@ -87,9 +88,8 @@ static int mapi_dissect_element_request_handles_cnf(tvbuff_t *tvb _U_, int offse
gint reported_len;
gint i;
gint handles_cnt = 0;
- int old_offset;
guint32 value;
- proto_tree *tr;
+ proto_tree *tr = NULL;
reported_len = tvb_reported_length_remaining(tvb, offset);
@@ -98,10 +98,9 @@ static int mapi_dissect_element_request_handles_cnf(tvbuff_t *tvb _U_, int offse
tr = proto_tree_add_subtree_format(tree, tvb, offset, reported_len, ett_mapi_mapi_request, NULL, "MAPI Handles: %d", handles_cnt);
for (i = 0; i < handles_cnt; i++) {
- old_offset = offset;
- value = tvb_get_letohl(tvb, offset);
- offset += 4;
- proto_tree_add_text(tr, tvb, old_offset, offset - old_offset, "[%.2d] MAPI handle: 0x%.8x", i, value);
+ value = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint_format(tr, hf_mapi_MAPI_handle, tvb, offset, 4, value, "[%.2d] MAPI handle: 0x%.8x", i, value);
+ offset += 4;
}
return offset;
diff --git a/epan/dissectors/pidl/mapi/request.cnf.c b/epan/dissectors/pidl/mapi/request.cnf.c
index e94f2e82cf..4d49102cfe 100644
--- a/epan/dissectors/pidl/mapi/request.cnf.c
+++ b/epan/dissectors/pidl/mapi/request.cnf.c
@@ -33,6 +33,23 @@ NOEMIT OpenMsgStore_req
ETT_FIELD ett_mapi_OpenMsgStore_req
MANUAL mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore
+#
+# Misc. filters
+#
+HF_FIELD hf_mapi_MAPI_OPNUM "Opnum" "mapi.EcDoRpc_MAPI_REQ.opnum" FT_UINT8 BASE_HEX VALS(mapi_MAPI_OPNUM_vals) 0 NULL HFILL
+HF_RENAME hf_mapi_EcDoRpc_MAPI_REQ_opnum hf_mapi_MAPI_OPNUM
+HF_FIELD hf_mapi_EcDoRpc_mapi_flags "mapi_flags" "mapi.EcDoRpc.mapi_flags" FT_UINT8 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_folder_id "Folder ID" "mapi.EcDoRpc.folder_id" FT_UINT64 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_unknown2 "Unknown2" "mapi.EcDoRpc.unknown2" FT_UINT8 BASE_DEC NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_unknown3 "Unknown3" "mapi.EcDoRpc.unknown3" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_mapi_tag "MAPI tag" "mapi.EcDoRpc.mapi_tag" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_codepage "Codepage" "mapi.EcDoRpc.codepage" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_padding "Padding" "mapi.EcDoRpc.padding" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_row "Row" "mapi.EcDoRpc.row" FT_UINT8 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_str_length "Length" "mapi.EcDoRpc.str_length" FT_UINT16 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_mailbox "Mailbox" "mapi.EcDoRpc.mailbox" FT_STRING BASE_NONE NULL 0 NULL HFILL
+
+
CODE START
int
@@ -41,11 +58,8 @@ mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_i
proto_item *item = NULL;
proto_tree *tree = NULL;
int old_offset;
- int cur_offset;
guint8 opnum;
- guint8 mapi_flags;
- guint8 handle_idx;
-
+
old_offset = offset;
if (parent_tree) {
@@ -53,26 +67,21 @@ mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvbuff_t *tvb _U_, int offset _U_, packet_i
tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REQ);
}
- cur_offset = offset;
opnum = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "opnum: %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation"));
col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation"));
- cur_offset = offset;
- mapi_flags = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_mapi_flags, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "mapi_flags: 0x%x", mapi_flags);
- cur_offset = offset;
- handle_idx = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "handle index: %d", handle_idx);
switch(opnum) {
case op_MAPI_Release:
- offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvb, offset, pinfo, tree, di, drep);
+ offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_Release(tvb, offset, pinfo, tree, di, drep);
break;
case op_MAPI_OpenFolder:
offset = mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvb, offset, pinfo, tree, di, drep);
@@ -112,11 +121,10 @@ mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_
gint reported_len;
guint16 pdu_len;
guint32 i;
- proto_item *it = NULL;
proto_tree *tr = NULL;
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_request, &size);
- proto_tree_add_text(tree, tvb, start_offset, offset - start_offset + size, "Subcontext size: 0x%x", size);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size);
reported_len = tvb_reported_length_remaining(tvb, offset);
@@ -136,11 +144,10 @@ mapi_dissect_element_EcDoRpc_request_(tvbuff_t *tvb _U_, int offset _U_, packet_
decrypted_tvb = tvb_new_child_real_data(tvb, decrypted_data, size, reported_len);
tvb_set_free_cb(decrypted_tvb, g_free);
-
+
add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI");
- it = proto_tree_add_text(tree, decrypted_tvb, 0, size, "Decrypted MAPI PDU");
- tr = proto_item_add_subtree(it, ett_mapi_mapi_request);
+ tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_request, NULL, "Decrypted MAPI PDU");
pdu_len = tvb_get_letohs(decrypted_tvb, 0);
proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len);
@@ -168,7 +175,7 @@ static int mapi_dissect_element_EcDoRpc_request__(tvbuff_t *tvb _U_, int offset
offset += 2;
while (offset < length) {
- offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, drep, hf_mapi_mapi_request_mapi_req, length - offset);
+ offset = mapi_dissect_struct_EcDoRpc_MAPI_REQ(tvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_request_mapi_req, length - offset);
}
return offset;
@@ -195,16 +202,11 @@ mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf
/*************************/
/* EcDoRpc Function 0x2 */
static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- int old_offset;
int origin_offset;
- /**** Function parameters ****/
- guint8 handle_idx;
- guint64 folder_id;
- guint8 unknown;
origin_offset = offset;
@@ -213,38 +215,30 @@ mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenFolder(tvbuff_t *tvb _U_, int of
tree = proto_item_add_subtree(item, ett_mapi_OpenFolder_req);
}
- old_offset = offset;
- handle_idx = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "handle index: %d", handle_idx);
- old_offset = offset;
- folder_id = tvb_get_letoh64(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_folder_id, tvb, offset, 8, ENC_LITTLE_ENDIAN);
offset += 8;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "folder ID: 0x%" G_GINT64_MODIFIER "x", folder_id);
- old_offset = offset;
- unknown = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown2, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "unknown: %d", unknown);
-
+
proto_item_set_len(item, offset - origin_offset);
-
+
return offset;
}
/*************************/
/* EcDoRpc Function 0x7 */
static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- int old_offset;
int origin_offset;
guint16 i;
/**** Function parameters ****/
- guint32 unknown;
guint16 prop_count;
guint32 mapitag;
@@ -255,21 +249,17 @@ mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offs
tree = proto_item_add_subtree(item, ett_mapi_GetProps_req);
}
- old_offset = offset;
- unknown = tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown3, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "unknown: 0x%x", unknown);
- old_offset = offset;
prop_count = tvb_get_letohs(tvb, offset);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 2, prop_count);
offset += 2;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "prop_count: %d", prop_count);
for (i = 0; i < prop_count; i++) {
- old_offset = offset;
- mapitag = tvb_get_letohl(tvb, offset);
- offset += 4;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "[%.2d] %s", i, val_to_str(mapitag, mapi_MAPITAGS_vals, "Unknown MAPITAGS"));
+ mapitag = tvb_get_letohl(tvb, offset);
+ proto_tree_add_uint_format(tree, hf_mapi_EcDoRpc_mapi_tag, tvb, offset, 4, mapitag, "[%.2d] %s", i, val_to_str(mapitag, mapi_MAPITAGS_vals, "Unknown MAPITAGS"));
+ offset += 4;
}
proto_item_set_len(item, offset - origin_offset);
@@ -281,7 +271,7 @@ mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_GetProps(tvbuff_t *tvb _U_, int offs
/*************************/
/* EcDoRpc Function 0xFE */
static int
-mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
@@ -302,29 +292,22 @@ mapi_dissect_element_EcDoRpc_MAPI_REQ_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int
tree = proto_item_add_subtree(item, ett_mapi_OpenMsgStore_req);
}
- codepage = tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_codepage, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "codepage: 0x%x", codepage);
- old_offset = offset;
- padding = tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_padding, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "padding: 0x%x", padding);
- old_offset = offset;
- row = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_row, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "row: 0x%x", row);
- old_offset = offset;
str_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_str_length, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "str length: 0x%x", str_len);
- old_offset = offset;
mailbox = tvb_format_text(tvb, offset, str_len - 1);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_mailbox, tvb, offset, str_len, ENC_ASCII|ENC_NA);
offset += str_len;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "mailbox: %s", mailbox);
proto_item_set_len(item, offset - origin_offset);
diff --git a/epan/dissectors/pidl/mapi/response.cnf.c b/epan/dissectors/pidl/mapi/response.cnf.c
index a40743ad17..30b4f59eb9 100644
--- a/epan/dissectors/pidl/mapi/response.cnf.c
+++ b/epan/dissectors/pidl/mapi/response.cnf.c
@@ -33,6 +33,16 @@ MANUAL mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps
#ETT_FIELD ett_mapi_OpenMsgStore_repl
#MANUAL mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore
+#
+# Misc. filters
+#
+HF_FIELD hf_mapi_MAPI_OPNUM "Opnum" "mapi.EcDoRpc_MAPI_REPL.opnum" FT_UINT8 BASE_HEX VALS(mapi_MAPI_OPNUM_vals) 0 NULL HFILL
+HF_RENAME hf_mapi_EcDoRpc_MAPI_REPL_opnum hf_mapi_MAPI_OPNUM
+HF_FIELD hf_mapi_EcDoRpc_handle_index "Handle index" "mapi.EcDoRpc.handle_index" FT_UINT8 BASE_DEC NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_subcontext_size "Subcontext size" "mapi.EcDoRpc.subcontext_size" FT_UINT32 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_unknown1 "Unknown1" "mapi.EcDoRpc.unknown1" FT_UINT16 BASE_HEX NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_layout "Layout" "mapi.EcDoRpc.layout" FT_UINT8 BASE_DEC NULL 0 NULL HFILL
+HF_FIELD hf_mapi_EcDoRpc_prop_count "Prop count" "mapi.EcDoRpc.prop_count" FT_UINT16 BASE_HEX NULL 0 NULL HFILL
CODE START
@@ -43,7 +53,6 @@ mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_
proto_item *item = NULL;
proto_tree *tree = NULL;
int old_offset;
- int cur_offset;
guint8 opnum;
guint8 handle_idx;
guint32 retval;
@@ -51,27 +60,24 @@ mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_mapi_EcDoRpc_MAPI_REPL);
}
- cur_offset = offset;
opnum = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPI_OPNUM, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "opnum: %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation: 0x%02x"));
col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_MAPI_OPNUM_vals, "Unknown MAPI operation: 0x%02x"));
if (opnum != op_MAPI_Notify) {
- cur_offset = offset;
handle_idx = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_handle_index, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "handle index: %d", handle_idx);
- cur_offset = offset;
retval = tvb_get_letohl(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_MAPISTATUS_status, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_text(tree, tvb, cur_offset, offset - cur_offset, "MAPISTATUS: %s", val_to_str(retval, mapi_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x"));
if (retval == MAPI_E_SUCCESS) {
switch(opnum) {
@@ -92,8 +98,8 @@ mapi_dissect_struct_EcDoRpc_MAPI_REPL(tvbuff_t *tvb _U_, int offset _U_, packet_
}
}
} else {
- /* we don't decode notifications within the dissector yet */
- offset += param - 1;
+ /* we don't decode notifications within the dissector yet */
+ offset += param - 1;
}
proto_item_set_len(item, offset - old_offset);
@@ -121,11 +127,10 @@ mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet
gint reported_len;
guint16 pdu_len;
guint32 i;
- proto_item *it = NULL;
proto_tree *tr = NULL;
- offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mapi_EcDoRpc_mapi_response, &size);
- proto_tree_add_text(tree, tvb, start_offset, offset - start_offset + size, "Subcontext size: 0x%x", size);
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpc_mapi_response, &size);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_subcontext_size, tvb, start_offset, offset - start_offset + size, size);
reported_len = tvb_reported_length_remaining(tvb, offset);
@@ -148,15 +153,14 @@ mapi_dissect_element_EcDoRpc_response_(tvbuff_t *tvb _U_, int offset _U_, packet
tvb_set_free_cb(decrypted_tvb, g_free);
add_new_data_source(pinfo, decrypted_tvb, "Decrypted MAPI");
- it = proto_tree_add_text(tree, decrypted_tvb, 0, size, "Decrypted MAPI PDU");
- tr = proto_item_add_subtree(it, ett_mapi_mapi_response);
+ tr = proto_tree_add_subtree(tree, decrypted_tvb, 0, size, ett_mapi_mapi_response, NULL, "Decrypted MAPI PDU");
pdu_len = tvb_get_letohs(decrypted_tvb, 0);
proto_tree_add_uint(tr, hf_mapi_pdu_len, decrypted_tvb, 0, 2, pdu_len);
proto_tree_add_item(tr, hf_mapi_decrypted_data, decrypted_tvb, 2, pdu_len - 2, ENC_NA);
/* Analyze contents */
- offset = mapi_dissect_element_EcDoRpc_response__(decrypted_tvb, 0, pinfo, tr, drep);
+ offset = mapi_dissect_element_EcDoRpc_response__(decrypted_tvb, 0, pinfo, tr, di, drep);
/* Analyze mapi handles */
offset = mapi_dissect_element_request_handles_cnf(decrypted_tvb, offset, pinfo, tr, di, drep);
@@ -175,7 +179,7 @@ mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packe
offset += 2;
while (offset < length) {
- offset = mapi_dissect_struct_EcDoRpc_MAPI_REPL(subtvb, offset, pinfo, tree, drep, hf_mapi_mapi_response_mapi_repl, length - offset);
+ offset = mapi_dissect_struct_EcDoRpc_MAPI_REPL(subtvb, offset, pinfo, tree, di, drep, hf_mapi_mapi_response_mapi_repl, length - offset);
}
return offset;
@@ -184,7 +188,7 @@ mapi_dissect_element_EcDoRpc_response__(tvbuff_t *tvb _U_, int offset _U_, packe
/*************************/
/* EcDoRpc Function 0x2 */
static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
@@ -201,9 +205,8 @@ mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int o
}
old_offset = offset;
- unknown = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_unknown1, tvb, old_offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "unknown: 0x%04x", unknown);
proto_item_set_len(item, offset - origin_offset);
@@ -213,11 +216,10 @@ mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenFolder(tvbuff_t *tvb _U_, int o
/*************************/
/* EcDoRpc Function 0x7 */
static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- int old_offset;
int origin_offset;
/**** Function parameters ****/
guint8 layout;
@@ -230,15 +232,12 @@ mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int off
tree = proto_item_add_subtree(item, ett_mapi_GetProps_repl);
}
- old_offset = offset;
- layout = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_mapi_EcDoRpc_layout, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "layout: %d", layout);
- old_offset = offset;
length = tvb_reported_length_remaining(tvb, offset);
+ proto_tree_add_uint(tree, hf_mapi_EcDoRpc_prop_count, tvb, offset, 0, length);
offset += length;
- proto_tree_add_text(tree, tvb, old_offset, offset - old_offset, "prop_count: 0x%x", length);
proto_item_set_len(item, offset - origin_offset);
@@ -248,7 +247,7 @@ mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_GetProps(tvbuff_t *tvb _U_, int off
/*************************/
/* EcDoRpc Function 0xFE */
/* static int
-mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *parent_tree _U_, guint8 *drep _U_)
+mapi_dissect_element_EcDoRpc_MAPI_REPL_UNION_OpenMsgStore(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;