Hi all,
I've come across an issue in MAPIProxy. It seems that if a response buffer
contains a response (such as RopFindRow) that holds PropertyRow data, all
responses after that in the buffer are not extracted into structures and are
contained within the data blob.
Unfortunately I don't see how MAPIProxy can easily fix this since I believe
determining how much data the RopFindRow response contains requires decoding
the properties and that might require knowing the requested order of properties
set in a previous SetColumns request.
Any ideas on how to address this would be welcome.
Murray
Dump of this occurring....
EcDoRpc: struct EcDoRpc
in: struct EcDoRpc
handle : *
handle: struct policy_handle
handle_type : 0x00000000 (0)
uuid :
873babaf-1b2d-40eb-bcaa-33e92e80bf20
size : 0x00007fff (32767)
offset : 0x00000000 (0)
mapi_request : *
mapi_len : 0x00000142 (322)
length : 0x0122 (290)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x05 (5)
logon_id : 0x01 (1)
handle_idx : 0x00 (0)
u : union
EcDoRpc_MAPI_REQ_UNION(case 5)
mapi_GetContentsTable: struct GetContentsTable_req
handle_idx : 0x01 (1)
TableFlags : 0x02 (2)
1: TableFlags_Associated
0: TableFlags_Depth
0: TableFlags_DeferredErrors
0: TableFlags_NoNotifications
0: TableFlags_SoftDeletes
0: TableFlags_UseUnicode
0: TableFlags_SuppressNotifications
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x12 (18)
logon_id : 0x01 (1)
handle_idx : 0x01 (1)
u : union
EcDoRpc_MAPI_REQ_UNION(case 18)
mapi_SetColumns: struct SetColumns_req
SetColumnsFlags : SetColumns_TBL_SYNC (0)
prop_count : 0x0007 (7)
properties: ARRAY(7)
properties : PidTagFolderId
(0x67480014)
properties : PidTagMid
(0x674A0014)
properties : PidTagInstID
(0x674D0014)
properties : PidTagInstanceNum
(0x674E0003)
properties : PidTagMessageClass
(0x1A001F)
properties :
PidTagConversationTopic (0x70001F)
properties : PidTagReportName
(0x3A001F)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x13 (19)
logon_id : 0x01 (1)
handle_idx : 0x01 (1)
u : union
EcDoRpc_MAPI_REQ_UNION(case 19)
mapi_SortTable: struct SortTable_req
SortTableFlags : 0x00 (0)
lpSortCriteria: struct SSortOrderSet
cSorts : 0x0001 (1)
cCategories : 0x0000 (0)
cExpanded : 0x0000 (0)
aSort: ARRAY(1)
aSort: struct SSortOrder
ulPropTag :
PidTagMessageClass (0x1A001F)
ulOrder :
TABLE_SORT_ASCEND (0x0)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x4f (79)
logon_id : 0x01 (1)
handle_idx : 0x01 (1)
u : union
EcDoRpc_MAPI_REQ_UNION(case 79)
mapi_FindRow: struct FindRow_req
ulFlags : DIR_FORWARD (0)
res: struct mapi_SRestriction
rt : 0x04 (4)
res : union
mapi_SRestriction_CTR(case 4)
resProperty: struct mapi_SPropertyRestriction
relop : 0x03 (3)
ulPropTag :
PidTagMessageClass (0x1A001F)
lpProp: struct mapi_SPropValue
ulPropTag :
PidTagMessageClass (0x1A001F)
value : union
mapi_SPropValue_CTR(case 31)
lpszW :
'IPM.Microsoft.PendingChange.'
origin : BOOKMARK_BEGINNING (0)
bookmark : SBinary_short cb=0
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x02 (2)
logon_id : 0x01 (1)
handle_idx : 0x02 (2)
u : union
EcDoRpc_MAPI_REQ_UNION(case 2)
mapi_OpenFolder: struct OpenFolder_req
handle_idx : 0x03 (3)
folder_id : 0x4c00000000000001
(5476377146882523137)
OpenModeFlags : OpenModeFlags_Folder (0)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x29 (41)
logon_id : 0x01 (1)
handle_idx : 0x02 (2)
u : union
EcDoRpc_MAPI_REQ_UNION(case 41)
mapi_RegisterNotification: struct
RegisterNotification_req
handle_idx : 0x04 (4)
NotificationFlags : 0x0078 (120)
0: fnevCriticalError
0: fnevNewMail
0: fnevObjectCreated
1: fnevObjectDeleted
1: fnevObjectModified
1: fnevObjectMoved
1: fnevObjectCopied
0: fnevSearchComplete
0: fnevTableModified
0: fnevStatusObjectModified
0: fnevReserved
0: fnevTbit
0: fnevUbit
0: fnevSbit
0: fnevMbit
WantWholeStore : 0x00 (0)
FolderId : union hyperbool(case 0)
ID : 0x4c00000000000001
(5476377146882523137)
MessageId : union hyperbool(case 0)
ID : 0x0000000000000000 (0)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x07 (7)
logon_id : 0x01 (1)
handle_idx : 0x03 (3)
u : union
EcDoRpc_MAPI_REQ_UNION(case 7)
mapi_GetProps: struct GetProps_req
PropertySizeLimit : 0x0000 (0)
WantUnicode : 0x0001 (1)
prop_count : 0x0012 (18)
properties: ARRAY(18)
properties : PidTagParentFolderId
(0x67490014)
properties : PidTagAccess
(0xFF40003)
properties : UNKNOWN_ENUM_VALUE
(0x66720102)
properties :
PidTagDefaultPostMessageClass (0x36E5001F)
properties : UNKNOWN_ENUM_VALUE
(0x36E6001F)
properties : PidTagDisplayName
(0x3001001F)
properties : PidTagFolderType
(0x36010003)
properties : PidTagContentCount
(0x36020003)
properties :
PidTagContentUnreadCount (0x36030003)
properties : PidTagSubfolders
(0x360A000B)
properties : PidTagContainerClass
(0x3613001F)
properties : UNKNOWN_ENUM_VALUE
(0x36160102)
properties : UNKNOWN_ENUM_VALUE
(0x36DE0003)
properties : UNKNOWN_ENUM_VALUE
(0x36DF0102)
properties : UNKNOWN_ENUM_VALUE
(0x36E00102)
properties : UNKNOWN_ENUM_VALUE
(0x36E10003)
properties :
PidTagExtendedFolderFlags (0x36DA0102)
properties : UNKNOWN_ENUM_VALUE
(0x672D0003)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x01 (1)
logon_id : 0x01 (1)
handle_idx : 0x05 (5)
u : union
EcDoRpc_MAPI_REQ_UNION(case 1)
mapi_Release: struct Release_req
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x03 (3)
logon_id : 0x01 (1)
handle_idx : 0x02 (2)
u : union
EcDoRpc_MAPI_REQ_UNION(case 3)
mapi_OpenMessage: struct OpenMessage_req
handle_idx : 0x06 (6)
CodePageId : 0x0fff (4095)
FolderId : 0x8814000000000001
(-8641281785017139199)
OpenModeFlags : BestAccess (3)
MessageId : 0x0f19000000000001
(1087900784986685441)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x2b (43)
logon_id : 0x01 (1)
handle_idx : 0x06 (6)
u : union
EcDoRpc_MAPI_REQ_UNION(case 43)
mapi_OpenStream: struct OpenStream_req
handle_idx : 0x07 (7)
PropertyTag : PidTagRwRulesStream
(0x68020102)
OpenModeFlags : OpenStream_ReadOnly (0)
mapi_request: struct EcDoRpc_MAPI_REQ
opnum : 0x2c (44)
logon_id : 0x01 (1)
handle_idx : 0x07 (7)
u : union
EcDoRpc_MAPI_REQ_UNION(case 44)
mapi_ReadStream: struct ReadStream_req
ByteCount : 0x7c00 (31744)
MaximumByteCount : union
MaximumByteCount(case 31744)
mapi_request : (handles) number=8
handle : 0x0000006a (106)
handle : 0xffffffff (4294967295)
handle : 0x00000047 (71)
handle : 0xffffffff (4294967295)
handle : 0xffffffff (4294967295)
handle : 0x0000005b (91)
handle : 0xffffffff (4294967295)
handle : 0xffffffff (4294967295)
length : *
length : 0x0142 (322)
max_data : 0x7fff (32767)
EcDoRpc: struct EcDoRpc
out: struct EcDoRpc
handle : *
handle: struct policy_handle
handle_type : 0x00000000 (0)
uuid :
873babaf-1b2d-40eb-bcaa-33e92e80bf20
size : 0x00007fff (32767)
offset : 0x00000000 (0)
mapi_response : *
mapi_response : length=571
mapi_response: ARRAY(569)
mapi_repl: struct EcDoRpc_MAPI_REPL
opnum : 0x05 (5)
handle_idx : 0x01 (1)
error_code : MAPI_E_SUCCESS (0x0)
u : union
EcDoRpc_MAPI_REPL_UNION(case 5)
mapi_GetContentsTable: struct GetContentsTable_repl
RowCount : 0x0000000b (11)
mapi_repl: struct EcDoRpc_MAPI_REPL
opnum : 0x12 (18)
handle_idx : 0x01 (1)
error_code : MAPI_E_SUCCESS (0x0)
u : union
EcDoRpc_MAPI_REPL_UNION(case 18)
mapi_SetColumns: struct SetColumns_repl
TableStatus : TBLSTAT_COMPLETE (0)
mapi_repl: struct EcDoRpc_MAPI_REPL
opnum : 0x13 (19)
handle_idx : 0x01 (1)
error_code : MAPI_E_SUCCESS (0x0)
u : union
EcDoRpc_MAPI_REPL_UNION(case 19)
mapi_SortTable: struct SortTable_repl
TableStatus : TBLSTAT_COMPLETE (0)
mapi_repl: struct EcDoRpc_MAPI_REPL
opnum : 0x4f (79)
handle_idx : 0x01 (1)
error_code : MAPI_E_SUCCESS (0x0)
u : union
EcDoRpc_MAPI_REPL_UNION(case 79)
mapi_FindRow: struct FindRow_repl
RowNoLongerVisible : 0x00 (0)
HasRowData : 0x01 (1)
row : DATA_BLOB length=537
[0000] 01 00 01 00 00 00 00 00 14 88 00 01 00 00 00 00 ........ ........
[0010] 00 19 0E 00 01 00 00 00 00 00 19 0E 00 00 00 00 ........ ........
[0020] 00 00 49 00 50 00 4D 00 2E 00 52 00 75 00 6C 00 ..I.P.M. ..R.u.l.
[0030] 65 00 2E 00 4D 00 65 00 73 00 73 00 61 00 67 00 e...M.e. s.s.a.g.
[0040] 65 00 00 00 0A 0F 01 04 80 0A 0F 01 04 80 02 03 e....... ........
[0050] 00 00 00 00 00 00 29 04 00 00 00 00 07 03 00 00 ......). ........
[0060] 00 00 01 00 01 00 00 00 00 00 14 85 00 3F 00 00 ........ .....?..
[0070] 00 0A 0F 01 04 80 0A 0F 01 04 80 0A 0F 01 04 80 ........ ........
[0080] 00 43 00 61 00 6C 00 65 00 6E 00 64 00 61 00 72 .C.a.l.e .n.d.a.r
[0090] 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ........ ........
[00A0] 00 00 00 00 00 49 00 50 00 46 00 2E 00 41 00 70 .....I.P .F...A.p
[00B0] 00 70 00 6F 00 69 00 6E 00 74 00 6D 00 65 00 6E .p.o.i.n .t.m.e.n
[00C0] 00 74 00 00 00 0A 0F 01 04 80 00 00 00 00 40 0A .t...... ......@.
[00D0] 0F 01 04 80 0A 0F 01 04 80 0A 0F 01 04 80 00 06 ........ ........
[00E0] 00 01 04 00 00 10 00 0A 0F 01 04 80 03 06 00 00 ........ ........
[00F0] 00 00 00 01 03 4F 75 74 6C 6F 6F 6B 20 52 75 6C .....Out look Rul
[0100] 65 73 20 4F 72 67 61 6E 69 7A 65 72 00 00 00 00 es Organ izer....
[0110] 00 00 2B 07 00 00 00 00 F5 00 00 00 2C 07 00 00 ..+..... ....,...
[0120] 00 00 F5 00 80 4F 12 00 80 4F 12 00 00 00 00 00 .....O.. .O......
[0130] 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ........ ........
[0140] 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 ........ ........
[0150] 01 00 80 4F 12 05 26 43 00 6C 00 65 00 61 00 72 ...O..&C .l.e.a.r
[0160] 00 20 00 63 00 61 00 74 00 65 00 67 00 6F 00 72 . .c.a.t .e.g.o.r
[0170] 00 69 00 65 00 73 00 20 00 6F 00 6E 00 20 00 6D .i.e.s. .o.n. .m
[0180] 00 61 00 69 00 6C 00 20 00 28 00 72 00 65 00 63 .a.i.l. .(.r.e.c
[0190] 00 6F 00 6D 00 6D 00 65 00 6E 00 64 00 65 00 64 .o.m.m.e .n.d.e.d
[01A0] 00 29 00 01 00 00 00 00 00 00 00 01 00 00 00 00 .)...... ........
[01B0] 00 00 00 01 00 00 00 4A 00 00 00 04 00 FF FF 00 .......J ........
[01C0] 00 0C 00 43 52 75 6C 65 45 6C 65 6D 65 6E 74 90 ...CRule Element.
[01D0] 01 00 00 01 00 00 00 00 00 00 00 01 00 00 00 01 ........ ........
[01E0] 80 64 00 00 00 01 00 00 00 00 00 00 00 01 00 00 .d...... ........
[01F0] 00 01 80 F6 00 00 00 00 00 00 00 01 80 52 01 00 ........ .....R..
[0200] 00 00 00 00 00 00 00 00 00 00 00 00 00 66 66 66 ........ .....fff
[0210] 66 E1 5D E4 40 00 00 00 00 f.].@... .
mapi_response : (handles) number=8
handle id : 0x0000006a (106)
handle id : 0x00000070 (112)
handle id : 0x00000047 (71)
handle id : 0x0000005a (90)
handle id : 0x00000059 (89)
handle id : 0x0000005b (91)
handle id : 0x0000005b (91)
handle id : 0x00000057 (87)
length : *
length : 0x025b (603)
result : MAPI_E_SUCCESS (0x0)_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel