/src/wireshark/epan/dissectors/packet-dcerpc-rfr.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* DO NOT EDIT |
2 | | This file was automatically generated by Pidl |
3 | | from rfr.idl and rfr.cnf. |
4 | | |
5 | | Pidl is a perl based IDL compiler for DCE/RPC idl files. |
6 | | It is maintained by the Samba team, not the Wireshark team. |
7 | | Instructions on how to download and install Pidl can be |
8 | | found at https://wiki.wireshark.org/Pidl |
9 | | */ |
10 | | |
11 | | |
12 | | #include "config.h" |
13 | | #include <glib.h> |
14 | | #include <string.h> |
15 | | #include <epan/packet.h> |
16 | | |
17 | | #include "packet-dcerpc.h" |
18 | | #include "packet-dcerpc-nt.h" |
19 | | #include "packet-windows-common.h" |
20 | | #include "packet-dcerpc-rfr.h" |
21 | | void proto_register_dcerpc_rfr(void); |
22 | | void proto_reg_handoff_dcerpc_rfr(void); |
23 | | |
24 | | /* Ett declarations */ |
25 | | static gint ett_dcerpc_rfr = -1; |
26 | | |
27 | | |
28 | | /* Header field declarations */ |
29 | | static gint hf_rfr_MAPISTATUS_status = -1; |
30 | | static gint hf_rfr_RfrGetFQDNFromLegacyDN_cbMailboxServerDN = -1; |
31 | | static gint hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN = -1; |
32 | | static gint hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN = -1; |
33 | | static gint hf_rfr_RfrGetFQDNFromLegacyDN_ulFlags = -1; |
34 | | static gint hf_rfr_RfrGetNewDSA_pUserDN = -1; |
35 | | static gint hf_rfr_RfrGetNewDSA_ppszServer = -1; |
36 | | static gint hf_rfr_RfrGetNewDSA_ppszUnused = -1; |
37 | | static gint hf_rfr_RfrGetNewDSA_ulFlags = -1; |
38 | | static gint hf_rfr_opnum = -1; |
39 | | |
40 | | static gint proto_dcerpc_rfr = -1; |
41 | | /* Version information */ |
42 | | |
43 | | |
44 | | static e_guid_t uuid_dcerpc_rfr = { |
45 | | 0x1544f5e0, 0x613c, 0x11d1, |
46 | | { 0x93, 0xdf, 0x00, 0xc0, 0x4f, 0xd7, 0xbd, 0x09 } |
47 | | }; |
48 | | static guint16 ver_dcerpc_rfr = 1; |
49 | | |
50 | | const value_string rfr_MAPISTATUS_vals[] = { |
51 | | { MAPI_E_SUCCESS, "MAPI_E_SUCCESS" }, |
52 | | { MAPI_E_NO_SUPPORT, "MAPI_E_NO_SUPPORT" }, |
53 | | { MAPI_E_BAD_CHARWIDTH, "MAPI_E_BAD_CHARWIDTH" }, |
54 | | { MAPI_E_STRING_TOO_LONG, "MAPI_E_STRING_TOO_LONG" }, |
55 | | { MAPI_E_UNKNOWN_FLAGS, "MAPI_E_UNKNOWN_FLAGS" }, |
56 | | { MAPI_E_INVALID_ENTRYID, "MAPI_E_INVALID_ENTRYID" }, |
57 | | { MAPI_E_INVALID_OBJECT, "MAPI_E_INVALID_OBJECT" }, |
58 | | { MAPI_E_OBJECT_CHANGED, "MAPI_E_OBJECT_CHANGED" }, |
59 | | { MAPI_E_OBJECT_DELETED, "MAPI_E_OBJECT_DELETED" }, |
60 | | { MAPI_E_BUSY, "MAPI_E_BUSY" }, |
61 | | { MAPI_E_NOT_ENOUGH_DISK, "MAPI_E_NOT_ENOUGH_DISK" }, |
62 | | { MAPI_E_NOT_ENOUGH_RESOURCES, "MAPI_E_NOT_ENOUGH_RESOURCES" }, |
63 | | { MAPI_E_NOT_FOUND, "MAPI_E_NOT_FOUND" }, |
64 | | { MAPI_E_VERSION, "MAPI_E_VERSION" }, |
65 | | { MAPI_E_LOGON_FAILED, "MAPI_E_LOGON_FAILED" }, |
66 | | { MAPI_E_SESSION_LIMIT, "MAPI_E_SESSION_LIMIT" }, |
67 | | { MAPI_E_USER_CANCEL, "MAPI_E_USER_CANCEL" }, |
68 | | { MAPI_E_UNABLE_TO_ABORT, "MAPI_E_UNABLE_TO_ABORT" }, |
69 | | { MAPI_E_NETWORK_ERROR, "MAPI_E_NETWORK_ERROR" }, |
70 | | { MAPI_E_DISK_ERROR, "MAPI_E_DISK_ERROR" }, |
71 | | { MAPI_E_TOO_COMPLEX, "MAPI_E_TOO_COMPLEX" }, |
72 | | { MAPI_E_BAD_COLUMN, "MAPI_E_BAD_COLUMN" }, |
73 | | { MAPI_E_EXTENDED_ERROR, "MAPI_E_EXTENDED_ERROR" }, |
74 | | { MAPI_E_COMPUTED, "MAPI_E_COMPUTED" }, |
75 | | { MAPI_E_CORRUPT_DATA, "MAPI_E_CORRUPT_DATA" }, |
76 | | { MAPI_E_UNCONFIGURED, "MAPI_E_UNCONFIGURED" }, |
77 | | { MAPI_E_FAILONEPROVIDER, "MAPI_E_FAILONEPROVIDER" }, |
78 | | { MAPI_E_UNKNOWN_CPID, "MAPI_E_UNKNOWN_CPID" }, |
79 | | { MAPI_E_UNKNOWN_LCID, "MAPI_E_UNKNOWN_LCID" }, |
80 | | { MAPI_E_PASSWORD_CHANGE_REQUIRED, "MAPI_E_PASSWORD_CHANGE_REQUIRED" }, |
81 | | { MAPI_E_PASSWORD_EXPIRED, "MAPI_E_PASSWORD_EXPIRED" }, |
82 | | { MAPI_E_INVALID_WORKSTATION_ACCOUNT, "MAPI_E_INVALID_WORKSTATION_ACCOUNT" }, |
83 | | { MAPI_E_INVALID_ACCESS_TIME, "MAPI_E_INVALID_ACCESS_TIME" }, |
84 | | { MAPI_E_ACCOUNT_DISABLED, "MAPI_E_ACCOUNT_DISABLED" }, |
85 | | { MAPI_E_END_OF_SESSION, "MAPI_E_END_OF_SESSION" }, |
86 | | { MAPI_E_UNKNOWN_ENTRYID, "MAPI_E_UNKNOWN_ENTRYID" }, |
87 | | { MAPI_E_MISSING_REQUIRED_COLUMN, "MAPI_E_MISSING_REQUIRED_COLUMN" }, |
88 | | { MAPI_W_NO_SERVICE, "MAPI_W_NO_SERVICE" }, |
89 | | { MAPI_E_BAD_VALUE, "MAPI_E_BAD_VALUE" }, |
90 | | { MAPI_E_INVALID_TYPE, "MAPI_E_INVALID_TYPE" }, |
91 | | { MAPI_E_TYPE_NO_SUPPORT, "MAPI_E_TYPE_NO_SUPPORT" }, |
92 | | { MAPI_E_UNEXPECTED_TYPE, "MAPI_E_UNEXPECTED_TYPE" }, |
93 | | { MAPI_E_TOO_BIG, "MAPI_E_TOO_BIG" }, |
94 | | { MAPI_E_DECLINE_COPY, "MAPI_E_DECLINE_COPY" }, |
95 | | { MAPI_E_UNEXPECTED_ID, "MAPI_E_UNEXPECTED_ID" }, |
96 | | { MAPI_W_ERRORS_RETURNED, "MAPI_W_ERRORS_RETURNED" }, |
97 | | { MAPI_E_UNABLE_TO_COMPLETE, "MAPI_E_UNABLE_TO_COMPLETE" }, |
98 | | { MAPI_E_TIMEOUT, "MAPI_E_TIMEOUT" }, |
99 | | { MAPI_E_TABLE_EMPTY, "MAPI_E_TABLE_EMPTY" }, |
100 | | { MAPI_E_TABLE_TOO_BIG, "MAPI_E_TABLE_TOO_BIG" }, |
101 | | { MAPI_E_INVALID_BOOKMARK, "MAPI_E_INVALID_BOOKMARK" }, |
102 | | { MAPI_W_POSITION_CHANGED, "MAPI_W_POSITION_CHANGED" }, |
103 | | { MAPI_W_APPROX_COUNT, "MAPI_W_APPROX_COUNT" }, |
104 | | { MAPI_E_WAIT, "MAPI_E_WAIT" }, |
105 | | { MAPI_E_CANCEL, "MAPI_E_CANCEL" }, |
106 | | { MAPI_E_NOT_ME, "MAPI_E_NOT_ME" }, |
107 | | { MAPI_W_CANCEL_MESSAGE, "MAPI_W_CANCEL_MESSAGE" }, |
108 | | { MAPI_E_CORRUPT_STORE, "MAPI_E_CORRUPT_STORE" }, |
109 | | { MAPI_E_NOT_IN_QUEUE, "MAPI_E_NOT_IN_QUEUE" }, |
110 | | { MAPI_E_NO_SUPPRESS, "MAPI_E_NO_SUPPRESS" }, |
111 | | { MAPI_E_COLLISION, "MAPI_E_COLLISION" }, |
112 | | { MAPI_E_NOT_INITIALIZED, "MAPI_E_NOT_INITIALIZED" }, |
113 | | { MAPI_E_NON_STANDARD, "MAPI_E_NON_STANDARD" }, |
114 | | { MAPI_E_NO_RECIPIENTS, "MAPI_E_NO_RECIPIENTS" }, |
115 | | { MAPI_E_SUBMITTED, "MAPI_E_SUBMITTED" }, |
116 | | { MAPI_E_HAS_FOLDERS, "MAPI_E_HAS_FOLDERS" }, |
117 | | { MAPI_E_HAS_MESAGES, "MAPI_E_HAS_MESAGES" }, |
118 | | { MAPI_E_FOLDER_CYCLE, "MAPI_E_FOLDER_CYCLE" }, |
119 | | { MAPI_W_PARTIAL_COMPLETION, "MAPI_W_PARTIAL_COMPLETION" }, |
120 | | { MAPI_E_AMBIGUOUS_RECIP, "MAPI_E_AMBIGUOUS_RECIP" }, |
121 | | { MAPI_E_RESERVED, "MAPI_E_RESERVED" }, |
122 | | { 0, NULL } |
123 | | }; |
124 | | static int rfr_dissect_element_RfrGetNewDSA_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
125 | | static int rfr_dissect_element_RfrGetNewDSA_pUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
126 | | static int rfr_dissect_element_RfrGetNewDSA_pUserDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
127 | | static int rfr_dissect_element_RfrGetNewDSA_ppszUnused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
128 | | static int rfr_dissect_element_RfrGetNewDSA_ppszUnused_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
129 | | static int rfr_dissect_element_RfrGetNewDSA_ppszUnused__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
130 | | static int rfr_dissect_element_RfrGetNewDSA_ppszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
131 | | static int rfr_dissect_element_RfrGetNewDSA_ppszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
132 | | static int rfr_dissect_element_RfrGetNewDSA_ppszServer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
133 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
134 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_cbMailboxServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
135 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
136 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
137 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
138 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
139 | | static int rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); |
140 | | |
141 | | |
142 | | /* IDL: enum { */ |
143 | | /* IDL: MAPI_E_SUCCESS=0x00000000, */ |
144 | | /* IDL: MAPI_E_NO_SUPPORT=0x80040102, */ |
145 | | /* IDL: MAPI_E_BAD_CHARWIDTH=0x80040103, */ |
146 | | /* IDL: MAPI_E_STRING_TOO_LONG=0x80040105, */ |
147 | | /* IDL: MAPI_E_UNKNOWN_FLAGS=0x80040106, */ |
148 | | /* IDL: MAPI_E_INVALID_ENTRYID=0x80040107, */ |
149 | | /* IDL: MAPI_E_INVALID_OBJECT=0x80040108, */ |
150 | | /* IDL: MAPI_E_OBJECT_CHANGED=0x80040109, */ |
151 | | /* IDL: MAPI_E_OBJECT_DELETED=0x8004010A, */ |
152 | | /* IDL: MAPI_E_BUSY=0x8004010B, */ |
153 | | /* IDL: MAPI_E_NOT_ENOUGH_DISK=0x8004010D, */ |
154 | | /* IDL: MAPI_E_NOT_ENOUGH_RESOURCES=0x8004010E, */ |
155 | | /* IDL: MAPI_E_NOT_FOUND=0x8004010F, */ |
156 | | /* IDL: MAPI_E_VERSION=0x80040110, */ |
157 | | /* IDL: MAPI_E_LOGON_FAILED=0x80040111, */ |
158 | | /* IDL: MAPI_E_SESSION_LIMIT=0x80040112, */ |
159 | | /* IDL: MAPI_E_USER_CANCEL=0x80040113, */ |
160 | | /* IDL: MAPI_E_UNABLE_TO_ABORT=0x80040114, */ |
161 | | /* IDL: MAPI_E_NETWORK_ERROR=0x80040115, */ |
162 | | /* IDL: MAPI_E_DISK_ERROR=0x80040116, */ |
163 | | /* IDL: MAPI_E_TOO_COMPLEX=0x80040117, */ |
164 | | /* IDL: MAPI_E_BAD_COLUMN=0x80040118, */ |
165 | | /* IDL: MAPI_E_EXTENDED_ERROR=0x80040119, */ |
166 | | /* IDL: MAPI_E_COMPUTED=0x8004011A, */ |
167 | | /* IDL: MAPI_E_CORRUPT_DATA=0x8004011B, */ |
168 | | /* IDL: MAPI_E_UNCONFIGURED=0x8004011C, */ |
169 | | /* IDL: MAPI_E_FAILONEPROVIDER=0x8004011D, */ |
170 | | /* IDL: MAPI_E_UNKNOWN_CPID=0x8004011E, */ |
171 | | /* IDL: MAPI_E_UNKNOWN_LCID=0x8004011F, */ |
172 | | /* IDL: MAPI_E_PASSWORD_CHANGE_REQUIRED=0x80040120, */ |
173 | | /* IDL: MAPI_E_PASSWORD_EXPIRED=0x80040121, */ |
174 | | /* IDL: MAPI_E_INVALID_WORKSTATION_ACCOUNT=0x80040122, */ |
175 | | /* IDL: MAPI_E_INVALID_ACCESS_TIME=0x80040123, */ |
176 | | /* IDL: MAPI_E_ACCOUNT_DISABLED=0x80040124, */ |
177 | | /* IDL: MAPI_E_END_OF_SESSION=0x80040200, */ |
178 | | /* IDL: MAPI_E_UNKNOWN_ENTRYID=0x80040201, */ |
179 | | /* IDL: MAPI_E_MISSING_REQUIRED_COLUMN=0x80040202, */ |
180 | | /* IDL: MAPI_W_NO_SERVICE=0x80040203, */ |
181 | | /* IDL: MAPI_E_BAD_VALUE=0x80040301, */ |
182 | | /* IDL: MAPI_E_INVALID_TYPE=0x80040302, */ |
183 | | /* IDL: MAPI_E_TYPE_NO_SUPPORT=0x80040303, */ |
184 | | /* IDL: MAPI_E_UNEXPECTED_TYPE=0x80040304, */ |
185 | | /* IDL: MAPI_E_TOO_BIG=0x80040305, */ |
186 | | /* IDL: MAPI_E_DECLINE_COPY=0x80040306, */ |
187 | | /* IDL: MAPI_E_UNEXPECTED_ID=0x80040307, */ |
188 | | /* IDL: MAPI_W_ERRORS_RETURNED=0x80040380, */ |
189 | | /* IDL: MAPI_E_UNABLE_TO_COMPLETE=0x80040400, */ |
190 | | /* IDL: MAPI_E_TIMEOUT=0x80040401, */ |
191 | | /* IDL: MAPI_E_TABLE_EMPTY=0x80040402, */ |
192 | | /* IDL: MAPI_E_TABLE_TOO_BIG=0x80040403, */ |
193 | | /* IDL: MAPI_E_INVALID_BOOKMARK=0x80040405, */ |
194 | | /* IDL: MAPI_W_POSITION_CHANGED=0x80040481, */ |
195 | | /* IDL: MAPI_W_APPROX_COUNT=0x80040482, */ |
196 | | /* IDL: MAPI_E_WAIT=0x80040500, */ |
197 | | /* IDL: MAPI_E_CANCEL=0x80040501, */ |
198 | | /* IDL: MAPI_E_NOT_ME=0x80040502, */ |
199 | | /* IDL: MAPI_W_CANCEL_MESSAGE=0x80040580, */ |
200 | | /* IDL: MAPI_E_CORRUPT_STORE=0x80040600, */ |
201 | | /* IDL: MAPI_E_NOT_IN_QUEUE=0x80040601, */ |
202 | | /* IDL: MAPI_E_NO_SUPPRESS=0x80040602, */ |
203 | | /* IDL: MAPI_E_COLLISION=0x80040604, */ |
204 | | /* IDL: MAPI_E_NOT_INITIALIZED=0x80040605, */ |
205 | | /* IDL: MAPI_E_NON_STANDARD=0x80040606, */ |
206 | | /* IDL: MAPI_E_NO_RECIPIENTS=0x80040607, */ |
207 | | /* IDL: MAPI_E_SUBMITTED=0x80040608, */ |
208 | | /* IDL: MAPI_E_HAS_FOLDERS=0x80040609, */ |
209 | | /* IDL: MAPI_E_HAS_MESAGES=0x8004060A, */ |
210 | | /* IDL: MAPI_E_FOLDER_CYCLE=0x8004060B, */ |
211 | | /* IDL: MAPI_W_PARTIAL_COMPLETION=0x80040680, */ |
212 | | /* IDL: MAPI_E_AMBIGUOUS_RECIP=0x80040700, */ |
213 | | /* IDL: MAPI_E_RESERVED=0xFFFFFFFF, */ |
214 | | /* IDL: } */ |
215 | | |
216 | | int |
217 | | rfr_dissect_enum_MAPISTATUS(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_) |
218 | 0 | { |
219 | 0 | guint32 parameter=0; |
220 | 0 | if (param) { |
221 | 0 | parameter = *param; |
222 | 0 | } |
223 | 0 | offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, ¶meter); |
224 | 0 | if (param) { |
225 | 0 | *param = parameter; |
226 | 0 | } |
227 | 0 | return offset; |
228 | 0 | } |
229 | | |
230 | | static int |
231 | | rfr_dissect_element_RfrGetNewDSA_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
232 | 0 | { |
233 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rfr_RfrGetNewDSA_ulFlags, 0); |
234 | |
|
235 | 0 | return offset; |
236 | 0 | } |
237 | | |
238 | | static int |
239 | | rfr_dissect_element_RfrGetNewDSA_pUserDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
240 | 0 | { |
241 | 0 | offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetNewDSA_pUserDN_, NDR_POINTER_REF, "Pointer to Puserdn (uint8)",hf_rfr_RfrGetNewDSA_pUserDN); |
242 | |
|
243 | 0 | return offset; |
244 | 0 | } |
245 | | |
246 | | static int |
247 | | rfr_dissect_element_RfrGetNewDSA_pUserDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
248 | 0 | { |
249 | 0 | char *data; |
250 | |
|
251 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_rfr_RfrGetNewDSA_pUserDN, FALSE, &data); |
252 | 0 | proto_item_append_text(tree, ": %s", data); |
253 | |
|
254 | 0 | return offset; |
255 | 0 | } |
256 | | |
257 | | static int |
258 | | rfr_dissect_element_RfrGetNewDSA_ppszUnused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
259 | 0 | { |
260 | 0 | offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetNewDSA_ppszUnused_, NDR_POINTER_UNIQUE, "Pointer to Ppszunused (uint8)",hf_rfr_RfrGetNewDSA_ppszUnused); |
261 | |
|
262 | 0 | return offset; |
263 | 0 | } |
264 | | |
265 | | static int |
266 | | rfr_dissect_element_RfrGetNewDSA_ppszUnused_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
267 | 0 | { |
268 | 0 | offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetNewDSA_ppszUnused__, NDR_POINTER_UNIQUE, "Pointer to Ppszunused (uint8)",hf_rfr_RfrGetNewDSA_ppszUnused); |
269 | |
|
270 | 0 | return offset; |
271 | 0 | } |
272 | | |
273 | | static int |
274 | | rfr_dissect_element_RfrGetNewDSA_ppszUnused__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
275 | 0 | { |
276 | 0 | char *data; |
277 | |
|
278 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_rfr_RfrGetNewDSA_ppszUnused, FALSE, &data); |
279 | 0 | proto_item_append_text(tree, ": %s", data); |
280 | |
|
281 | 0 | return offset; |
282 | 0 | } |
283 | | |
284 | | static int |
285 | | rfr_dissect_element_RfrGetNewDSA_ppszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
286 | 0 | { |
287 | 0 | offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetNewDSA_ppszServer_, NDR_POINTER_UNIQUE, "Pointer to Ppszserver (uint8)",hf_rfr_RfrGetNewDSA_ppszServer); |
288 | |
|
289 | 0 | return offset; |
290 | 0 | } |
291 | | |
292 | | static int |
293 | | rfr_dissect_element_RfrGetNewDSA_ppszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
294 | 0 | { |
295 | 0 | offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetNewDSA_ppszServer__, NDR_POINTER_UNIQUE, "Pointer to Ppszserver (uint8)",hf_rfr_RfrGetNewDSA_ppszServer); |
296 | |
|
297 | 0 | return offset; |
298 | 0 | } |
299 | | |
300 | | static int |
301 | | rfr_dissect_element_RfrGetNewDSA_ppszServer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
302 | 0 | { |
303 | 0 | char *data; |
304 | |
|
305 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_rfr_RfrGetNewDSA_ppszServer, FALSE, &data); |
306 | 0 | proto_item_append_text(tree, ": %s", data); |
307 | |
|
308 | 0 | return offset; |
309 | 0 | } |
310 | | |
311 | | /* IDL: MAPISTATUS RfrGetNewDSA( */ |
312 | | /* IDL: [in] uint32 ulFlags, */ |
313 | | /* IDL: [charset(DOS)] [in] [ref] uint8 *pUserDN, */ |
314 | | /* IDL: [charset(DOS)] [in] [out] [unique(1)] uint8 **ppszUnused, */ |
315 | | /* IDL: [charset(DOS)] [in] [out] [unique(1)] uint8 **ppszServer */ |
316 | | /* IDL: ); */ |
317 | | |
318 | | static int |
319 | | rfr_dissect_RfrGetNewDSA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
320 | 0 | { |
321 | 0 | guint32 status; |
322 | |
|
323 | 0 | di->dcerpc_procedure_name="RfrGetNewDSA"; |
324 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_ppszUnused(tvb, offset, pinfo, tree, di, drep); |
325 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
326 | |
|
327 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_ppszServer(tvb, offset, pinfo, tree, di, drep); |
328 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
329 | |
|
330 | 0 | offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_rfr_MAPISTATUS_status, &status); |
331 | 0 | if (status != 0) |
332 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, rfr_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); |
333 | |
|
334 | 0 | return offset; |
335 | 0 | } |
336 | | |
337 | | static int |
338 | | rfr_dissect_RfrGetNewDSA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
339 | 0 | { |
340 | 0 | di->dcerpc_procedure_name="RfrGetNewDSA"; |
341 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_ulFlags(tvb, offset, pinfo, tree, di, drep); |
342 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
343 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_pUserDN(tvb, offset, pinfo, tree, di, drep); |
344 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
345 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_ppszUnused(tvb, offset, pinfo, tree, di, drep); |
346 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
347 | 0 | offset = rfr_dissect_element_RfrGetNewDSA_ppszServer(tvb, offset, pinfo, tree, di, drep); |
348 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
349 | 0 | return offset; |
350 | 0 | } |
351 | | |
352 | | static int |
353 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_ulFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
354 | 0 | { |
355 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rfr_RfrGetFQDNFromLegacyDN_ulFlags, 0); |
356 | |
|
357 | 0 | return offset; |
358 | 0 | } |
359 | | |
360 | | static int |
361 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_cbMailboxServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
362 | 0 | { |
363 | 0 | offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rfr_RfrGetFQDNFromLegacyDN_cbMailboxServerDN, 0); |
364 | |
|
365 | 0 | return offset; |
366 | 0 | } |
367 | | |
368 | | static int |
369 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
370 | 0 | { |
371 | 0 | offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN_, NDR_POINTER_REF, "Pointer to Szmailboxserverdn (uint8)",hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN); |
372 | |
|
373 | 0 | return offset; |
374 | 0 | } |
375 | | |
376 | | static int |
377 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
378 | 0 | { |
379 | 0 | char *data; |
380 | |
|
381 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN, FALSE, &data); |
382 | 0 | proto_item_append_text(tree, ": %s", data); |
383 | |
|
384 | 0 | return offset; |
385 | 0 | } |
386 | | |
387 | | static int |
388 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
389 | 0 | { |
390 | 0 | offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN_, NDR_POINTER_REF, "Pointer to Ppszserverfqdn (uint8)",hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN); |
391 | |
|
392 | 0 | return offset; |
393 | 0 | } |
394 | | |
395 | | static int |
396 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
397 | 0 | { |
398 | 0 | offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN__, NDR_POINTER_UNIQUE, "Pointer to Ppszserverfqdn (uint8)",hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN); |
399 | |
|
400 | 0 | return offset; |
401 | 0 | } |
402 | | |
403 | | static int |
404 | | rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
405 | 0 | { |
406 | 0 | char *data; |
407 | |
|
408 | 0 | offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN, FALSE, &data); |
409 | 0 | proto_item_append_text(tree, ": %s", data); |
410 | |
|
411 | 0 | return offset; |
412 | 0 | } |
413 | | |
414 | | /* IDL: MAPISTATUS RfrGetFQDNFromLegacyDN( */ |
415 | | /* IDL: [in] uint32 ulFlags, */ |
416 | | /* IDL: [in] [range(10,1024)] uint32 cbMailboxServerDN, */ |
417 | | /* IDL: [charset(DOS)] [in] [ref] [size_is(cbMailboxServerDN)] uint8 *szMailboxServerDN, */ |
418 | | /* IDL: [charset(DOS)] [out] [ref] uint8 **ppszServerFQDN */ |
419 | | /* IDL: ); */ |
420 | | |
421 | | static int |
422 | | rfr_dissect_RfrGetFQDNFromLegacyDN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
423 | 0 | { |
424 | 0 | guint32 status; |
425 | |
|
426 | 0 | di->dcerpc_procedure_name="RfrGetFQDNFromLegacyDN"; |
427 | 0 | offset = rfr_dissect_element_RfrGetFQDNFromLegacyDN_ppszServerFQDN(tvb, offset, pinfo, tree, di, drep); |
428 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
429 | |
|
430 | 0 | offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_rfr_MAPISTATUS_status, &status); |
431 | 0 | if (status != 0) |
432 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %s", val_to_str(status, rfr_MAPISTATUS_vals, "Unknown MAPISTATUS error 0x%08x")); |
433 | |
|
434 | 0 | return offset; |
435 | 0 | } |
436 | | |
437 | | static int |
438 | | rfr_dissect_RfrGetFQDNFromLegacyDN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) |
439 | 0 | { |
440 | 0 | di->dcerpc_procedure_name="RfrGetFQDNFromLegacyDN"; |
441 | 0 | offset = rfr_dissect_element_RfrGetFQDNFromLegacyDN_ulFlags(tvb, offset, pinfo, tree, di, drep); |
442 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
443 | 0 | offset = rfr_dissect_element_RfrGetFQDNFromLegacyDN_cbMailboxServerDN(tvb, offset, pinfo, tree, di, drep); |
444 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
445 | 0 | offset = rfr_dissect_element_RfrGetFQDNFromLegacyDN_szMailboxServerDN(tvb, offset, pinfo, tree, di, drep); |
446 | 0 | offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep); |
447 | 0 | return offset; |
448 | 0 | } |
449 | | |
450 | | |
451 | | static dcerpc_sub_dissector rfr_dissectors[] = { |
452 | | { 0, "RfrGetNewDSA", |
453 | | rfr_dissect_RfrGetNewDSA_request, rfr_dissect_RfrGetNewDSA_response}, |
454 | | { 1, "RfrGetFQDNFromLegacyDN", |
455 | | rfr_dissect_RfrGetFQDNFromLegacyDN_request, rfr_dissect_RfrGetFQDNFromLegacyDN_response}, |
456 | | { 0, NULL, NULL, NULL } |
457 | | }; |
458 | | |
459 | | void proto_register_dcerpc_rfr(void) |
460 | 1.36k | { |
461 | 1.36k | static hf_register_info hf[] = { |
462 | 1.36k | { &hf_rfr_MAPISTATUS_status, |
463 | 1.36k | { "MAPISTATUS", "rfr.MAPISTATUS_status", FT_UINT32, BASE_HEX, VALS(rfr_MAPISTATUS_vals), 0, NULL, HFILL }}, |
464 | 1.36k | { &hf_rfr_RfrGetFQDNFromLegacyDN_cbMailboxServerDN, |
465 | 1.36k | { "Cbmailboxserverdn", "rfr.RfrGetFQDNFromLegacyDN.cbMailboxServerDN", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
466 | 1.36k | { &hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN, |
467 | 1.36k | { "Ppszserverfqdn", "rfr.RfrGetFQDNFromLegacyDN.ppszServerFQDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
468 | 1.36k | { &hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN, |
469 | 1.36k | { "Szmailboxserverdn", "rfr.RfrGetFQDNFromLegacyDN.szMailboxServerDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
470 | 1.36k | { &hf_rfr_RfrGetFQDNFromLegacyDN_ulFlags, |
471 | 1.36k | { "Ulflags", "rfr.RfrGetFQDNFromLegacyDN.ulFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
472 | 1.36k | { &hf_rfr_RfrGetNewDSA_pUserDN, |
473 | 1.36k | { "Puserdn", "rfr.RfrGetNewDSA.pUserDN", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
474 | 1.36k | { &hf_rfr_RfrGetNewDSA_ppszServer, |
475 | 1.36k | { "Ppszserver", "rfr.RfrGetNewDSA.ppszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
476 | 1.36k | { &hf_rfr_RfrGetNewDSA_ppszUnused, |
477 | 1.36k | { "Ppszunused", "rfr.RfrGetNewDSA.ppszUnused", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, |
478 | 1.36k | { &hf_rfr_RfrGetNewDSA_ulFlags, |
479 | 1.36k | { "Ulflags", "rfr.RfrGetNewDSA.ulFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, |
480 | 1.36k | { &hf_rfr_opnum, |
481 | 1.36k | { "Operation", "rfr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, |
482 | 1.36k | }; |
483 | | |
484 | | |
485 | 1.36k | static gint *ett[] = { |
486 | 1.36k | &ett_dcerpc_rfr, |
487 | 1.36k | }; |
488 | | |
489 | 1.36k | proto_dcerpc_rfr = proto_register_protocol("Exchange 2003 Directory Request For Response", "RFR", "rfr"); |
490 | 1.36k | proto_register_field_array(proto_dcerpc_rfr, hf, array_length (hf)); |
491 | 1.36k | proto_register_subtree_array(ett, array_length(ett)); |
492 | 1.36k | } |
493 | | |
494 | | void proto_reg_handoff_dcerpc_rfr(void) |
495 | 1.36k | { |
496 | 1.36k | dcerpc_init_uuid(proto_dcerpc_rfr, ett_dcerpc_rfr, |
497 | 1.36k | &uuid_dcerpc_rfr, ver_dcerpc_rfr, |
498 | 1.36k | rfr_dissectors, hf_rfr_opnum); |
499 | 1.36k | } |