1 /* packet-dcerpc-fileexp.c
3 * Routines for DCE DFS File Exporter dissection
4 * Copyright 2002, Jaime Fournier <Jaime.Fournier@hush.com>
5 * This information is based off the released idl files from opengroup.
6 * ftp://ftp.opengroup.org/pub/dce122/dce/src/file.tar.gz file/fsint/afs4int.idl
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald@wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * SPDX-License-Identifier: GPL-2.0-or-later
17 #include <epan/packet.h>
18 #include <epan/exceptions.h>
20 #include "packet-dcerpc.h"
21 #include "packet-dcerpc-dce122.h"
23 void proto_register_fileexp (void);
24 void proto_reg_handoff_fileexp (void);
26 #define AFS_SETMODTIME 0x001
27 #define AFS_SETOWNER 0x002
28 #define AFS_SETGROUP 0x004
29 #define AFS_SETMODE 0x008
30 #define AFS_SETACCESSTIME 0x010
31 #define AFS_SETCHANGETIME 0x020
32 #define AFS_SETLENGTH 0x040
33 #define AFS_SETTYPEUUID 0x080
34 #define AFS_SETDEVNUM 0x100
35 #define AFS_SETMODEXACT 0x200
36 #define AFS_SETTRUNCLENGTH 0x400
37 #define AFS_SETCLIENTSPARE 0x800
39 #define TKN_LOCK_READ 0x00001
40 #define TKN_LOCK_WRITE 0x00002
41 #define TKN_DATA_READ 0x00004
42 #define TKN_DATA_WRITE 0x00008
43 #define TKN_OPEN_READ 0x00010
44 #define TKN_OPEN_WRITE 0x00020
45 #define TKN_OPEN_SHARED 0x00040
46 #define TKN_OPEN_EXCLUSIVE 0x00080
47 #define TKN_OPEN_DELETE 0x00100
48 #define TKN_OPEN_PRESERVE 0x00200
49 #define TKN_STATUS_READ 0x00400
50 #define TKN_STATUS_WRITE 0x00800
51 #define TKN_OPEN_UNLINK 0x01000
52 #define TKN_SPOT_HERE 0x02000
53 #define TKN_SPOT_THERE 0x04000
54 #define TKN_OPEN_NO_READ 0x08000
55 #define TKN_OPEN_NO_WRITE 0x10000
56 #define TKN_OPEN_NO_UNLINK 0x20000
58 #define AFS_CONN_PARAM_HOSTLIFE 0
59 #define AFS_CONN_PARAM_HOSTRPC 1
60 #define AFS_CONN_PARAM_DEADSERVER 2
61 #define AFS_CONN_PARAM_EPOCH 3
62 #define AFS_CONN_PARAM_MAXFILE_CLIENT 4
63 #define AFS_CONN_PARAM_MAXFILE_SERVER 5
64 #define AFS_CONN_PARAM_HOST_TYPE_CLIENT 6
65 #define AFS_CONN_PARAM_HOST_TYPE_SERVER 7
66 #define AFS_CONN_PARAM_FT_MASK_CLIENT 8
67 #define AFS_CONN_PARAM_FT_MASK_SERVER 9
69 #define AFS_CONN_PARAM_SUPPORTS_64BITS 0x10000
70 #define AFS_CONN_PARAM_512BYTE_BLOCKS 0x20000
72 #define AFS_FLAG_SEC_SERVICE 0x01
73 #define AFS_FLAG_CONTEXT_NEW_IF 0x02
74 #define AFS_FLAG_CONTEXT_DO_RESET 0x04
75 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x08
76 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
78 #define AFS_FLAG_RETURNTOKEN 0x00001
79 #define AFS_FLAG_TOKENJUMPQUEUE 0x00002
80 #define AFS_FLAG_SKIPTOKEN 0x00004
81 #define AFS_FLAG_NOOPTIMISM 0x00008
82 #define AFS_FLAG_TOKENID 0x00010
83 #define AFS_FLAG_RETURNBLOCKER 0x00020
84 #define AFS_FLAG_ASYNCGRANT 0x00040
85 #define AFS_FLAG_NOREVOKE 0x00080
86 #define AFS_FLAG_MOVE_REESTABLISH 0x00100
87 #define AFS_FLAG_SERVER_REESTABLISH 0x00200
88 #define AFS_FLAG_NO_NEW_EPOCH 0x00400
89 #define AFS_FLAG_MOVE_SOURCE_OK 0x00800
90 #define AFS_FLAG_SYNC 0x01000
91 #define AFS_FLAG_ZERO 0x02000
92 #define AFS_FLAG_SKIPSTATUS 0x04000
93 #define AFS_FLAG_FORCEREVOCATIONS 0x08000
94 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
95 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
97 static int hf_fileexp_opnum
;
100 static int hf_fileexp_afsFid_cell_high
;
101 static int hf_fileexp_afsuuid_uuid
;
102 static int hf_fileexp_fetchdata_pipe_t_size
;
103 static int hf_fileexp_afsNameString_t_principalName_string
;
104 static int hf_fileexp_afsFid_cell_low
;
105 static int hf_fileexp_afsFid_volume_high
;
106 static int hf_fileexp_afsFid_volume_low
;
107 static int hf_fileexp_afsFid_Vnode
;
108 static int hf_fileexp_afsFid_Unique
;
109 static int hf_fileexp_interfaceversion
;
110 static int hf_fileexp_filetype
;
111 static int hf_fileexp_linkcount
;
112 static int hf_fileexp_length_high
;
113 static int hf_fileexp_length_low
;
114 static int hf_fileexp_dataversion_high
;
115 static int hf_fileexp_dataversion_low
;
116 static int hf_fileexp_author
;
117 static int hf_fileexp_owner
;
118 static int hf_fileexp_group
;
119 static int hf_fileexp_calleraccess
;
120 static int hf_fileexp_anonymousaccess
;
121 static int hf_fileexp_aclexpirationtime
;
122 static int hf_fileexp_mode
;
123 static int hf_fileexp_parentvnode
;
124 static int hf_fileexp_parentunique
;
125 static int hf_fileexp_modtime_sec
;
126 static int hf_fileexp_modtime_msec
;
127 static int hf_fileexp_changetime_sec
;
128 static int hf_fileexp_changetime_msec
;
129 static int hf_fileexp_accesstime_sec
;
130 static int hf_fileexp_accesstime_msec
;
131 static int hf_fileexp_servermodtime_sec
;
132 static int hf_fileexp_servermodtime_msec
;
133 static int hf_fileexp_typeuuid
;
134 static int hf_fileexp_objectuuid
;
135 static int hf_fileexp_devicenumber
;
136 static int hf_fileexp_blocksused
;
137 static int hf_fileexp_clientspare1
;
138 static int hf_fileexp_devicenumberhighbits
;
139 static int hf_fileexp_agtypeunique
;
140 static int hf_fileexp_himaxspare
;
141 static int hf_fileexp_lomaxspare
;
142 static int hf_fileexp_pathconfspare
;
143 static int hf_fileexp_spare4
;
144 static int hf_fileexp_spare5
;
145 static int hf_fileexp_spare6
;
146 static int hf_fileexp_volid_hi
;
147 static int hf_fileexp_volid_low
;
148 static int hf_fileexp_vvage
;
149 static int hf_fileexp_vv_hi
;
150 static int hf_fileexp_vv_low
;
151 static int hf_fileexp_vvpingage
;
152 static int hf_fileexp_vvspare1
;
153 static int hf_fileexp_vvspare2
;
154 static int hf_fileexp_beginrange
;
155 static int hf_fileexp_beginrangeext
;
156 static int hf_fileexp_endrange
;
157 static int hf_fileexp_endrangeext
;
158 static int hf_fileexp_expirationtime
;
159 static int hf_fileexp_tokenid_hi
;
160 static int hf_fileexp_tokenid_low
;
161 static int hf_fileexp_type_hi
;
162 static int hf_fileexp_type_low
;
163 static int hf_fileexp_tn_length
;
164 static int hf_fileexp_storestatus_accesstime_sec
;
165 static int hf_fileexp_storestatus_accesstime_usec
;
166 static int hf_fileexp_storestatus_changetime_sec
;
167 static int hf_fileexp_storestatus_changetime_usec
;
168 static int hf_fileexp_storestatus_clientspare1
;
169 static int hf_fileexp_storestatus_cmask
;
170 static int hf_fileexp_storestatus_devicenumber
;
171 static int hf_fileexp_storestatus_devicenumberhighbits
;
172 static int hf_fileexp_storestatus_devicetype
;
173 static int hf_fileexp_storestatus_group
;
174 static int hf_fileexp_storestatus_length_high
;
175 static int hf_fileexp_storestatus_length_low
;
176 static int hf_fileexp_storestatus_mask
;
177 static int hf_fileexp_storestatus_mode
;
178 static int hf_fileexp_storestatus_modtime_sec
;
179 static int hf_fileexp_storestatus_modtime_usec
;
180 static int hf_fileexp_storestatus_owner
;
181 static int hf_fileexp_storestatus_spare1
;
182 static int hf_fileexp_storestatus_spare2
;
183 static int hf_fileexp_storestatus_spare3
;
184 static int hf_fileexp_storestatus_spare4
;
185 static int hf_fileexp_storestatus_spare5
;
186 static int hf_fileexp_storestatus_spare6
;
187 static int hf_fileexp_storestatus_trunc_high
;
188 static int hf_afsconnparams_mask
;
189 static int hf_fileexp_storestatus_trunc_low
;
190 static int hf_fileexp_storestatus_typeuuid
;
191 static int hf_fileexp_l_end_pos
;
192 static int hf_fileexp_l_end_pos_ext
;
193 static int hf_fileexp_l_fstype
;
194 static int hf_fileexp_l_pid
;
195 static int hf_fileexp_l_start_pos
;
196 static int hf_fileexp_l_start_pos_ext
;
197 static int hf_fileexp_l_sysid
;
198 static int hf_fileexp_l_type
;
199 static int hf_fileexp_l_whence
;
200 static int hf_fileexp_acl_len
;
201 static int hf_fileexp_setcontext_rqst_epochtime
;
202 static int hf_fileexp_setcontext_rqst_clientsizesattrs
;
203 static int hf_fileexp_setcontext_rqst_parm7
;
204 static int hf_fileexp_afsNetAddr_type
;
205 static int hf_fileexp_afsNetAddr_data
;
206 static int hf_fileexp_returntokenidp_high
;
207 static int hf_fileexp_minvvp_low
;
208 static int hf_fileexp_position_high
;
209 static int hf_fileexp_position_low
;
210 static int hf_fileexp_offsetp_high
;
211 static int hf_fileexp_nextoffsetp_low
;
212 static int hf_fileexp_cellidp_high
;
213 static int hf_afserrorstatus_st
;
214 static int hf_fileexp_length
;
215 static int hf_afsconnparams_values
;
216 static int hf_fileexp_acltype
;
217 static int hf_fileexp_afsTaggedPath_tp_chars
;
218 static int hf_fileexp_afsTaggedPath_tp_tag
;
219 static int hf_fileexp_afsacl_uuid1
;
220 static int hf_fileexp_bulkfetchstatus_size
;
221 static int hf_fileexp_flags
;
222 static int hf_fileexp_afsreturndesc_tokenid_high
;
223 static int hf_fileexp_afsreturndesc_tokenid_low
;
224 static int hf_fileexp_afsreturndesc_type_high
;
225 static int hf_fileexp_afsreturndesc_type_low
;
226 static int hf_fileexp_returntokenidp_low
;
227 static int hf_fileexp_minvvp_high
;
228 static int hf_fileexp_offsetp_low
;
229 static int hf_fileexp_nextoffsetp_high
;
230 static int hf_fileexp_cellidp_low
;
231 static int hf_fileexp_tn_tag
;
232 static int hf_fileexp_tn_string
;
233 static int hf_fileexp_bulkfetchvv_numvols
;
234 static int hf_fileexp_bulkfetchvv_spare1
;
235 static int hf_fileexp_bulkfetchvv_spare2
;
236 static int hf_fileexp_bulkkeepalive_numexecfids
;
237 static int hf_fileexp_bulkkeepalive_spare4
;
238 static int hf_fileexp_bulkkeepalive_spare2
;
239 static int hf_fileexp_bulkkeepalive_spare1
;
240 static int hf_fileexp_afsacl_defaultcell_uuid
;
241 static int hf_fileexp_gettime_syncdispersion
;
242 static int hf_fileexp_gettime_syncdistance
;
243 static int hf_fileexp_gettime_usecondsp
;
244 static int hf_fileexp_readdir_size
;
245 static int hf_fileexp_afsNameString_t_principalName_size
;
246 static int hf_fileexp_afsTaggedPath_tp_length
;
247 static int hf_fileexp_fstype
;
248 static int hf_fileexp_gettime_secondsp
;
250 static int proto_fileexp
;
252 static int ett_fileexp
;
253 static int ett_fileexp_afsFid
;
254 static int ett_fileexp_afsReturnDesc
;
255 static int ett_fileexp_afsNetAddr
;
256 static int ett_fileexp_fetchstatus
;
257 static int ett_fileexp_afsflags
;
258 static int ett_fileexp_volsync
;
259 static int ett_fileexp_minvvp
;
260 static int ett_fileexp_afsfidtaggedname
;
261 static int ett_fileexp_afstaggedname
;
262 static int ett_fileexp_afstoken
;
263 static int ett_fileexp_afsstorestatus
;
264 static int ett_fileexp_afsRecordLock
;
265 static int ett_fileexp_afsAcl
;
266 static int ett_fileexp_afsNameString_t
;
267 static int ett_fileexp_afsConnParams
;
268 static int ett_fileexp_afsErrorStatus
;
269 static int ett_fileexp_afsNetData
;
270 static int ett_fileexp_afsTaggedPath
;
271 static int ett_fileexp_afsBulkStat
;
272 static int ett_fileexp_afsuuid
;
273 static int ett_fileexp_offsetp
;
274 static int ett_fileexp_returntokenidp
;
275 static int ett_fileexp_afsbundled_stat
;
278 /* vars for our macro(s) */
279 static int hf_error_st
;
281 static e_guid_t uuid_fileexp
=
282 { 0x4d37f2dd, 0xed93, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x1e, 0x00, 0x00, 0x00}
284 static uint16_t ver_fileexp
= 4;
286 /* XXX the only macro that I could not find the right way to convert easily.
287 The reason is because we reset col_info if st is non zero for many rpcs.
288 This is because on error, many structures are filled with garbage.
289 We end up not knowing if data is valid until we get the st var at the very end of the stubdata..
290 We can not just jump to the end, because more often than not an extra buffer exists in payload
291 after st. Thus we have to advance on each item until we read in ST, then we clear col_info. on error
292 A good example is FetchStatus() on a file that returns ENOEXIST.
293 inode, volume, etc all will be garbage.
296 #define MACRO_ST_CLEAR(name) \
299 const char *st_str; \
300 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep, hf_error_st, &st); \
301 st_str = val_to_str_ext (st, &dce_error_vals_ext, "%u"); \
303 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
305 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
310 dissect_afsFid (tvbuff_t
*tvb
, int offset
,
311 packet_info
*pinfo
, proto_tree
*parent_tree
,
312 dcerpc_info
*di
, uint8_t *drep
)
321 proto_item
*item
= NULL
;
322 proto_tree
*tree
= NULL
;
323 int old_offset
= offset
;
324 uint32_t volume_low
, unique
, vnode
, inode
;
326 if (di
->conformant_run
)
333 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsFid
, &item
, "afsFid:");
336 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
337 hf_fileexp_afsFid_cell_high
, NULL
);
339 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
340 hf_fileexp_afsFid_cell_low
, NULL
);
342 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
343 hf_fileexp_afsFid_volume_high
, NULL
);
345 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
346 hf_fileexp_afsFid_volume_low
, &volume_low
);
348 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
349 hf_fileexp_afsFid_Vnode
, &vnode
);
351 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
352 hf_fileexp_afsFid_Unique
, &unique
);
354 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :FSID:%u ", volume_low
);
356 if ((vnode
== 1) || (vnode
== 2))
358 col_append_str (pinfo
->cinfo
, COL_INFO
, " InFS ");
362 inode
= ((volume_low
<< 16) + vnode
) & 0x7fffffff;
363 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " inode:%u ", inode
);
366 proto_item_set_len (item
, offset
- old_offset
);
371 dissect_afsConnParams (tvbuff_t
*tvb
, int offset
,
372 packet_info
*pinfo
, proto_tree
*parent_tree
,
373 dcerpc_info
*di
, uint8_t *drep
)
377 unsigned32 Values[20];
380 proto_item
*item
= NULL
;
381 proto_tree
*tree
= NULL
;
382 int old_offset
= offset
;
383 uint32_t mask
, Values
[20];
385 if (di
->conformant_run
)
393 proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
394 ett_fileexp_afsConnParams
, &item
, "afsConnParams_t:");
397 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
398 hf_afsconnparams_mask
, &mask
);
400 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
401 hf_afsconnparams_values
, &Values
[0]);
403 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
404 hf_afsconnparams_values
, &Values
[1]);
406 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
407 hf_afsconnparams_values
, &Values
[2]);
409 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
410 hf_afsconnparams_values
, &Values
[3]);
412 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
413 hf_afsconnparams_values
, &Values
[4]);
415 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
416 hf_afsconnparams_values
, &Values
[5]);
418 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
419 hf_afsconnparams_values
, &Values
[6]);
421 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
422 hf_afsconnparams_values
, &Values
[7]);
424 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
425 hf_afsconnparams_values
, &Values
[8]);
427 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
428 hf_afsconnparams_values
, &Values
[9]);
430 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
431 hf_afsconnparams_values
, &Values
[10]);
433 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
434 hf_afsconnparams_values
, &Values
[11]);
436 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
437 hf_afsconnparams_values
, &Values
[12]);
439 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
440 hf_afsconnparams_values
, &Values
[13]);
442 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
443 hf_afsconnparams_values
, &Values
[14]);
445 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
446 hf_afsconnparams_values
, &Values
[15]);
448 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
449 hf_afsconnparams_values
, &Values
[16]);
451 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
452 hf_afsconnparams_values
, &Values
[17]);
454 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
455 hf_afsconnparams_values
, &Values
[18]);
457 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
458 hf_afsconnparams_values
, &Values
[19]);
459 if ((mask
& AFS_CONN_PARAM_HOSTLIFE
) == AFS_CONN_PARAM_HOSTLIFE
)
461 col_append_str (pinfo
->cinfo
, COL_INFO
, ":HOSTLIFE");
463 if ((mask
& AFS_CONN_PARAM_HOSTRPC
) == AFS_CONN_PARAM_HOSTRPC
)
465 col_append_str (pinfo
->cinfo
, COL_INFO
, ":HOSTRPC");
467 if ((mask
& AFS_CONN_PARAM_DEADSERVER
) == AFS_CONN_PARAM_DEADSERVER
)
469 col_append_str (pinfo
->cinfo
, COL_INFO
, ":DEADSERVER");
471 if ((mask
& AFS_CONN_PARAM_EPOCH
) == AFS_CONN_PARAM_EPOCH
)
473 col_append_str (pinfo
->cinfo
, COL_INFO
, ":EPOCH");
475 if ((mask
& AFS_CONN_PARAM_MAXFILE_CLIENT
) == AFS_CONN_PARAM_MAXFILE_CLIENT
)
477 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MAXFILE_CLIENT");
479 if ((mask
& AFS_CONN_PARAM_MAXFILE_SERVER
) == AFS_CONN_PARAM_MAXFILE_SERVER
)
481 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MAXFILE_SERVER");
483 if ((mask
& AFS_CONN_PARAM_HOST_TYPE_CLIENT
) ==
484 AFS_CONN_PARAM_HOST_TYPE_CLIENT
)
486 col_append_str (pinfo
->cinfo
, COL_INFO
, ":HOST_TYPE_CLIENT");
488 if ((mask
& AFS_CONN_PARAM_HOST_TYPE_SERVER
) ==
489 AFS_CONN_PARAM_HOST_TYPE_SERVER
)
491 col_append_str (pinfo
->cinfo
, COL_INFO
, ":HOST_TYPE_SERVER");
493 if ((mask
& AFS_CONN_PARAM_FT_MASK_CLIENT
) == AFS_CONN_PARAM_FT_MASK_CLIENT
)
495 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FT_MASK_CLIENT");
497 if ((mask
& AFS_CONN_PARAM_FT_MASK_SERVER
) == AFS_CONN_PARAM_FT_MASK_SERVER
)
499 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FT_MASK_SERVER");
501 if ((mask
& AFS_CONN_PARAM_SUPPORTS_64BITS
) ==
502 AFS_CONN_PARAM_SUPPORTS_64BITS
)
504 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SUPPORTS_64BITS");
506 if ((mask
& AFS_CONN_PARAM_512BYTE_BLOCKS
) == AFS_CONN_PARAM_512BYTE_BLOCKS
)
508 col_append_str (pinfo
->cinfo
, COL_INFO
, ":512BYTE_BLOCKS");
510 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
511 " Values:%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u",
512 Values
[0], Values
[1], Values
[2], Values
[3],
513 Values
[4], Values
[5], Values
[6], Values
[7], Values
[8],
514 Values
[9], Values
[10], Values
[11], Values
[12],
515 Values
[13], Values
[14], Values
[15], Values
[16],
516 Values
[17], Values
[18], Values
[19]);
518 proto_item_set_len (item
, offset
- old_offset
);
523 dissect_afsNameString_t (tvbuff_t
*tvb
, int offset
,
524 packet_info
*pinfo
, proto_tree
*parent_tree
,
525 dcerpc_info
*di
, uint8_t *drep
)
528 typedef [string] byte NameString_t[AFS_NAMEMAX];
531 proto_item
*item
= NULL
;
532 proto_tree
*tree
= NULL
;
533 int old_offset
= offset
;
534 #define AFS_NAMEMAX 256
535 uint32_t string_size
;
536 const uint8_t *namestring
;
538 if (di
->conformant_run
)
546 proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
547 ett_fileexp_afsNameString_t
, &item
, "afsNameString_t:");
551 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
552 hf_fileexp_afsNameString_t_principalName_size
,
554 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " String_size:%u", string_size
);
555 if (string_size
< AFS_NAMEMAX
)
557 proto_tree_add_item_ret_string(tree
, hf_fileexp_afsNameString_t_principalName_string
, tvb
, offset
, string_size
, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &namestring
);
558 offset
+= string_size
;
559 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Principal:%s", namestring
);
563 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
564 " :FIXME!: Invalid string length of %u",
568 proto_item_set_len (item
, offset
- old_offset
);
574 dissect_afsNetAddr (tvbuff_t
*tvb
, int offset
,
575 packet_info
*pinfo
, proto_tree
*parent_tree
,
576 dcerpc_info
*di
, uint8_t *drep
)
582 proto_item
*item
= NULL
;
583 proto_tree
*tree
= NULL
;
584 int old_offset
= offset
;
589 if (di
->conformant_run
)
596 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
597 ett_fileexp_afsNetAddr
, &item
, "afsNetAddr:");
601 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
,
602 hf_fileexp_afsNetAddr_type
, &type
);
606 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u ", type
);
609 for (i
= 0; i
< 14; i
++)
613 dissect_ndr_uint8 (tvb
, offset
, pinfo
, tree
, di
, drep
,
614 hf_fileexp_afsNetAddr_data
, &data
);
622 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Port:%u",
627 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " IP:%u.", data
);
630 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
633 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
636 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u", data
);
646 offset
+= 14; /* space left after reading in type for the array. */
650 proto_item_set_len (item
, offset
- old_offset
);
656 dissect_afsNetData (tvbuff_t
*tvb
, int offset
,
657 packet_info
*pinfo
, proto_tree
*parent_tree
,
658 dcerpc_info
*di
, uint8_t *drep
)
662 NameString_t principalName;
664 proto_item
*item
= NULL
;
665 proto_tree
*tree
= NULL
;
666 int old_offset
= offset
;
668 if (di
->conformant_run
)
676 proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsNetData
, &item
, "afsNetData:");
679 offset
= dissect_afsNetAddr ( tvb
, offset
, pinfo
, tree
, di
, drep
);
680 offset
+= 4; /* buffer */
681 offset
= dissect_afsNameString_t ( tvb
, offset
, pinfo
, tree
, di
, drep
);
683 proto_item_set_len (item
, offset
- old_offset
);
689 dissect_afsTaggedPath (tvbuff_t
*tvb
, int offset
,
690 packet_info
*pinfo
, proto_tree
*parent_tree
,
691 dcerpc_info
*di
, uint8_t *drep
)
695 unsigned16 tp_length;
696 byte tp_chars[AFS_PATHMAX+1]; 1024+1
699 proto_item
*item
= NULL
;
700 proto_tree
*tree
= NULL
;
701 int old_offset
= offset
;
704 const uint8_t *tp_chars
;
706 if (di
->conformant_run
)
714 proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsTaggedPath
, &item
, "afsTaggedPath");
718 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
719 hf_fileexp_afsTaggedPath_tp_tag
, &tp_tag
);
721 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
,
722 hf_fileexp_afsTaggedPath_tp_length
, &tp_length
);
723 proto_tree_add_item (tree
, hf_fileexp_afsTaggedPath_tp_chars
, tvb
, offset
,
724 tp_length
, ENC_ASCII
);
725 tp_chars
= tvb_get_string_enc (pinfo
->pool
, tvb
, offset
, 1025, ENC_ASCII
);
727 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :tp_chars %s", tp_chars
);
729 proto_item_set_len (item
, offset
- old_offset
);
734 dissect_afsAcl (tvbuff_t
*tvb
, int offset
,
735 packet_info
*pinfo
, proto_tree
*parent_tree
,
736 dcerpc_info
*di
, uint8_t *drep
)
739 unsigned32 afsACL_len;
740 [length_is(afsACL_len)] byte afsACL_val[AFS_ACLMAX];
743 proto_item
*item
= NULL
;
745 int old_offset
= offset
;
747 e_guid_t uuid1
, defaultcell
;
749 if (di
->conformant_run
)
754 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsAcl
, &item
, "afsAcl");
757 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_acl_len
,
759 offset
+= 8; /* bypass spare and duplicate acl_len */
761 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
762 hf_fileexp_afsacl_uuid1
, &uuid1
);
763 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
764 " - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
765 uuid1
.data1
, uuid1
.data2
, uuid1
.data3
, uuid1
.data4
[0],
766 uuid1
.data4
[1], uuid1
.data4
[2], uuid1
.data4
[3],
767 uuid1
.data4
[4], uuid1
.data4
[5], uuid1
.data4
[6],
771 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
772 hf_fileexp_afsacl_defaultcell_uuid
, &defaultcell
);
773 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
774 " %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
775 defaultcell
.data1
, defaultcell
.data2
, defaultcell
.data3
,
776 defaultcell
.data4
[0], defaultcell
.data4
[1],
777 defaultcell
.data4
[2], defaultcell
.data4
[3],
778 defaultcell
.data4
[4], defaultcell
.data4
[5],
779 defaultcell
.data4
[6], defaultcell
.data4
[7]);
783 /* XXX - exception */
787 offset
+= (acl_len
- 38);
789 proto_item_set_len (item
, offset
-old_offset
);
795 dissect_afsErrorStatus (tvbuff_t
*tvb
, int offset
,
796 packet_info
*pinfo
, proto_tree
*parent_tree
,
797 dcerpc_info
*di
, uint8_t *drep
)
799 proto_item
*item
= NULL
;
800 proto_tree
*tree
= NULL
;
801 int old_offset
= offset
;
805 if (di
->conformant_run
)
812 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
813 ett_fileexp_afsErrorStatus
, &item
, "afsErrorStatus");
817 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_afserrorstatus_st
,
819 st_str
= val_to_str_ext (st
, &dce_error_vals_ext
, "%u");
821 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " st:%s ", st_str
);
823 proto_item_set_len (item
, offset
- old_offset
);
828 dissect_afsRecordLock (tvbuff_t
*tvb
, int offset
,
829 packet_info
*pinfo
, proto_tree
*parent_tree
,
830 dcerpc_info
*di
, uint8_t *drep
)
835 unsigned32 l_start_pos;
836 unsigned32 l_end_pos;
840 unsigned32 l_start_pos_ext; was l_spare0: high 32b of l_start_pos
841 unsigned32 l_end_pos_ext; was l_spare1: high 32b of l_end_pos
844 proto_item
*item
= NULL
;
845 proto_tree
*tree
= NULL
;
846 int old_offset
= offset
;
847 uint16_t l_type
, l_whence
;
848 uint32_t l_start_pos
, l_end_pos
, l_pid
, l_sysid
, l_fstype
;
849 uint32_t l_start_pos_ext
, l_end_pos_ext
;
851 if (di
->conformant_run
)
858 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
859 ett_fileexp_afsRecordLock
, &item
, "afsRecordLock:");
863 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_type
,
866 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_whence
,
869 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
870 hf_fileexp_l_start_pos
, &l_start_pos
);
872 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_end_pos
,
875 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_pid
,
878 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_sysid
,
881 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_l_fstype
,
884 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
885 hf_fileexp_l_start_pos_ext
, &l_start_pos_ext
);
887 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
888 hf_fileexp_l_end_pos_ext
, &l_end_pos_ext
);
890 proto_item_set_len (item
, offset
- old_offset
);
895 dissect_afsstorestatus (tvbuff_t
*tvb
, int offset
,
896 packet_info
*pinfo
, proto_tree
*parent_tree
,
897 dcerpc_info
*di
, uint8_t *drep
)
902 afsTimeval accessTime;
903 afsTimeval changeTime;
907 afsHyper truncLength; applied first
910 unsigned32 deviceType; character or block
911 unsigned32 deviceNumber;
913 unsigned32 clientSpare1; client-only attrs
914 unsigned32 deviceNumberHighBits;
923 proto_item
*item
= NULL
;
924 proto_tree
*tree
= NULL
;
925 int old_offset
= offset
;
926 uint32_t mask
, modtime_sec
, changetime_sec
, accesstime_sec
, devicenumber
;
927 uint32_t clientspare1
, devicenumberhighbits
, spare1
, spare2
, spare3
, spare4
;
928 uint32_t spare5
, spare6
, accesstime_usec
, changetime_usec
, owner
, group
, mode
;
929 uint32_t trunc_high
, trunc_low
, length_high
, length_low
, devicetype
;
930 uint32_t cmask
, modtime_usec
;
933 if (di
->conformant_run
)
940 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
941 ett_fileexp_afsstorestatus
, &item
, "afsStoreStatus:");
945 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
946 hf_fileexp_storestatus_mask
, &mask
);
948 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
949 hf_fileexp_storestatus_modtime_sec
, &modtime_sec
);
951 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
952 hf_fileexp_storestatus_modtime_usec
, &modtime_usec
);
954 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
955 hf_fileexp_storestatus_accesstime_sec
,
958 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
959 hf_fileexp_storestatus_accesstime_usec
,
962 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
963 hf_fileexp_storestatus_changetime_sec
,
966 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
967 hf_fileexp_storestatus_changetime_usec
,
970 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
971 hf_fileexp_storestatus_owner
, &owner
);
973 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
974 hf_fileexp_storestatus_group
, &group
);
976 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
977 hf_fileexp_storestatus_mode
, &mode
);
979 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
980 hf_fileexp_storestatus_trunc_high
, &trunc_high
);
982 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
983 hf_fileexp_storestatus_trunc_low
, &trunc_low
);
985 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
986 hf_fileexp_storestatus_length_high
, &length_high
);
988 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
989 hf_fileexp_storestatus_length_low
, &length_low
);
991 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
992 hf_fileexp_storestatus_typeuuid
, &typeuuid
);
994 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
995 hf_fileexp_storestatus_devicetype
, &devicetype
);
997 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
998 hf_fileexp_storestatus_devicenumber
, &devicenumber
);
1000 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1001 hf_fileexp_storestatus_cmask
, &cmask
);
1003 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1004 hf_fileexp_storestatus_clientspare1
, &clientspare1
);
1006 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1007 hf_fileexp_storestatus_devicenumberhighbits
,
1008 &devicenumberhighbits
);
1010 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1011 hf_fileexp_storestatus_spare1
, &spare1
);
1013 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1014 hf_fileexp_storestatus_spare2
, &spare2
);
1016 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1017 hf_fileexp_storestatus_spare3
, &spare3
);
1019 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1020 hf_fileexp_storestatus_spare4
, &spare4
);
1022 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1023 hf_fileexp_storestatus_spare5
, &spare5
);
1025 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1026 hf_fileexp_storestatus_spare6
, &spare6
);
1028 col_append_str (pinfo
->cinfo
, COL_INFO
, " Mask=");
1029 if ((mask
& AFS_SETMODTIME
) == AFS_SETMODTIME
)
1031 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETMODTIME-%u.%u",
1032 modtime_sec
, modtime_usec
);
1034 if ((mask
& AFS_SETOWNER
) == AFS_SETOWNER
)
1036 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETOWNER-%u", owner
);
1038 if ((mask
& AFS_SETGROUP
) == AFS_SETGROUP
)
1040 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETGROUP-%u", group
);
1042 if ((mask
& AFS_SETMODE
) == AFS_SETMODE
)
1044 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETMODE-%o", mode
);
1046 if ((mask
& AFS_SETACCESSTIME
) == AFS_SETACCESSTIME
)
1048 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETACCESSTIME-%u.%u",
1049 accesstime_sec
, accesstime_usec
);
1051 if ((mask
& AFS_SETCHANGETIME
) == AFS_SETCHANGETIME
)
1053 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":SETCHANGETIME-%u.%u",
1054 changetime_sec
, changetime_usec
);
1056 if ((mask
& AFS_SETLENGTH
) == AFS_SETLENGTH
)
1058 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETLENGTH");
1060 if ((mask
& AFS_SETTYPEUUID
) == AFS_SETTYPEUUID
)
1062 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETTYPEUUID");
1064 if ((mask
& AFS_SETDEVNUM
) == AFS_SETDEVNUM
)
1066 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETDEVNUM");
1068 if ((mask
& AFS_SETMODEXACT
) == AFS_SETMODEXACT
)
1070 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETMODEXACT");
1072 if ((mask
& AFS_SETTRUNCLENGTH
) == AFS_SETTRUNCLENGTH
)
1074 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETTRUNCLENGTH");
1076 if ((mask
& AFS_SETCLIENTSPARE
) == AFS_SETCLIENTSPARE
)
1078 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SETCLIENTSPARE");
1081 proto_item_set_len (item
, offset
- old_offset
);
1086 dissect_afstoken (tvbuff_t
*tvb
, int offset
,
1087 packet_info
*pinfo
, proto_tree
*parent_tree
,
1088 dcerpc_info
*di
, uint8_t *drep
)
1092 unsigned32 expirationTime;
1094 unsigned32 beginRange;
1095 unsigned32 endRange;
1096 unsigned32 beginRangeExt;
1097 unsigned32 endRangeExt;
1100 proto_item
*item
= NULL
;
1101 proto_tree
*tree
= NULL
;
1102 int old_offset
= offset
;
1103 uint32_t tokenid_hi
, tokenid_low
, expirationtime
, type_hi
, type_low
;
1104 uint32_t beginrange
, endrange
, beginrangeext
, endrangeext
, type
;
1106 if (di
->conformant_run
)
1113 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afstoken
, &item
, "afsToken:");
1117 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_tokenid_hi
,
1120 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1121 hf_fileexp_tokenid_low
, &tokenid_low
);
1123 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1124 hf_fileexp_expirationtime
, &expirationtime
);
1126 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_type_hi
,
1129 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_type_low
,
1132 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_beginrange
,
1135 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_endrange
,
1138 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1139 hf_fileexp_beginrangeext
, &beginrangeext
);
1141 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1142 hf_fileexp_endrangeext
, &endrangeext
);
1143 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1144 " :Tokenid:%u/%u ExpirationTime:%u beginrange:%u endrange:%u beginrangeext:%u endrangeext:%u",
1145 tokenid_hi
, tokenid_low
, expirationtime
, beginrange
,
1146 endrange
, beginrangeext
, endrangeext
);
1149 col_append_str (pinfo
->cinfo
, COL_INFO
, " Type=");
1151 if ((type
& TKN_LOCK_READ
) == TKN_LOCK_READ
)
1153 col_append_str (pinfo
->cinfo
, COL_INFO
, ":LOCK_READ");
1155 if ((type
& TKN_LOCK_WRITE
) == TKN_LOCK_WRITE
)
1157 col_append_str (pinfo
->cinfo
, COL_INFO
, ":LOCK_WRITE");
1159 if ((type
& TKN_DATA_READ
) == TKN_DATA_READ
)
1161 col_append_str (pinfo
->cinfo
, COL_INFO
, ":DATA_READ");
1163 if ((type
& TKN_DATA_WRITE
) == TKN_DATA_WRITE
)
1165 col_append_str (pinfo
->cinfo
, COL_INFO
, ":DATA_WRITE");
1167 if ((type
& TKN_OPEN_READ
) == TKN_OPEN_READ
)
1169 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_READ");
1171 if ((type
& TKN_OPEN_WRITE
) == TKN_OPEN_WRITE
)
1173 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_WRITE");
1175 if ((type
& TKN_OPEN_SHARED
) == TKN_OPEN_SHARED
)
1177 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_SHARED");
1179 if ((type
& TKN_OPEN_EXCLUSIVE
) == TKN_OPEN_EXCLUSIVE
)
1181 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_EXCLUSIVE");
1183 if ((type
& TKN_OPEN_DELETE
) == TKN_OPEN_DELETE
)
1185 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_DELETE");
1187 if ((type
& TKN_OPEN_PRESERVE
) == TKN_OPEN_PRESERVE
)
1189 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_PRESERVE");
1191 if ((type
& TKN_STATUS_READ
) == TKN_STATUS_READ
)
1193 col_append_str (pinfo
->cinfo
, COL_INFO
, ":STATUS_READ");
1195 if ((type
& TKN_STATUS_WRITE
) == TKN_STATUS_WRITE
)
1197 col_append_str (pinfo
->cinfo
, COL_INFO
, ":STATUS_WRITE");
1199 if ((type
& TKN_OPEN_UNLINK
) == TKN_OPEN_UNLINK
)
1201 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_UNLINK");
1203 if ((type
& TKN_SPOT_HERE
) == TKN_SPOT_HERE
)
1205 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPOT_HERE");
1207 if ((type
& TKN_SPOT_THERE
) == TKN_SPOT_THERE
)
1209 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPOT_THERE");
1211 if ((type
& TKN_OPEN_NO_READ
) == TKN_OPEN_NO_READ
)
1213 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_NO_READ");
1215 if ((type
& TKN_OPEN_NO_WRITE
) == TKN_OPEN_NO_WRITE
)
1217 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_NO_WRITE");
1219 if ((type
& TKN_OPEN_NO_UNLINK
) == TKN_OPEN_NO_UNLINK
)
1221 col_append_str (pinfo
->cinfo
, COL_INFO
, ":OPEN_NO_UNLINK");
1224 proto_item_set_len (item
, offset
- old_offset
);
1229 dissect_afstaggedname (tvbuff_t
*tvb
, int offset
,
1230 packet_info
*pinfo
, proto_tree
*parent_tree
,
1231 dcerpc_info
*di
, uint8_t *drep
)
1235 unsigned16 tn_length;
1236 byte tn_chars[AFS_NAMEMAX+1];
1239 proto_item
*item
= NULL
;
1240 proto_tree
*tree
= NULL
;
1241 int old_offset
= offset
;
1244 const uint8_t *tn_string
;
1246 if (di
->conformant_run
)
1253 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
1254 ett_fileexp_afstaggedname
, &item
, "afsTaggedName:");
1258 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_tn_tag
,
1261 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_tn_length
,
1263 if (tn_length
< 254)
1265 proto_tree_add_item (tree
, hf_fileexp_tn_string
, tvb
, offset
,
1266 tn_length
, ENC_ASCII
);
1267 tn_string
= tvb_get_string_enc (pinfo
->pool
, tvb
, offset
, 257, ENC_ASCII
);
1269 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :tn_tag: %s", tn_string
);
1273 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1274 " :FIXME!: Invalid string length of %u", tn_length
);
1277 proto_item_set_len (item
, offset
- old_offset
);
1282 dissect_afsfidtaggedname (tvbuff_t
*tvb
, int offset
,
1283 packet_info
*pinfo
, proto_tree
*parent_tree
,
1284 dcerpc_info
*di
, uint8_t *drep
)
1291 proto_item
*item
= NULL
;
1292 proto_tree
*tree
= NULL
;
1293 int old_offset
= offset
;
1295 if (di
->conformant_run
)
1302 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
1303 ett_fileexp_afsfidtaggedname
, &item
, "FidTaggedName:");
1305 offset
= dissect_afsFid (tvb
, offset
, pinfo
, tree
, di
, drep
);
1306 offset
= dissect_afstaggedname (tvb
, offset
, pinfo
, tree
, di
, drep
);
1308 proto_item_set_len (item
, offset
- old_offset
);
1314 dissect_minvvp (tvbuff_t
*tvb
, int offset
,
1315 packet_info
*pinfo
, proto_tree
*parent_tree
,
1316 dcerpc_info
*di
, uint8_t *drep
)
1318 /* unsigned32 minvvp_high
1319 unsigned32 minvvp_low
1322 proto_item
*item
= NULL
;
1323 proto_tree
*tree
= NULL
;
1324 int old_offset
= offset
;
1325 uint32_t minvvp_high
, minvvp_low
;
1327 if (di
->conformant_run
)
1334 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_minvvp
, &item
, "minVVp:");
1337 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1338 hf_fileexp_minvvp_high
, &minvvp_high
);
1340 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_minvvp_low
,
1343 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " minVVp:%u/%u", minvvp_high
,
1347 proto_item_set_len (item
, offset
- old_offset
);
1353 dissect_afsuuid (tvbuff_t
*tvb
, int offset
,
1354 packet_info
*pinfo
, proto_tree
*parent_tree
,
1355 dcerpc_info
*di
, uint8_t *drep
)
1363 proto_item
*item
= NULL
;
1364 proto_tree
*tree
= NULL
;
1365 int old_offset
= offset
;
1367 if (di
->conformant_run
)
1374 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsuuid
, &item
, "afsUUID:");
1377 offset
= dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_afsuuid_uuid
, &uuid1
);
1379 col_append_fstr (pinfo
->cinfo
, COL_INFO
, ":%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", uuid1
.data1
, uuid1
.data2
, uuid1
.data3
, uuid1
.data4
[0], uuid1
.data4
[1], uuid1
.data4
[2], uuid1
.data4
[3], uuid1
.data4
[4], uuid1
.data4
[5], uuid1
.data4
[6], uuid1
.data4
[7]);
1381 proto_item_set_len (item
, offset
- old_offset
);
1387 dissect_offsetp (tvbuff_t
*tvb
, int offset
,
1388 packet_info
*pinfo
, proto_tree
*parent_tree
,
1389 dcerpc_info
*di
, uint8_t *drep
)
1391 /* unsigned32 offsetp_high
1392 unsigned32 offsetp_low
1395 proto_item
*item
= NULL
;
1396 proto_tree
*tree
= NULL
;
1397 int old_offset
= offset
;
1398 uint32_t offsetp_high
, offsetp_low
;
1400 if (di
->conformant_run
)
1407 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_offsetp
, &item
, "minVVp:");
1411 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1412 hf_fileexp_offsetp_high
, &offsetp_high
);
1414 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_offsetp_low
,
1417 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " offsetp:%u/%u", offsetp_high
,
1420 proto_item_set_len (item
, offset
- old_offset
);
1426 dissect_returntokenidp (tvbuff_t
*tvb
, int offset
,
1427 packet_info
*pinfo
, proto_tree
*parent_tree
,
1428 dcerpc_info
*di
, uint8_t *drep
)
1430 /* unsigned32 returntokenidp_high
1431 unsigned32 returntokenidp_low
1434 proto_item
*item
= NULL
;
1435 proto_tree
*tree
= NULL
;
1436 int old_offset
= offset
;
1437 uint32_t returntokenidp_high
, returntokenidp_low
;
1439 if (di
->conformant_run
)
1446 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_returntokenidp
, &item
, "returnTokenIDp:");
1450 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1451 hf_fileexp_returntokenidp_high
, &returntokenidp_high
);
1453 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_returntokenidp_low
,
1454 &returntokenidp_low
);
1456 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " returnTokenIDp:%u/%u", returntokenidp_high
,
1457 returntokenidp_low
);
1459 proto_item_set_len (item
, offset
- old_offset
);
1465 dissect_volsync (tvbuff_t
*tvb
, int offset
,
1466 packet_info
*pinfo
, proto_tree
*parent_tree
,
1467 dcerpc_info
*di
, uint8_t *drep
)
1471 afsHyper VV; volume's version
1472 unsigned32 VVAge; age, in seconds, of the knowledge that the
1473 given VolVers is current
1474 unsigned32 VVPingAge; age, in seconds, of the last probe from
1475 the callee (the secondary) to the primary
1476 unsigned32 vv_spare1;
1477 unsigned32 vv_spare2;
1480 proto_item
*item
= NULL
;
1481 proto_tree
*tree
= NULL
;
1482 int old_offset
= offset
;
1483 uint32_t volid_hi
, volid_low
, vv_hi
, vv_low
, vvage
, vvpingage
;
1484 uint32_t vvspare1
, vvspare2
;
1486 if (di
->conformant_run
)
1493 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
1494 ett_fileexp_volsync
, &item
, "AfsVolSync:");
1498 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_volid_hi
,
1501 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_volid_low
,
1504 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vv_hi
,
1507 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vv_low
,
1510 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vvage
,
1513 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vvpingage
,
1516 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vvspare1
,
1519 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_vvspare2
,
1522 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1523 " volid_hi:%u volid_low:%u vv_hi:%u vv_low:%u vvage:%u vvpingage:%u vvpspare1:%u vvspare2:%u",
1524 volid_hi
, volid_low
, vv_hi
, vv_low
, vvage
, vvpingage
,
1525 vvspare1
, vvspare2
);
1527 proto_item_set_len (item
, offset
- old_offset
);
1533 dissect_afsFlags (tvbuff_t
*tvb
, int offset
,
1534 packet_info
*pinfo
, proto_tree
*parent_tree
,
1535 dcerpc_info
*di
, uint8_t *drep
)
1541 proto_item
*item
= NULL
;
1542 proto_tree
*tree
= NULL
;
1543 int old_offset
= offset
;
1546 if (di
->conformant_run
)
1553 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsflags
, &item
, "AfsFlags:");
1557 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_flags
,
1562 col_append_str (pinfo
->cinfo
, COL_INFO
, " Flags=");
1563 if ((flags
& AFS_FLAG_RETURNTOKEN
) == AFS_FLAG_RETURNTOKEN
)
1565 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNTOKEN");
1567 if ((flags
& AFS_FLAG_TOKENJUMPQUEUE
) == AFS_FLAG_TOKENJUMPQUEUE
)
1569 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENJUMPQUEUE");
1571 if ((flags
& AFS_FLAG_SKIPTOKEN
) == AFS_FLAG_SKIPTOKEN
)
1573 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPTOKEN");
1575 if ((flags
& AFS_FLAG_NOOPTIMISM
) == AFS_FLAG_NOOPTIMISM
)
1577 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOOPTIMISM");
1579 if ((flags
& AFS_FLAG_TOKENID
) == AFS_FLAG_TOKENID
)
1581 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENID");
1583 if ((flags
& AFS_FLAG_RETURNBLOCKER
) == AFS_FLAG_RETURNBLOCKER
)
1585 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNBLOCKER");
1587 if ((flags
& AFS_FLAG_ASYNCGRANT
) == AFS_FLAG_ASYNCGRANT
)
1589 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ASYNCGRANT");
1591 if ((flags
& AFS_FLAG_NOREVOKE
) == AFS_FLAG_NOREVOKE
)
1593 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOREVOKE");
1595 if ((flags
& AFS_FLAG_MOVE_REESTABLISH
) == AFS_FLAG_MOVE_REESTABLISH
)
1597 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_REESTABLISH");
1599 if ((flags
& AFS_FLAG_SERVER_REESTABLISH
) ==
1600 AFS_FLAG_SERVER_REESTABLISH
)
1602 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SERVER_REESTABLISH");
1604 if ((flags
& AFS_FLAG_NO_NEW_EPOCH
) == AFS_FLAG_NO_NEW_EPOCH
)
1606 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NO_NEW_EPOCH");
1608 if ((flags
& AFS_FLAG_MOVE_SOURCE_OK
) == AFS_FLAG_MOVE_SOURCE_OK
)
1610 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_SOURCE_OK");
1612 if ((flags
& AFS_FLAG_SYNC
) == AFS_FLAG_SYNC
)
1614 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SYNC");
1616 if ((flags
& AFS_FLAG_ZERO
) == AFS_FLAG_ZERO
)
1618 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ZERO");
1620 if ((flags
& AFS_FLAG_SKIPSTATUS
) == AFS_FLAG_SKIPSTATUS
)
1622 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPSTATUS");
1624 if ((flags
& AFS_FLAG_FORCEREVOCATIONS
) == AFS_FLAG_FORCEREVOCATIONS
)
1626 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEREVOCATIONS");
1628 if ((flags
& AFS_FLAG_FORCEVOLQUIESCE
) == AFS_FLAG_FORCEVOLQUIESCE
)
1630 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEVOLQUIESCE");
1632 if ((flags
& AFS_FLAG_SEC_SERVICE
) == AFS_FLAG_SEC_SERVICE
)
1634 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SEC_SERVICE");
1636 if ((flags
& AFS_FLAG_CONTEXT_NEW_ACL_IF
) ==
1637 AFS_FLAG_CONTEXT_NEW_ACL_IF
)
1639 col_append_str (pinfo
->cinfo
, COL_INFO
, ":CONTEXT_NEW_ACL_IF");
1643 proto_item_set_len (item
, offset
- old_offset
);
1648 dissect_fetchstatus (tvbuff_t
*tvb
, int offset
,
1649 packet_info
*pinfo
, proto_tree
*parent_tree
,
1650 dcerpc_info
*di
, uint8_t *drep
)
1653 unsigned32 interfaceVersion;
1654 unsigned32 fileType;
1655 unsigned32 linkCount;
1657 afsHyper dataVersion;
1661 unsigned32 callerAccess;
1662 unsigned32 anonymousAccess;
1663 unsigned32 aclExpirationTime;
1665 unsigned32 parentVnode;
1666 unsigned32 parentUnique;
1668 afsTimeval changeTime;
1669 afsTimeval accessTime;
1670 afsTimeval serverModTime;
1673 unsigned32 deviceNumber;
1674 unsigned32 blocksUsed;
1675 unsigned32 clientSpare1; * client-only attrs *
1676 unsigned32 deviceNumberHighBits;
1685 proto_item
*item
= NULL
;
1686 proto_tree
*tree
= NULL
;
1687 int old_offset
= offset
;
1688 uint32_t interfaceversion
, filetype
, linkcount
, length_high
, length_low
;
1689 uint32_t dataversion_high
, dataversion_low
, author
, owner
, group
, calleraccess
;
1690 uint32_t anonymousaccess
, aclexpirationtime
, mode
, parentvnode
, parentunique
;
1691 uint32_t modtime_sec
, modtime_msec
, changetime_sec
, changetime_msec
;
1692 uint32_t accesstime_sec
, accesstime_msec
, servermodtime_msec
, servermodtime_sec
;
1693 uint32_t devicenumber
, blocksused
, clientspare1
, devicenumberhighbits
;
1694 uint32_t agtypeunique
, himaxspare
, lomaxspare
, pathconfspare
, spare4
;
1695 uint32_t spare5
, spare6
;
1696 e_guid_t typeuuid
, objectuuid
;
1698 if (di
->conformant_run
)
1705 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
1706 ett_fileexp_fetchstatus
, &item
, "FetchStatus:");
1710 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1711 hf_fileexp_interfaceversion
, &interfaceversion
);
1713 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_filetype
,
1716 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_linkcount
,
1719 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1720 hf_fileexp_length_high
, &length_high
);
1722 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_length_low
,
1725 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1726 hf_fileexp_dataversion_high
, &dataversion_high
);
1728 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1729 hf_fileexp_dataversion_low
, &dataversion_low
);
1731 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_author
,
1734 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_owner
,
1737 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_group
,
1740 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1741 hf_fileexp_calleraccess
, &calleraccess
);
1743 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1744 hf_fileexp_anonymousaccess
, &anonymousaccess
);
1746 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1747 hf_fileexp_aclexpirationtime
, &aclexpirationtime
);
1749 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_mode
,
1752 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1753 hf_fileexp_parentvnode
, &parentvnode
);
1755 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1756 hf_fileexp_parentunique
, &parentunique
);
1758 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1759 hf_fileexp_modtime_sec
, &modtime_sec
);
1761 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1762 hf_fileexp_modtime_msec
, &modtime_msec
);
1764 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1765 hf_fileexp_changetime_sec
, &changetime_sec
);
1767 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1768 hf_fileexp_changetime_msec
, &changetime_msec
);
1770 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1771 hf_fileexp_accesstime_sec
, &accesstime_sec
);
1773 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1774 hf_fileexp_accesstime_msec
, &accesstime_msec
);
1776 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1777 hf_fileexp_servermodtime_sec
, &servermodtime_sec
);
1779 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1780 hf_fileexp_servermodtime_msec
, &servermodtime_msec
);
1782 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_typeuuid
,
1785 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_objectuuid
,
1788 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1789 hf_fileexp_devicenumber
, &devicenumber
);
1791 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_blocksused
,
1794 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1795 hf_fileexp_clientspare1
, &clientspare1
);
1797 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1798 hf_fileexp_devicenumberhighbits
,
1799 &devicenumberhighbits
);
1801 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1802 hf_fileexp_agtypeunique
, &agtypeunique
);
1804 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_himaxspare
,
1807 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_lomaxspare
,
1810 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1811 hf_fileexp_pathconfspare
, &pathconfspare
);
1813 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_spare4
,
1816 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_spare5
,
1819 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_spare6
,
1822 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1823 " :interfacever:%u filetype:%u linkcount:%u length:%u dataver:%u author:%u owner:%u group:%u calleraccess:%u anonaccess:%u aclexpire:%u mode:%u parentvnode:%u parentunique:%u modtimesec:%u changetime_sec:%u accesstime_sec:%u servermodtimesec:%u devicenumber:%u blocksused:%u clientspare:%u devicehighbits:%u agtypeunique:%u",
1824 interfaceversion
, filetype
, linkcount
, length_low
,
1825 dataversion_low
, author
, owner
, group
, calleraccess
,
1826 anonymousaccess
, aclexpirationtime
, mode
, parentvnode
,
1827 parentunique
, modtime_sec
, changetime_sec
,
1828 accesstime_sec
, servermodtime_sec
, devicenumber
,
1829 blocksused
, clientspare1
, devicenumberhighbits
,
1832 proto_item_set_len (item
, offset
- old_offset
);
1837 dissect_afsReturnDesc (tvbuff_t
*tvb
, int offset
,
1838 packet_info
*pinfo
, proto_tree
*parent_tree
,
1839 dcerpc_info
*di
, uint8_t *drep
)
1842 afsFid fid; * useful hint *
1844 afsHyper type; * mask *
1845 unsigned32 flags; * just in case *
1848 proto_item
*item
= NULL
;
1849 proto_tree
*tree
= NULL
;
1850 int old_offset
= offset
;
1851 uint32_t tokenid_high
, tokenid_low
, type_high
, type_low
;
1853 if (di
->conformant_run
)
1860 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
1861 ett_fileexp_afsReturnDesc
, &item
, "afsReturnDesc:");
1864 offset
= dissect_afsFid ( tvb
, offset
, pinfo
, tree
, di
, drep
);
1867 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1868 hf_fileexp_afsreturndesc_tokenid_high
, &tokenid_high
);
1870 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1871 hf_fileexp_afsreturndesc_tokenid_low
, &tokenid_low
);
1873 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1874 hf_fileexp_afsreturndesc_type_high
, &type_high
);
1876 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1877 hf_fileexp_afsreturndesc_type_low
, &type_low
);
1878 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " TokenId:%u/%u Type:%u/%u",
1879 tokenid_high
, tokenid_low
, type_high
, type_low
);
1882 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
1883 NDR_POINTER_REF
, "afsFlags: ", -1);
1885 proto_item_set_len (item
, offset
- old_offset
);
1892 dissect_afsReturns (tvbuff_t
*tvb
, int offset
,
1893 packet_info
*pinfo
, proto_tree
*tree
,
1894 dcerpc_info
*di
, uint8_t *drep
)
1897 long afsReturns_len;
1898 [length_is(afsReturns_len)] afsReturnDesc afsReturns_val[AFS_BULKMAX];
1901 /* this is not really a ucvarray, but with the initial len, we can
1902 cheat and pretend it is */
1903 if (di
->conformant_run
)
1909 dissect_ndr_ucvarray (tvb
, offset
, pinfo
, tree
, di
, drep
,
1910 dissect_afsReturnDesc
);
1915 #if 0 /* not used */
1918 dissect_afsbundled_stat (tvbuff_t
*tvb
, int offset
,
1919 packet_info
*pinfo
, proto_tree
*parent_tree
,
1920 dcerpc_info
*di
, uint8_t *drep _U_
)
1922 proto_item
*item
= NULL
;
1923 proto_tree
*tree
= NULL
;
1924 int old_offset
= offset
;
1926 if (di
->conformant_run
)
1933 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fileexp_afsbundled_stat
, &item
, "afsbundled_stat:");
1939 afsFetchStatus stat;
1941 error_status_t error;
1945 offset = dissect_afsFid(tvb, offset, pinfo, tree, di, drep);
1948 offset = dissect_fetchstatus (tvb, offset, pinfo, tree, di, drep);
1949 offset = dissect_afstoken (tvb, offset, pinfo, tree, di, drep);
1951 /* This is currently under construction as I figure out the reverse layout of the packet. */
1953 offset = dissect_afsErrorStatus (tvb, offset, pinfo, tree, di, drep);
1956 proto_item_set_len (item
, offset
- old_offset
);
1961 #endif /* not used */
1964 dissect_afsBulkStat (tvbuff_t
*tvb _U_
, int offset
,
1965 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
1966 dcerpc_info
*di _U_
, uint8_t *drep _U_
)
1969 unsigned32 BulkStat_len;
1970 [length_is (BulkStat_len)] bundled_stat BulkStat_val[AFS_BULKMAX];
1972 /* this is not really a ucvarray, but with the initial len, we can
1973 cheat and pretend it is */
1975 offset = dissect_ndr_ucvarray (tvb, offset, pinfo, tree, drep,
1976 dissect_afsbundled_stat);
1986 fileexp_dissect_removefile_rqst (tvbuff_t
*tvb
, int offset
,
1987 packet_info
*pinfo
, proto_tree
*tree
,
1988 dcerpc_info
*di
, uint8_t *drep
)
1990 if (di
->conformant_run
)
1996 [in] afsFid *DirFidp,
1997 [in] afsFidTaggedName *Namep,
1998 [in] afsHyper *returnTokenIDp,
1999 [in] afsHyper *minVVp,
2000 [in] unsigned32 Flags,
2004 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2005 NDR_POINTER_REF
, "afsFid: ", -1);
2007 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2008 dissect_afsfidtaggedname
, NDR_POINTER_REF
,
2009 "afsFidTaggedName: ", -1);
2011 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_returntokenidp
,
2012 NDR_POINTER_REF
, "afsReturnTokenIDp:", -1);
2014 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2015 NDR_POINTER_REF
, "afsMinVVp:", -1);
2018 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2019 NDR_POINTER_REF
, "afsFlags:", -1);
2025 fileexp_dissect_storedata_rqst (tvbuff_t
*tvb
, int offset
,
2026 packet_info
*pinfo
, proto_tree
*tree
,
2027 dcerpc_info
*di
, uint8_t *drep
)
2029 uint32_t position_high
, position_low
, length
;
2031 if (di
->conformant_run
)
2038 [in] afsStoreStatus *InStatusp,
2039 [in] afsHyper *Position,
2040 [in] signed32 Length,
2041 [in] afsHyper *minVVp,
2042 [in] unsigned32 Flags,
2043 [in] pipe_t *storeStream,
2048 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2049 NDR_POINTER_REF
, "afsFid: ", -1);
2051 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2052 dissect_afsstorestatus
, NDR_POINTER_REF
,
2053 "afsStoreStatus:", -1);
2055 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2056 hf_fileexp_position_high
, &position_high
);
2058 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2059 hf_fileexp_position_low
, &position_low
);
2062 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2063 hf_fileexp_length
, &length
);
2065 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Position:%u/%u Length:%u",
2066 position_high
, position_low
, length
);
2069 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2070 NDR_POINTER_REF
, "MinVVp:", -1);
2073 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2074 NDR_POINTER_REF
, "afsFlags:", -1);
2076 /* XXX need to decode pipe_t still here */
2082 fileexp_dissect_gettoken_rqst (tvbuff_t
*tvb
, int offset
,
2083 packet_info
*pinfo
, proto_tree
*tree
,
2084 dcerpc_info
*di
, uint8_t *drep
)
2086 if (di
->conformant_run
)
2093 [in] afsToken *MinTokenp,
2094 [in] afsHyper *minVVp,
2095 [in] unsigned32 Flags,
2100 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2101 NDR_POINTER_REF
, "afsFid: ", -1);
2104 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
2105 NDR_POINTER_REF
, "afsToken: ", -1);
2108 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2109 NDR_POINTER_REF
, "MinVVp:", -1);
2112 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2113 NDR_POINTER_REF
, "afsFlags:", -1);
2118 fileexp_dissect_gettoken_resp (tvbuff_t
*tvb
, int offset
,
2119 packet_info
*pinfo
, proto_tree
*tree
,
2120 dcerpc_info
*di
, uint8_t *drep
)
2122 if (di
->conformant_run
)
2128 [out] afsToken *OutTokenp,
2129 [out] afsRecordLock *OutBlockerp,
2130 [out] afsFetchStatus *OutStatusp,
2131 [out] afsVolSync *Syncp
2135 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
2136 NDR_POINTER_REF
, "afsToken: ", -1);
2138 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2139 dissect_afsRecordLock
, NDR_POINTER_REF
,
2140 "afsRecordLock: ", -1);
2142 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2143 NDR_POINTER_REF
, "afsFetchStatus: ", -1);
2145 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2146 NDR_POINTER_REF
, "VolSync: ", -1);
2148 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2149 dissect_afsErrorStatus
, NDR_POINTER_REF
,
2150 "afsErrorStatus: ", -1);
2156 fileexp_dissect_lookuproot_rqst (tvbuff_t
*tvb
, int offset
,
2157 packet_info
*pinfo
, proto_tree
*tree
,
2158 dcerpc_info
*di
, uint8_t *drep
)
2160 if (di
->conformant_run
)
2166 * [in] afsFid *InFidp,
2167 * [in] afsHyper *minVVp,
2168 * [in] unsigned32 Flags,
2172 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2173 NDR_POINTER_REF
, "afsFid: ", -1);
2176 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2177 NDR_POINTER_REF
, "MinVVp:", -1);
2180 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2181 NDR_POINTER_REF
, "afsFlags:", -1);
2187 fileexp_dissect_fetchdata_rqst (tvbuff_t
*tvb
, int offset
,
2188 packet_info
*pinfo
, proto_tree
*tree
,
2189 dcerpc_info
*di
, uint8_t *drep
)
2191 uint32_t position_high
, position_low
, length
;
2193 if (di
->conformant_run
)
2200 [in] afsHyper *minVVp,
2201 [in] afsHyper *Position,
2202 [in] signed32 Length,
2203 [in] unsigned32 Flags,
2207 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2208 NDR_POINTER_REF
, "afsFid: ", -1);
2211 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2212 NDR_POINTER_REF
, "MinVVp:", -1);
2214 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2215 hf_fileexp_position_high
, &position_high
);
2217 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2218 hf_fileexp_position_low
, &position_low
);
2220 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2221 hf_fileexp_length
, &length
);
2222 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Position:%u/%u Length:%u",
2223 position_high
, position_low
, length
);
2226 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2227 NDR_POINTER_REF
, "afsFlags:", -1);
2233 fileexp_dissect_fetchacl_rqst (tvbuff_t
*tvb
, int offset
,
2234 packet_info
*pinfo
, proto_tree
*tree
,
2235 dcerpc_info
*di
, uint8_t *drep
)
2239 if (di
->conformant_run
)
2246 [in] unsigned32 aclType,
2247 [in] afsHyper *minVVp,
2248 [in] unsigned32 Flags,
2253 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2254 NDR_POINTER_REF
, "afsFid: ", -1);
2257 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_acltype
,
2260 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2261 NDR_POINTER_REF
, "MinVVp:", -1);
2264 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2265 NDR_POINTER_REF
, "afsFlags:", -1);
2269 col_append_str (pinfo
->cinfo
, COL_INFO
,
2270 " :copy the ACL from specified fid:");
2276 fileexp_dissect_fetchstatus_rqst (tvbuff_t
*tvb
, int offset
,
2277 packet_info
*pinfo
, proto_tree
*tree
,
2278 dcerpc_info
*di
, uint8_t *drep
)
2280 if (di
->conformant_run
)
2287 [in] afsHyper *minVVp,
2288 [in] unsigned32 Flags,
2292 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2293 NDR_POINTER_REF
, "afsFid: ", -1);
2295 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2296 NDR_POINTER_REF
, "MinVVp:", -1);
2298 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2299 NDR_POINTER_REF
, "afsFlags:", -1);
2304 fileexp_dissect_storeacl_rqst (tvbuff_t
*tvb
, int offset
,
2305 packet_info
*pinfo
, proto_tree
*tree
,
2306 dcerpc_info
*di
, uint8_t *drep
)
2310 if (di
->conformant_run
)
2317 [in] afsACL *AccessListp,
2318 [in] unsigned32 aclType,
2319 [in] afsFid *aclFidp,
2320 [in] afsHyper *minVVp,
2321 [in] unsigned32 Flags,
2325 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2326 NDR_POINTER_REF
, "afsFid: ", -1);
2328 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsAcl
,
2329 NDR_POINTER_REF
, "afsAcl: ", -1);
2331 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_acltype
,
2334 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2335 NDR_POINTER_REF
, "afsFid: ", -1);
2337 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2338 NDR_POINTER_REF
, "MinVVp:", -1);
2340 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2341 NDR_POINTER_REF
, "afsFlags:", -1);
2343 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " aclType:%u",acltype
);
2349 fileexp_dissect_storestatus_rqst (tvbuff_t
*tvb
, int offset
,
2350 packet_info
*pinfo
, proto_tree
*tree
,
2351 dcerpc_info
*di
, uint8_t *drep
)
2353 if (di
->conformant_run
)
2360 [in] afsStoreStatus *InStatusp,
2361 [in] afsHyper *minVVp,
2362 [in] unsigned32 Flags,
2366 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2367 NDR_POINTER_REF
, "afsFid: ", -1);
2369 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2370 dissect_afsstorestatus
, NDR_POINTER_REF
,
2371 "afsStoreStatus: ", -1);
2373 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2374 NDR_POINTER_REF
, "MinVVp:", -1);
2376 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2377 NDR_POINTER_REF
, "afsFlags:", -1);
2383 fileexp_dissect_createfile_rqst (tvbuff_t
*tvb
, int offset
,
2384 packet_info
*pinfo
, proto_tree
*tree
,
2385 dcerpc_info
*di
, uint8_t *drep
)
2387 if (di
->conformant_run
)
2393 [in] afsFid *DirFidp,
2394 [in] afsTaggedName *Namep,
2395 [in] afsStoreStatus *InStatusp,
2396 [in] afsHyper *minVVp,
2397 [in] unsigned32 Flags,
2401 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2402 NDR_POINTER_REF
, "afsFid: ", -1);
2404 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2405 dissect_afstaggedname
, NDR_POINTER_REF
,
2406 "afsTaggedName: ", -1);
2408 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2409 dissect_afsstorestatus
, NDR_POINTER_REF
,
2410 "afsStoreStatus: ", -1);
2412 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2413 NDR_POINTER_REF
, "MinVVp:", -1);
2415 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
2416 NDR_POINTER_REF
, "afsFlags:", -1);
2422 fileexp_dissect_rename_rqst (tvbuff_t
*tvb
, int offset
,
2423 packet_info
*pinfo
, proto_tree
*tree
,
2424 dcerpc_info
*di
, uint8_t *drep
)
2426 if (di
->conformant_run
)
2432 [in] afsFid *OldDirFidp,
2433 [in] afsFidTaggedName *OldNamep,
2434 [in] afsFid *NewDirFidp,
2435 [in] afsFidTaggedName *NewNamep,
2436 [in] afsHyper *returnTokenIDp,
2437 [in] afsHyper *minVVp,
2438 [in] unsigned32 Flags,
2443 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2444 NDR_POINTER_REF
, "afsFid: ", -1);
2447 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2448 dissect_afsfidtaggedname
, NDR_POINTER_REF
,
2449 "afsFidTaggedName: ", -1);
2452 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2453 NDR_POINTER_REF
, "afsFid: ", -1);
2456 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2457 dissect_afstaggedname
, NDR_POINTER_REF
,
2458 "afsFidTaggedName: ", -1);
2461 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2462 dissect_returntokenidp
, NDR_POINTER_REF
,
2463 "afsReturnTokenIDp: ", -1);
2466 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2467 dissect_minvvp
, NDR_POINTER_REF
,
2470 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
2476 fileexp_dissect_symlink_rqst (tvbuff_t
*tvb
, int offset
,
2477 packet_info
*pinfo
, proto_tree
*tree
,
2478 dcerpc_info
*di
, uint8_t *drep
)
2480 if (di
->conformant_run
)
2486 [in] afsFid *DirFidp,
2487 [in] afsTaggedName *Namep,
2488 [in] afsTaggedPath *LinkContentsp,
2489 [in] afsStoreStatus *InStatusp,
2490 [in] afsHyper *minVVp,
2491 [in] unsigned32 Flags,
2496 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2497 NDR_POINTER_REF
, "afsFid: ", -1);
2500 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2501 dissect_afstaggedname
, NDR_POINTER_REF
,
2502 "afsTaggedName: ", -1);
2504 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2505 dissect_afsTaggedPath
, NDR_POINTER_REF
,
2506 "afsTaggedPath: ", -1);
2508 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2509 dissect_afsstorestatus
, NDR_POINTER_REF
,
2510 "afsStoreStatus: ", -1);
2512 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2513 NDR_POINTER_REF
, "MinVVp:", -1);
2514 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
2520 fileexp_dissect_readdir_rqst (tvbuff_t
*tvb
, int offset
,
2521 packet_info
*pinfo
, proto_tree
*tree
,
2522 dcerpc_info
*di
, uint8_t *drep
)
2526 if (di
->conformant_run
)
2532 [in] afsFid *DirFidp,
2533 [in] afsHyper *Offsetp,
2534 [in] unsigned32 Size,
2535 [in] afsHyper *minVVp,
2536 [in] unsigned32 Flags,
2540 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2541 NDR_POINTER_REF
, "afsFid: ", -1);
2543 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_offsetp
,
2544 NDR_POINTER_REF
, "Offsetp: ", -1);
2546 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2547 hf_fileexp_readdir_size
, &size
);
2549 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Size:%u", size
);
2552 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2553 NDR_POINTER_REF
, "MinVVp:", -1);
2554 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
2560 fileexp_dissect_makedir_rqst (tvbuff_t
*tvb
, int offset
,
2561 packet_info
*pinfo
, proto_tree
*tree
,
2562 dcerpc_info
*di
, uint8_t *drep
)
2564 if (di
->conformant_run
)
2570 [in] afsFid *DirFidp,
2571 [in] afsTaggedName *Namep,
2572 [in] afsStoreStatus *InStatusp,
2573 [in] afsHyper *minVVp,
2574 [in] unsigned32 Flags,
2578 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2579 NDR_POINTER_REF
, "afsFid: ", -1);
2582 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2583 dissect_afstaggedname
, NDR_POINTER_REF
,
2584 "afsTaggedName: ", -1);
2586 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2587 dissect_afsstorestatus
, NDR_POINTER_REF
,
2588 "afsStoreStatus: ", -1);
2590 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2591 NDR_POINTER_REF
, "MinVVp:", -1);
2592 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
2598 fileexp_dissect_removedir_rqst (tvbuff_t
*tvb
, int offset
,
2599 packet_info
*pinfo
, proto_tree
*tree
,
2600 dcerpc_info
*di
, uint8_t *drep
)
2602 uint32_t returntokenidp_high
, returntokenidp_low
;
2604 if (di
->conformant_run
)
2610 [in] afsFid *DirFidp,
2611 [in] afsFidTaggedName *Namep,
2612 [in] afsHyper *returnTokenIDp,
2613 [in] afsHyper *minVVp,
2614 [in] unsigned32 Flags,
2618 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2619 NDR_POINTER_REF
, "afsFid: ", -1);
2621 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2622 dissect_afsfidtaggedname
, NDR_POINTER_REF
,
2623 "afsFidTaggedName: ", -1);
2625 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2626 hf_fileexp_returntokenidp_high
, &returntokenidp_high
);
2628 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2629 hf_fileexp_returntokenidp_low
, &returntokenidp_low
);
2631 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " returnTokenIDp:%u/%u",
2632 returntokenidp_high
, returntokenidp_low
);
2634 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2635 NDR_POINTER_REF
, "MinVVp:", -1);
2636 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
2642 fileexp_dissect_lookup_rqst (tvbuff_t
*tvb
, int offset
,
2643 packet_info
*pinfo
, proto_tree
*tree
,
2644 dcerpc_info
*di
, uint8_t *drep
)
2646 if (di
->conformant_run
)
2652 [in] afsFid *DirFidp,
2653 [in] afsTaggedName *Namep,
2654 [in] afsHyper *minVVp,
2655 [in] unsigned32 Flags,
2659 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2660 NDR_POINTER_REF
, "afsFid: ", -1);
2663 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2664 dissect_afstaggedname
, NDR_POINTER_REF
,
2665 "afsTaggedName: ", -1);
2667 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2668 NDR_POINTER_REF
, "MinVVp:", -1);
2669 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
2674 fileexp_dissect_lookup_resp (tvbuff_t
*tvb
, int offset
,
2675 packet_info
*pinfo
, proto_tree
*tree
,
2676 dcerpc_info
*di
, uint8_t *drep
)
2678 if (di
->conformant_run
)
2684 [out] afsFid *OutFidp,
2685 [out] afsFetchStatus *OutFidStatusp,
2686 [out] afsFetchStatus *OutDirStatusp,
2687 [out] afsToken *OutTokenp,
2688 [out] afsVolSync *Syncp
2692 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2693 NDR_POINTER_REF
, "afsFid: ", -1);
2696 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2697 NDR_POINTER_REF
, "FetchStatus: ", -1);
2699 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2700 NDR_POINTER_REF
, "FetchStatus: ", -1);
2703 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
2704 NDR_POINTER_REF
, "afsToken: ", -1);
2706 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2707 NDR_POINTER_REF
, "VolSync: ", -1);
2708 MACRO_ST_CLEAR ("Lookup reply");
2715 fileexp_dissect_makemountpoint_rqst (tvbuff_t
*tvb
, int offset
,
2716 packet_info
*pinfo
, proto_tree
*tree
,
2717 dcerpc_info
*di
, uint8_t *drep
)
2721 if (di
->conformant_run
)
2728 [in] afsFid *DirFidp,
2729 [in] afsTaggedName *Namep,
2730 [in] afsTaggedName *cellNamep,
2731 [in] afsFStype Type,
2732 [in] afsTaggedName *volumeNamep,
2733 [in] afsStoreStatus *InStatusp,
2734 [in] afsHyper *minVVp,
2735 [in] unsigned32 Flags,
2740 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2741 NDR_POINTER_REF
, "afsFid: ", -1);
2744 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2745 dissect_afstaggedname
, NDR_POINTER_REF
,
2746 "afsTaggedName: ", -1);
2748 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2749 dissect_afstaggedname
, NDR_POINTER_REF
,
2750 "afsTaggedName: ", -1);
2752 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fileexp_fstype
,
2755 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2756 dissect_afstaggedname
, NDR_POINTER_REF
,
2757 "afsTaggedName: ", -1);
2759 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
2760 dissect_afsstorestatus
, NDR_POINTER_REF
,
2761 "afsStoreStatus: ", -1);
2763 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
2764 NDR_POINTER_REF
, "MinVVp:", -1);
2766 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
2768 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u", type
);
2775 fileexp_dissect_setcontext_rqst (tvbuff_t
*tvb
, int offset
,
2776 packet_info
*pinfo
, proto_tree
*tree
,
2777 dcerpc_info
*di
, uint8_t *drep
)
2779 uint32_t epochtime
, clientsizesattrs
, parm7
;
2781 if (di
->conformant_run
)
2787 [in] unsigned32 epochTime,
2788 [in] afsNetData *callbackAddr,
2789 [in] unsigned32 Flags,
2790 [in] afsUUID *secObjectID,
2791 [in] unsigned32 clientSizesAttrs,
2792 [in] unsigned32 parm7
2796 dissect_dcerpc_time_t (tvb
, offset
, pinfo
, tree
, drep
,
2797 hf_fileexp_setcontext_rqst_epochtime
, &epochtime
);
2799 offset
= dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsNetData
,
2800 NDR_POINTER_REF
, "afsNetData:", -1);
2802 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
2804 col_append_str (pinfo
->cinfo
, COL_INFO
, " setObjectID");
2806 offset
= dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsuuid
,
2807 NDR_POINTER_REF
, "afsUUID:", -1);
2809 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2810 hf_fileexp_setcontext_rqst_clientsizesattrs
,
2813 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2814 hf_fileexp_setcontext_rqst_parm7
, &parm7
);
2816 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " epochTime:%u clientSizesAttrs:%u parm7:%u", epochtime
, clientsizesattrs
, parm7
);
2822 fileexp_dissect_setcontext_resp (tvbuff_t
*tvb
, int offset
,
2823 packet_info
*pinfo
, proto_tree
*tree
,
2824 dcerpc_info
*di
, uint8_t *drep
)
2826 /* nothing but error code */
2828 if (di
->conformant_run
)
2833 MACRO_ST_CLEAR ("SetContext reply");
2838 fileexp_dissect_lookuproot_resp (tvbuff_t
*tvb
, int offset
,
2839 packet_info
*pinfo
, proto_tree
*tree
,
2840 dcerpc_info
*di
, uint8_t *drep
)
2842 if (di
->conformant_run
)
2848 * [out] afsFid *OutFidp,
2849 * [out] afsFetchStatus *OutFidStatusp,
2850 * [out] afsToken *OutTokenp,
2851 * [out] afsVolSync *Syncp
2855 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
2856 NDR_POINTER_REF
, "afsFid: ", -1);
2859 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2860 NDR_POINTER_REF
, "FetchStatus: ", -1);
2862 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
2863 NDR_POINTER_REF
, "afsToken: ", -1);
2865 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2866 NDR_POINTER_REF
, "VolSync: ", -1);
2867 MACRO_ST_CLEAR ("LookupRoot reply");
2872 fileexp_dissect_fetchdata_resp (tvbuff_t
*tvb
, int offset
,
2873 packet_info
*pinfo
, proto_tree
*tree
,
2874 dcerpc_info
*di
, uint8_t *drep
)
2876 uint32_t pipe_t_size
;
2878 if (di
->conformant_run
)
2884 [out] afsFetchStatus *OutStatusp,
2885 [out] afsToken *OutTokenp,
2886 [out] afsVolSync *Syncp,
2887 [out] pipe_t *fetchStream
2889 /* The SkipToken/SkipStatus flags are always used in every fetchdata request I have seen.
2890 There is also not sign of the afsVolSync structure... Just size, and data string... aka pipe_t */
2893 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
2894 hf_fileexp_fetchdata_pipe_t_size
, &pipe_t_size
);
2900 fileexp_dissect_fetchacl_resp (tvbuff_t
*tvb
, int offset
,
2901 packet_info
*pinfo
, proto_tree
*tree
,
2902 dcerpc_info
*di
, uint8_t *drep
)
2904 if (di
->conformant_run
)
2910 [out] afsACL *AccessListp,
2911 [out] afsFetchStatus *OutStatusp,
2912 [out] afsVolSync *Syncp
2916 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsAcl
,
2917 NDR_POINTER_REF
, "afsAcl: ", -1);
2919 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2920 NDR_POINTER_REF
, "FetchStatus: ", -1);
2923 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2924 NDR_POINTER_REF
, "VolSync: ", -1);
2925 MACRO_ST_CLEAR ("FetchAcl reply");
2930 fileexp_dissect_fetchstatus_resp (tvbuff_t
*tvb
, int offset
,
2931 packet_info
*pinfo
, proto_tree
*tree
,
2932 dcerpc_info
*di
, uint8_t *drep
)
2934 if (di
->conformant_run
)
2940 [out] afsFetchStatus *OutStatusp,
2941 [out] afsToken *OutTokenp,
2942 [out] afsVolSync *Syncp
2946 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2947 NDR_POINTER_REF
, "FetchStatus: ", -1);
2950 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
2951 NDR_POINTER_REF
, "afsToken: ", -1);
2953 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2954 NDR_POINTER_REF
, "VolSync: ", -1);
2955 MACRO_ST_CLEAR ("FetchStatus reply");
2960 fileexp_dissect_storedata_resp (tvbuff_t
*tvb
, int offset
,
2961 packet_info
*pinfo
, proto_tree
*tree
,
2962 dcerpc_info
*di
, uint8_t *drep
)
2964 if (di
->conformant_run
)
2970 [out] afsFetchStatus *OutStatusp,
2971 [out] afsVolSync *Syncp
2975 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
2976 NDR_POINTER_REF
, "FetchStatus: ", -1);
2979 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
2980 NDR_POINTER_REF
, "VolSync: ", -1);
2981 MACRO_ST_CLEAR ("StoreData reply");
2986 fileexp_dissect_storeacl_resp (tvbuff_t
*tvb
, int offset
,
2987 packet_info
*pinfo
, proto_tree
*tree
,
2988 dcerpc_info
*di
, uint8_t *drep
)
2990 if (di
->conformant_run
)
2996 [out] afsFetchStatus *OutStatusp,
2997 [out] afsVolSync *Syncp
3001 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3002 NDR_POINTER_REF
, "FetchStatus: ", -1);
3005 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3006 NDR_POINTER_REF
, "VolSync: ", -1);
3007 MACRO_ST_CLEAR ("StoreAcl reply");
3012 fileexp_dissect_storestatus_resp (tvbuff_t
*tvb
, int offset
,
3013 packet_info
*pinfo
, proto_tree
*tree
,
3014 dcerpc_info
*di
, uint8_t *drep
)
3016 if (di
->conformant_run
)
3022 [out] afsFetchStatus *OutStatusp,
3023 [out] afsVolSync *Syncp
3027 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3028 NDR_POINTER_REF
, "FetchStatus: ", -1);
3031 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3032 NDR_POINTER_REF
, "VolSync: ", -1);
3033 MACRO_ST_CLEAR ("StoreStatus reply");
3038 fileexp_dissect_removefile_resp (tvbuff_t
*tvb
, int offset
,
3039 packet_info
*pinfo
, proto_tree
*tree
,
3040 dcerpc_info
*di
, uint8_t *drep
)
3042 if (di
->conformant_run
)
3048 [out] afsFetchStatus *OutDirStatusp,
3049 [out] afsFetchStatus *OutFileStatusp,
3050 [out] afsFid *OutFileFidp,
3051 [out] afsVolSync *Syncp
3054 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3055 NDR_POINTER_REF
, "FetchStatus: ", -1);
3058 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3059 NDR_POINTER_REF
, "FetchStatus: ", -1);
3061 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3062 NDR_POINTER_REF
, "afsFid: ", -1);
3064 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3065 NDR_POINTER_REF
, "VolSync: ", -1);
3066 MACRO_ST_CLEAR ("RemoveFile reply");
3071 fileexp_dissect_createfile_resp (tvbuff_t
*tvb
, int offset
,
3072 packet_info
*pinfo
, proto_tree
*tree
,
3073 dcerpc_info
*di
, uint8_t *drep
)
3075 if (di
->conformant_run
)
3081 [out] afsFid *OutFidp,
3082 [out] afsFetchStatus *OutFidStatusp,
3083 [out] afsFetchStatus *OutDirStatusp,
3084 [out] afsToken *OutTokenp,
3085 [out] afsVolSync *Syncp
3090 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3091 NDR_POINTER_REF
, "afsFid: ", -1);
3093 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3094 NDR_POINTER_REF
, "FetchStatus: ", -1);
3097 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3098 NDR_POINTER_REF
, "FetchStatus: ", -1);
3101 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
3102 NDR_POINTER_REF
, "afsToken: ", -1);
3104 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3105 NDR_POINTER_REF
, "VolSync: ", -1);
3106 MACRO_ST_CLEAR ("CreateFile reply");
3111 fileexp_dissect_rename_resp (tvbuff_t
*tvb
, int offset
,
3112 packet_info
*pinfo
, proto_tree
*tree
,
3113 dcerpc_info
*di
, uint8_t *drep
)
3115 if (di
->conformant_run
)
3121 [out] afsFetchStatus *OutOldDirStatusp,
3122 [out] afsFetchStatus *OutNewDirStatusp,
3123 [out] afsFid *OutOldFileFidp,
3124 [out] afsFetchStatus *OutOldFileStatusp,
3125 [out] afsFid *OutNewFileFidp,
3126 [out] afsFetchStatus *OutNewFileStatusp,
3127 [out] afsVolSync *Syncp
3131 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3132 NDR_POINTER_REF
, "FetchStatus: ", -1);
3134 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3135 NDR_POINTER_REF
, "FetchStatus: ", -1);
3137 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3138 NDR_POINTER_REF
, "afsFid: ", -1);
3140 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3141 NDR_POINTER_REF
, "FetchStatus: ", -1);
3143 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3144 NDR_POINTER_REF
, "afsFid: ", -1);
3147 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3148 NDR_POINTER_REF
, "FetchStatus: ", -1);
3151 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3152 NDR_POINTER_REF
, "VolSync: ", -1);
3153 MACRO_ST_CLEAR ("Rename reply");
3158 fileexp_dissect_symlink_resp (tvbuff_t
*tvb
, int offset
,
3159 packet_info
*pinfo
, proto_tree
*tree
,
3160 dcerpc_info
*di
, uint8_t *drep
)
3162 if (di
->conformant_run
)
3168 [out] afsFid *OutFidp,
3169 [out] afsFetchStatus *OutFidStatusp,
3170 [out] afsFetchStatus *OutDirStatusp,
3171 [out] afsToken *OutTokenp,
3172 [out] afsVolSync *Syncp
3176 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3177 NDR_POINTER_REF
, "afsFid: ", -1);
3179 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3180 NDR_POINTER_REF
, "FetchStatus: ", -1);
3182 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3183 NDR_POINTER_REF
, "FetchStatus: ", -1);
3185 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
3186 NDR_POINTER_REF
, "afsToken: ", -1);
3188 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3189 NDR_POINTER_REF
, "VolSync: ", -1);
3190 MACRO_ST_CLEAR ("Symlink reply");
3196 fileexp_dissect_hardlink_resp (tvbuff_t
*tvb
, int offset
,
3197 packet_info
*pinfo
, proto_tree
*tree
,
3198 dcerpc_info
*di
, uint8_t *drep
)
3200 if (di
->conformant_run
)
3206 [out] afsFetchStatus *OutFidStatusp,
3207 [out] afsFetchStatus *OutDirStatusp,
3208 [out] afsVolSync *Syncp
3213 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3214 NDR_POINTER_REF
, "FetchStatus: ", -1);
3216 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3217 NDR_POINTER_REF
, "FetchStatus: ", -1);
3219 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3220 NDR_POINTER_REF
, "VolSync: ", -1);
3221 MACRO_ST_CLEAR ("Hardlink reply");
3226 fileexp_dissect_hardlink_rqst (tvbuff_t
*tvb
, int offset
,
3227 packet_info
*pinfo
, proto_tree
*tree
,
3228 dcerpc_info
*di
, uint8_t *drep
)
3230 if (di
->conformant_run
)
3236 [in] afsFid *DirFidp,
3237 [in] afsTaggedName *Namep,
3238 [in] afsFid *ExistingFidp,
3239 [in] afsHyper *minVVp,
3240 [in] unsigned32 Flags,
3245 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3246 NDR_POINTER_REF
, "afsFid: ", -1);
3249 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
3250 dissect_afstaggedname
, NDR_POINTER_REF
,
3251 "afsTaggedName: ", -1);
3254 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3255 NDR_POINTER_REF
, "afsFid: ", -1);
3258 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
3259 NDR_POINTER_REF
, "MinVVp:", -1);
3261 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
3267 fileexp_dissect_makedir_resp (tvbuff_t
*tvb
, int offset
,
3268 packet_info
*pinfo
, proto_tree
*tree
,
3269 dcerpc_info
*di
, uint8_t *drep
)
3271 if (di
->conformant_run
)
3277 [out] afsFid *OutFidp,
3278 [out] afsFetchStatus *OutFidStatusp,
3279 [out] afsFetchStatus *OutDirStatusp,
3280 [out] afsToken *OutTokenp,
3281 [out] afsVolSync *Syncp
3284 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3285 NDR_POINTER_REF
, "afsFid: ", -1);
3287 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3288 NDR_POINTER_REF
, "FetchStatus: ", -1);
3290 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3291 NDR_POINTER_REF
, "FetchStatus: ", -1);
3293 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
3294 NDR_POINTER_REF
, "afsToken: ", -1);
3296 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3297 NDR_POINTER_REF
, "VolSync: ", -1);
3299 MACRO_ST_CLEAR ("MakeDir reply");
3305 fileexp_dissect_removedir_resp (tvbuff_t
*tvb
, int offset
,
3306 packet_info
*pinfo
, proto_tree
*tree
,
3307 dcerpc_info
*di
, uint8_t *drep
)
3309 if (di
->conformant_run
)
3315 [out] afsFetchStatus *OutDirStatusp,
3316 [out] afsFid *OutFidp,
3317 [out] afsFetchStatus *OutDelStatusp,
3318 [out] afsVolSync *Syncp
3322 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3323 NDR_POINTER_REF
, "FetchStatus: ", -1);
3325 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3326 NDR_POINTER_REF
, "afsFid: ", -1);
3328 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3329 NDR_POINTER_REF
, "FetchStatus: ", -1);
3331 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3332 NDR_POINTER_REF
, "VolSync: ", -1);
3333 MACRO_ST_CLEAR ("RemoveDir reply");
3340 fileexp_dissect_readdir_resp (tvbuff_t
*tvb
, int offset
,
3341 packet_info
*pinfo
, proto_tree
*tree
,
3342 dcerpc_info
*di
, uint8_t *drep
)
3344 uint32_t nextoffsetp_high
, nextoffsetp_low
;
3346 if (di
->conformant_run
)
3352 [out] afsHyper *NextOffsetp,
3353 [out] afsFetchStatus *OutDirStatusp,
3354 [out] afsToken *OutTokenp,
3355 [out] afsVolSync *Syncp,
3356 [out] pipe_t *dirStream
3360 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3361 hf_fileexp_nextoffsetp_high
, &nextoffsetp_high
);
3363 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3364 hf_fileexp_nextoffsetp_low
, &nextoffsetp_low
);
3366 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " NextOffsetp:%u/%u",
3367 nextoffsetp_high
, nextoffsetp_low
);
3369 /* all packets seem to have SKIPTOKEN/SKIPSTATUS sent, and thus these structures are missing on calls holding tokens. */
3372 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3373 NDR_POINTER_REF
, "VolSync: ", -1);
3374 /* XXX need to add pipe_t here, once figured out. */
3380 fileexp_dissect_releasetokens_resp (tvbuff_t
*tvb
, int offset
,
3381 packet_info
*pinfo
, proto_tree
*tree
,
3382 dcerpc_info
*di
, uint8_t *drep
)
3384 if (di
->conformant_run
)
3390 MACRO_ST_CLEAR ("ReleaseTokens reply");
3395 fileexp_dissect_releasetokens_rqst (tvbuff_t
*tvb
, int offset
,
3396 packet_info
*pinfo
, proto_tree
*tree
,
3397 dcerpc_info
*di
, uint8_t *drep
)
3399 if (di
->conformant_run
)
3406 [in] afsReturns *Tokens_Arrayp,
3407 [in] unsigned32 Flags
3410 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsReturns
,
3411 NDR_POINTER_REF
, "afsReturns: ", -1);
3413 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
3414 NDR_POINTER_REF
, "afsFlags: ", -1);
3419 fileexp_dissect_gettime_resp (tvbuff_t
*tvb
, int offset
,
3420 packet_info
*pinfo
, proto_tree
*tree
,
3421 dcerpc_info
*di
, uint8_t *drep
)
3423 uint32_t secondsp
, usecondsp
, syncdistance
, syncdispersion
;
3425 if (di
->conformant_run
)
3431 [out] unsigned32 *Secondsp,
3432 [out] unsigned32 *USecondsp,
3433 [out] unsigned32 *SyncDistance,
3434 [out] unsigned32 *SyncDispersion
3438 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3439 hf_fileexp_gettime_secondsp
, &secondsp
);
3441 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3442 hf_fileexp_gettime_usecondsp
, &usecondsp
);
3444 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3445 hf_fileexp_gettime_syncdistance
, &syncdistance
);
3447 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3448 hf_fileexp_gettime_syncdispersion
, &syncdispersion
);
3450 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Secondsp:%u Usecondsp:%u SyncDistance:/%u SyncDispersion:%u", secondsp
, usecondsp
, syncdistance
, syncdispersion
);
3452 MACRO_ST_CLEAR ("GetTime reply");
3459 fileexp_dissect_gettime_rqst (tvbuff_t
*tvb _U_
, int offset
,
3460 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
3461 dcerpc_info
*di _U_
, uint8_t *drep _U_
)
3469 fileexp_dissect_processquota_resp (tvbuff_t
*tvb
, int offset
,
3470 packet_info
*pinfo
, proto_tree
*tree
,
3471 dcerpc_info
*di
, uint8_t *drep
)
3473 if (di
->conformant_run
)
3479 [in,out] afsQuota *quotaListp,
3480 [out] afsFetchStatus *OutStatusp,
3481 [out] afsVolSync *Syncp
3484 /* XXX need afsQuota */
3487 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3488 NDR_POINTER_REF
, "FetchStatus: ", -1);
3490 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3491 NDR_POINTER_REF
, "VolSync: ", -1);
3492 MACRO_ST_CLEAR ("ProcessQuota reply");
3498 fileexp_dissect_processquota_rqst (tvbuff_t
*tvb
, int offset
,
3499 packet_info
*pinfo
, proto_tree
*tree
,
3500 dcerpc_info
*di
, uint8_t *drep
)
3502 if (di
->conformant_run
)
3509 [in] afsHyper *minVVp,
3510 [in] unsigned32 Flags,
3511 [in,out] afsQuota *quotaListp,
3516 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3517 NDR_POINTER_REF
, "afsFid: ", -1);
3519 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
3520 NDR_POINTER_REF
, "MinVVp:", -1);
3521 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
3523 /* XXX need to figure out afsQuota here */
3528 fileexp_dissect_getserverinterfaces_rqst (tvbuff_t
*tvb _U_
, int offset
,
3529 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
3530 dcerpc_info
*di _U_
, uint8_t *drep _U_
)
3534 [in, out] dfs_interfaceList *serverInterfacesP
3536 /* XXX figure out dfs_interfacelist */
3541 fileexp_dissect_getserverinterfaces_resp (tvbuff_t
*tvb
, int offset
,
3542 packet_info
*pinfo
, proto_tree
*tree
,
3543 dcerpc_info
*di
, uint8_t *drep
)
3545 if (di
->conformant_run
)
3551 [in, out] dfs_interfaceList *serverInterfacesP
3553 /* XXX figure out dfs_interfacelist */
3555 MACRO_ST_CLEAR ("GetServerInterfaces reply");
3560 fileexp_dissect_setparams_rqst (tvbuff_t
*tvb
, int offset
,
3561 packet_info
*pinfo
, proto_tree
*tree
,
3562 dcerpc_info
*di
, uint8_t *drep
)
3564 if (di
->conformant_run
)
3570 [in] unsigned32 Flags,
3571 [in, out] afsConnParams *paramsP
3573 offset
= dissect_afsFlags ( tvb
, offset
, pinfo
, tree
, di
, drep
);
3575 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
3576 dissect_afsConnParams
, NDR_POINTER_REF
,
3577 "afsConnParams:", -1);
3582 fileexp_dissect_setparams_resp (tvbuff_t
*tvb
, int offset
,
3583 packet_info
*pinfo
, proto_tree
*tree
,
3584 dcerpc_info
*di
, uint8_t *drep
)
3586 if (di
->conformant_run
)
3592 [in, out] afsConnParams *paramsP
3596 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
,
3597 dissect_afsConnParams
, NDR_POINTER_REF
,
3598 "afsConnParams:", -1);
3599 MACRO_ST_CLEAR ("SetParams reply");
3604 fileexp_dissect_makemountpoint_resp (tvbuff_t
*tvb
, int offset
,
3605 packet_info
*pinfo
, proto_tree
*tree
,
3606 dcerpc_info
*di
, uint8_t *drep
)
3608 if (di
->conformant_run
)
3614 [out] afsFid *OutFidp,
3615 [out] afsFetchStatus *OutFidStatusp,
3616 [out] afsFetchStatus *OutDirStatusp,
3617 [out] afsVolSync *Syncp
3621 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3622 NDR_POINTER_REF
, "afsFid: ", -1);
3624 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3625 NDR_POINTER_REF
, "FetchStatus: ", -1);
3627 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3628 NDR_POINTER_REF
, "FetchStatus: ", -1);
3631 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3632 NDR_POINTER_REF
, "VolSync: ", -1);
3633 MACRO_ST_CLEAR ("MakeMountPoint reply");
3638 fileexp_dissect_getstatistics_rqst (tvbuff_t
*tvb _U_
, int offset
,
3639 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
3640 dcerpc_info
*di
, uint8_t *drep _U_
)
3642 if (di
->conformant_run
)
3647 /* nothing for request */
3652 fileexp_dissect_getstatistics_resp (tvbuff_t
*tvb _U_
, int offset
,
3653 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
3654 dcerpc_info
*di _U_
, uint8_t *drep _U_
)
3658 [out] afsStatistics *Statisticsp
3660 /* XXX figure out afsStatistics */
3665 fileexp_dissect_bulkfetchvv_rqst (tvbuff_t
*tvb
, int offset
,
3666 packet_info
*pinfo
, proto_tree
*tree
,
3667 dcerpc_info
*di
, uint8_t *drep
)
3669 uint32_t cellidp_high
, cellidp_low
, numvols
, spare1
, spare2
;
3671 if (di
->conformant_run
)
3677 [in] afsHyper *cellIdp,
3678 [in] afsBulkVolIDs *VolIDsp,
3679 [in] unsigned32 NumVols,
3680 [in] unsigned32 Flags,
3681 [in] unsigned32 spare1,
3682 [in] unsigned32 spare2,
3685 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3686 hf_fileexp_cellidp_high
, &cellidp_high
);
3688 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3689 hf_fileexp_cellidp_low
, &cellidp_low
);
3691 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " CellIDp:%u/%u", cellidp_high
,
3694 /* XXX figure out the afsBulkVolIDS */
3696 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3697 hf_fileexp_bulkfetchvv_numvols
, &numvols
);
3699 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
3701 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3702 hf_fileexp_bulkfetchvv_spare1
, &spare1
);
3704 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3705 hf_fileexp_bulkfetchvv_spare2
, &spare2
);
3710 fileexp_dissect_bulkfetchvv_resp (tvbuff_t
*tvb _U_
, int offset
,
3711 packet_info
*pinfo _U_
, proto_tree
*tree _U_
,
3712 dcerpc_info
*di _U_
, uint8_t *drep _U_
)
3715 [out] afsBulkVVs *VolVVsp,
3716 [out] unsigned32 *spare4
3718 /* XXX need to figure out afsBulkVVs ; */
3723 fileexp_dissect_bulkkeepalive_resp (tvbuff_t
*tvb
, int offset
,
3724 packet_info
*pinfo
, proto_tree
*tree
,
3725 dcerpc_info
*di
, uint8_t *drep
)
3729 if (di
->conformant_run
)
3735 [out] unsigned32 *spare4
3739 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3740 hf_fileexp_bulkkeepalive_spare4
, &spare4
);
3741 MACRO_ST_CLEAR ("BulkKeepAlive reply");
3746 fileexp_dissect_bulkkeepalive_rqst (tvbuff_t
*tvb
, int offset
,
3747 packet_info
*pinfo
, proto_tree
*tree
,
3748 dcerpc_info
*di
, uint8_t *drep
)
3750 uint32_t numexecfids
, spare1
, spare2
;
3752 if (di
->conformant_run
)
3758 [in] afsBulkFEX *KAFEXp,
3759 [in] unsigned32 numExecFids,
3760 [in] unsigned32 Flags,
3761 [in] unsigned32 spare1,
3762 [in] unsigned32 spare2,
3764 /* XXX figure out afsBulkFEX */
3766 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3767 hf_fileexp_bulkkeepalive_numexecfids
, &numexecfids
);
3769 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFlags
,
3770 NDR_POINTER_REF
, "afsFlags:", -1);
3772 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3773 hf_fileexp_bulkkeepalive_spare1
, &spare1
);
3775 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3776 hf_fileexp_bulkkeepalive_spare2
, &spare2
);
3781 fileexp_dissect_bulkfetchstatus_rqst (tvbuff_t
*tvb
, int offset
,
3782 packet_info
*pinfo
, proto_tree
*tree
,
3783 dcerpc_info
*di
, uint8_t *drep
)
3785 uint32_t offsetp_high
, offsetp_low
, size
;
3787 if (di
->conformant_run
)
3794 [in] afsFid *DirFidp,
3795 [in] afsHyper *Offsetp,
3796 [in] unsigned32 Size,
3797 [in] afsHyper *minVVp,
3798 [in] unsigned32 Flags,
3802 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsFid
,
3803 NDR_POINTER_REF
, "afsFid: ", -1);
3805 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3806 hf_fileexp_offsetp_high
, &offsetp_high
);
3808 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3809 hf_fileexp_offsetp_low
, &offsetp_low
);
3811 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Offsetp:%u/%u", offsetp_high
,
3814 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3815 hf_fileexp_bulkfetchstatus_size
, &size
);
3817 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_minvvp
,
3818 NDR_POINTER_REF
, "MinVVp:", -1);
3819 offset
= dissect_afsFlags (tvb
, offset
, pinfo
, tree
, di
, drep
);
3825 fileexp_dissect_bulkfetchstatus_resp (tvbuff_t
*tvb
, int offset
,
3826 packet_info
*pinfo
, proto_tree
*tree
,
3827 dcerpc_info
*di
, uint8_t *drep
)
3829 if (di
->conformant_run
)
3835 [out] BulkStat *bulkstats,
3836 [out] afsHyper *NextOffsetp,
3837 [out] afsFetchStatus *OutDirStatusp,
3838 [out] afsToken *OutTokenp,
3839 [out] afsVolSync *Syncp,
3840 [out] pipe_t *dirStream
3844 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afsBulkStat
,
3845 NDR_POINTER_REF
, "BulkStat: ", -1);
3846 /* Under construction. The packet seems to have the pipe_t before the rest of the data listed in idl. */
3850 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3851 hf_fileexp_nextoffsetp_high
, &nextoffsetp_high
);
3853 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
3854 hf_fileexp_nextoffsetp_low
, &nextoffsetp_low
);
3856 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " NextOffsetp:%u/%u",
3857 nextoffsetp_high
, nextoffsetp_low
);
3859 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_fetchstatus
,
3860 NDR_POINTER_REF
, "FetchStatus: ", -1);
3862 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_afstoken
,
3863 NDR_POINTER_REF
, "afsToken: ", -1);
3865 dissect_ndr_pointer (tvb
, offset
, pinfo
, tree
, di
, drep
, dissect_volsync
,
3866 NDR_POINTER_REF
, "VolSync: ", -1);
3868 /* XXX figure out pipe_t */
3873 static const dcerpc_sub_dissector fileexp_dissectors
[] = {
3874 { 0, "SetContext", fileexp_dissect_setcontext_rqst
, fileexp_dissect_setcontext_resp
} ,
3875 { 1, "LookupRoot", fileexp_dissect_lookuproot_rqst
, fileexp_dissect_lookuproot_resp
} ,
3876 { 2, "FetchData", fileexp_dissect_fetchdata_rqst
, fileexp_dissect_fetchdata_resp
} ,
3877 { 3, "FetchAcl", fileexp_dissect_fetchacl_rqst
, fileexp_dissect_fetchacl_resp
} ,
3878 { 4, "FetchStatus", fileexp_dissect_fetchstatus_rqst
, fileexp_dissect_fetchstatus_resp
} ,
3879 { 5, "StoreData", fileexp_dissect_storedata_rqst
, fileexp_dissect_storedata_resp
} ,
3880 { 6, "StoreAcl", fileexp_dissect_storeacl_rqst
, fileexp_dissect_storeacl_resp
} ,
3881 { 7, "StoreStatus", fileexp_dissect_storestatus_rqst
, fileexp_dissect_storestatus_resp
} ,
3882 { 8, "RemoveFile", fileexp_dissect_removefile_rqst
, fileexp_dissect_removefile_resp
} ,
3883 { 9, "CreateFile", fileexp_dissect_createfile_rqst
, fileexp_dissect_createfile_resp
} ,
3884 { 10, "Rename", fileexp_dissect_rename_rqst
, fileexp_dissect_rename_resp
} ,
3885 { 11, "Symlink", fileexp_dissect_symlink_rqst
, fileexp_dissect_symlink_resp
} ,
3886 { 12, "HardLink", fileexp_dissect_hardlink_rqst
, fileexp_dissect_hardlink_resp
} ,
3887 { 13, "MakeDir", fileexp_dissect_makedir_rqst
, fileexp_dissect_makedir_resp
} ,
3888 { 14, "RemoveDir", fileexp_dissect_removedir_rqst
, fileexp_dissect_removedir_resp
} ,
3889 { 15, "Readdir", fileexp_dissect_readdir_rqst
, fileexp_dissect_readdir_resp
} ,
3890 { 16, "Lookup", fileexp_dissect_lookup_rqst
, fileexp_dissect_lookup_resp
} ,
3891 { 17, "GetToken", fileexp_dissect_gettoken_rqst
, fileexp_dissect_gettoken_resp
} ,
3892 { 18, "ReleaseTokens", fileexp_dissect_releasetokens_rqst
, fileexp_dissect_releasetokens_resp
} ,
3893 { 19, "GetTime", fileexp_dissect_gettime_rqst
, fileexp_dissect_gettime_resp
} ,
3894 { 20, "MakeMountPoint", fileexp_dissect_makemountpoint_rqst
, fileexp_dissect_makemountpoint_resp
} ,
3895 { 21, "GetStatistics", fileexp_dissect_getstatistics_rqst
, fileexp_dissect_getstatistics_resp
} ,
3896 { 22, "BulkFetchVV", fileexp_dissect_bulkfetchvv_rqst
, fileexp_dissect_bulkfetchvv_resp
} ,
3897 { 23, "BulkKeepAlive", fileexp_dissect_bulkkeepalive_rqst
, fileexp_dissect_bulkkeepalive_resp
} ,
3898 { 24, "ProcessQuota", fileexp_dissect_processquota_rqst
, fileexp_dissect_processquota_resp
} ,
3899 { 25, "GetServerInterfaces", fileexp_dissect_getserverinterfaces_rqst
, fileexp_dissect_getserverinterfaces_resp
} ,
3900 { 26, "SetParams", fileexp_dissect_setparams_rqst
, fileexp_dissect_setparams_resp
} ,
3901 { 27, "BulkFetchStatus", fileexp_dissect_bulkfetchstatus_rqst
, fileexp_dissect_bulkfetchstatus_resp
} ,
3902 { 0, NULL
, NULL
, NULL
}
3907 proto_register_fileexp (void)
3910 static hf_register_info hf
[] = {
3912 { "AFS4Int Error Status Code", "fileexp.st",
3913 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3916 { &hf_fileexp_flags
,
3917 { "DFS Flags", "fileexp.flags",
3918 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3921 { &hf_fileexp_tn_string
,
3922 { "String", "fileexp.string",
3923 FT_STRING
, BASE_NONE
, NULL
, 0x0,
3926 { &hf_fileexp_opnum
,
3927 { "Operation", "fileexp.opnum",
3928 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3931 { &hf_fileexp_setcontext_rqst_epochtime
,
3932 { "EpochTime", "fileexp.setcontext_rqst_epochtime",
3933 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0,
3936 { &hf_fileexp_setcontext_rqst_clientsizesattrs
,
3937 { "ClientSizeAttrs", "fileexp.setcontext_clientsizesattrs",
3938 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3941 { &hf_fileexp_setcontext_rqst_parm7
,
3942 { "Parm7", "fileexp.setcontext.parm7",
3943 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3946 { &hf_fileexp_acl_len
,
3947 { "Acl Length", "fileexp.acl_len",
3948 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3951 { &hf_fileexp_acltype
,
3952 { "Acl type", "fileexp.acltype",
3953 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3956 { &hf_fileexp_minvvp_high
,
3957 { "minVVp high", "fileexp.minvvp_high",
3958 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3961 { &hf_fileexp_minvvp_low
,
3962 { "minVVp low", "fileexp.minvvp_low",
3963 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3966 { &hf_fileexp_accesstime_msec
,
3967 { "Access time (msec)", "fileexp.accesstime_msec",
3968 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3971 { &hf_fileexp_accesstime_sec
,
3972 { "Access time (sec)", "fileexp.accesstime_sec",
3973 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3976 { &hf_fileexp_aclexpirationtime
,
3977 { "Acl expiration time", "fileexp.aclexpirationtime",
3978 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3981 { &hf_fileexp_agtypeunique
,
3982 { "agtypeunique", "fileexp.agtypeunique",
3983 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3986 { &hf_fileexp_anonymousaccess
,
3987 { "Anonymous Access", "fileexp.anonymousaccess",
3988 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3991 { &hf_fileexp_author
,
3992 { "Author", "fileexp.author",
3993 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3996 { &hf_fileexp_blocksused
,
3997 { "Blocks used", "fileexp.blocksused",
3998 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4001 { &hf_fileexp_calleraccess
,
4002 { "Caller access", "fileexp.calleraccess",
4003 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4006 { &hf_fileexp_changetime_msec
,
4007 { "Change time (msec)", "fileexp.changetime_msec",
4008 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4011 { &hf_fileexp_changetime_sec
,
4012 { "Change time (sec)", "fileexp.changetime_sec",
4013 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4016 { &hf_fileexp_clientspare1
,
4017 { "Client spare1", "fileexp.clientspare1",
4018 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4021 { &hf_fileexp_dataversion_high
,
4022 { "Data version (high)", "fileexp.dataversion_high",
4023 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4026 { &hf_fileexp_dataversion_low
,
4027 { "Data version (low)", "fileexp.dataversion_low",
4028 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4031 { &hf_fileexp_devicenumber
,
4032 { "Device number", "fileexp.devicenumber",
4033 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4036 { &hf_fileexp_devicenumberhighbits
,
4037 { "Device number high bits", "fileexp.devicenumberhighbits",
4038 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4041 { &hf_fileexp_filetype
,
4042 { "File type", "fileexp.filetype",
4043 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4046 { &hf_fileexp_group
,
4047 { "Group", "fileexp.group",
4048 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4051 { &hf_fileexp_himaxspare
,
4052 { "Hi max spare", "fileexp.himaxspare",
4053 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4056 { &hf_fileexp_interfaceversion
,
4057 { "Interface version", "fileexp.interfaceversion",
4058 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4061 { &hf_fileexp_length_high
,
4062 { "Length high", "fileexp.length_high",
4063 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4066 { &hf_fileexp_length_low
,
4067 { "Length low", "fileexp.length_low",
4068 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4071 { &hf_fileexp_linkcount
,
4072 { "Link count", "fileexp.linkcount",
4073 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4076 { &hf_fileexp_lomaxspare
,
4077 { "Lo max spare", "fileexp.lomaxspare",
4078 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4082 { "Mode", "fileexp.mode",
4083 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4086 { &hf_fileexp_modtime_msec
,
4087 { "Modify time (msec)", "fileexp.modtime_msec",
4088 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4091 { &hf_fileexp_modtime_sec
,
4092 { "Modify time (sec)", "fileexp.modtime_sec",
4093 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4096 { &hf_fileexp_objectuuid
,
4097 { "Object uuid", "fileexp.objectuuid",
4098 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4101 { &hf_fileexp_owner
,
4102 { "Owner", "fileexp.owner",
4103 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4106 { &hf_fileexp_parentunique
,
4107 { "Parent unique", "fileexp.parentunique",
4108 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4111 { &hf_fileexp_parentvnode
,
4112 { "Parent vnode", "fileexp.parentvnode",
4113 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4116 { &hf_fileexp_pathconfspare
,
4117 { "Path conf spare", "fileexp.pathconfspare",
4118 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4121 { &hf_fileexp_servermodtime_msec
,
4122 { "Server modify time (msec)", "fileexp.servermodtime_msec",
4123 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4126 { &hf_fileexp_servermodtime_sec
,
4127 { "Server modify time (sec)", "fileexp.servermodtime_sec",
4128 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4131 { &hf_fileexp_spare4
,
4132 { "Spare4", "fileexp.spare4",
4133 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4136 { &hf_fileexp_spare5
,
4137 { "Spare5", "fileexp.spare5",
4138 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4141 { &hf_fileexp_spare6
,
4142 { "Spare6", "fileexp.spare6",
4143 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4146 { &hf_fileexp_typeuuid
,
4147 { "Type uuid", "fileexp.typeuuid",
4148 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4151 { &hf_fileexp_volid_hi
,
4152 { "Vol id hi", "fileexp.volid_hi",
4153 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4156 { &hf_fileexp_volid_low
,
4157 { "Vol id low", "fileexp.volid_low",
4158 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4161 { &hf_fileexp_vvage
,
4162 { "Vvage", "fileexp.vvage",
4163 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4166 { &hf_fileexp_vv_hi
,
4167 { "Vv hi", "fileexp.vv_hi",
4168 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4171 { &hf_fileexp_vv_low
,
4172 { "Vv low", "fileexp.vv_low",
4173 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4176 { &hf_fileexp_vvpingage
,
4177 { "Vv pingage", "fileexp.vvpingage",
4178 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4181 { &hf_fileexp_vvspare1
,
4182 { "Vv spare1", "fileexp.vvspare1",
4183 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4186 { &hf_fileexp_vvspare2
,
4187 { "Vv spare2", "fileexp.vvspare2",
4188 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4191 { &hf_fileexp_beginrange
,
4192 { "Begin range", "fileexp.beginrange",
4193 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4196 { &hf_fileexp_beginrangeext
,
4197 { "Begin range ext", "fileexp.beginrangeext",
4198 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4201 { &hf_fileexp_endrange
,
4202 { "End range", "fileexp.endrange",
4203 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4206 { &hf_fileexp_endrangeext
,
4207 { "End range ext", "fileexp.endrangeext",
4208 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4211 { &hf_fileexp_expirationtime
,
4212 { "Expiration time", "fileexp.expirationtime",
4213 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4216 { &hf_fileexp_tokenid_hi
,
4217 { "Tokenid hi", "fileexp.tokenid_hi",
4218 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4221 { &hf_fileexp_tokenid_low
,
4222 { "Tokenid low", "fileexp.tokenid_low",
4223 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4226 { &hf_fileexp_type_hi
,
4227 { "Type hi", "fileexp.type_hi",
4228 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4231 { &hf_fileexp_type_low
,
4232 { "Type low", "fileexp.type_low",
4233 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4236 { &hf_fileexp_tn_length
,
4237 { "Tn length", "fileexp.tn_length",
4238 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4241 { &hf_fileexp_tn_tag
,
4242 { "Tn tag", "fileexp.tn_tag",
4243 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4246 { &hf_fileexp_storestatus_accesstime_sec
,
4247 { "Store status access time (sec)", "fileexp.storestatus_accesstime_sec",
4248 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4251 { &hf_fileexp_storestatus_accesstime_usec
,
4252 { "Store status access time (usec)", "fileexp.storestatus_accesstime_usec",
4253 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4256 { &hf_fileexp_storestatus_changetime_sec
,
4257 { "Store status change time (sec)", "fileexp.storestatus_changetime_sec",
4258 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4261 { &hf_fileexp_storestatus_changetime_usec
,
4262 { "Store status change time (usec)", "fileexp.storestatus_changetime_usec",
4263 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4266 { &hf_fileexp_storestatus_clientspare1
,
4267 { "Store Status client spare1", "fileexp.storestatus_clientspare1",
4268 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4271 { &hf_fileexp_storestatus_cmask
,
4272 { "Store status cmask", "fileexp.storestatus_cmask",
4273 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4276 { &hf_fileexp_storestatus_devicenumber
,
4277 { "Store status device number", "fileexp.storestatus_devicenumber",
4278 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4281 { &hf_fileexp_storestatus_devicenumberhighbits
,
4282 { "Store status device number high bits", "fileexp.storestatus_devicenumberhighbits",
4283 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4286 { &hf_fileexp_storestatus_devicetype
,
4287 { "Store status device type", "fileexp.storestatus_devicetype",
4288 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4291 { &hf_fileexp_storestatus_group
,
4292 { "Store status group", "fileexp.storestatus_group",
4293 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4296 { &hf_fileexp_storestatus_length_high
,
4297 { "Store status length high", "fileexp.storestatus_length_high",
4298 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4301 { &hf_fileexp_storestatus_length_low
,
4302 { "Store status length low", "fileexp.storestatus_length_low",
4303 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4306 { &hf_fileexp_storestatus_mask
,
4307 { "Store status mask", "fileexp.storestatus_mask",
4308 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4311 { &hf_fileexp_storestatus_mode
,
4312 { "Store status mode", "fileexp.storestatus_mode",
4313 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4316 { &hf_fileexp_storestatus_modtime_sec
,
4317 { "Store status modify time (sec)", "fileexp.storestatus_modtime_sec",
4318 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4321 { &hf_fileexp_storestatus_modtime_usec
,
4322 { "Store status modify time (usec)", "fileexp.storestatus_modtime_usec",
4323 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4326 { &hf_fileexp_storestatus_owner
,
4327 { "Store status owner", "fileexp.storestatus_owner",
4328 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4331 { &hf_fileexp_storestatus_spare1
,
4332 { "Store status spare1", "fileexp.storestatus_spare1",
4333 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4336 { &hf_fileexp_storestatus_spare2
,
4337 { "Store status spare2", "fileexp.storestatus_spare2",
4338 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4341 { &hf_fileexp_storestatus_spare3
,
4342 { "Store status spare3", "fileexp.storestatus_spare3",
4343 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4346 { &hf_fileexp_storestatus_spare4
,
4347 { "Store status spare4", "fileexp.storestatus_spare4",
4348 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4351 { &hf_fileexp_storestatus_spare5
,
4352 { "Store status spare5", "fileexp.storestatus_spare5",
4353 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4356 { &hf_fileexp_storestatus_spare6
,
4357 { "Store status spare6", "fileexp.storestatus_spare6",
4358 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4361 { &hf_fileexp_storestatus_trunc_high
,
4362 { "Store status trunc high", "fileexp.storestatus_trunc_high",
4363 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4366 { &hf_fileexp_storestatus_trunc_low
,
4367 { "Store status trunc low", "fileexp.storestatus_trunc_low",
4368 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4371 { &hf_fileexp_storestatus_typeuuid
,
4372 { "Store status type uuid", "fileexp.storestatus_typeuuid",
4373 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4376 { &hf_fileexp_l_end_pos
,
4377 { "l_end_pos", "fileexp.l_end_pos",
4378 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4381 { &hf_fileexp_l_end_pos_ext
,
4382 { "l_end_pos_ext", "fileexp.l_end_pos_ext",
4383 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4386 { &hf_fileexp_l_fstype
,
4387 { "l_fstype", "fileexp.l_fstype",
4388 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4391 { &hf_fileexp_l_pid
,
4392 { "l_pid", "fileexp.l_pid",
4393 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4396 { &hf_fileexp_l_start_pos
,
4397 { "l_start_pos", "fileexp.l_start_pos",
4398 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4401 { &hf_fileexp_l_start_pos_ext
,
4402 { "l_start_pos_ext", "fileexp.l_start_pos_ext",
4403 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4406 { &hf_fileexp_l_sysid
,
4407 { "l_sysid", "fileexp.l_sysid",
4408 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4411 { &hf_fileexp_l_type
,
4412 { "l_type", "fileexp.l_type",
4413 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4416 { &hf_fileexp_l_whence
,
4417 { "l_whence", "fileexp.l_whence",
4418 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4421 { &hf_afsconnparams_mask
,
4422 { "afs conn params mask", "fileexp.afs_connparams_mask",
4423 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4426 { &hf_afsconnparams_values
,
4427 { "afs conn params values", "fileexp.afs_connparams_values",
4428 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4431 { &hf_fileexp_afsFid_cell_high
,
4432 { "Cell High", "fileexp.afsFid.cell_high",
4433 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4434 "afsFid Cell High", HFILL
}
4436 { &hf_fileexp_afsFid_cell_low
,
4437 { "Cell Low", "fileexp.afsFid.cell_low",
4438 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4439 "afsFid Cell Low", HFILL
}
4441 { &hf_fileexp_afsFid_volume_high
,
4442 { "Volume High", "fileexp.afsFid.volume_high",
4443 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4444 "afsFid Volume High", HFILL
}
4446 { &hf_fileexp_afsFid_volume_low
,
4447 { "Volume Low", "fileexp.afsFid.volume_low",
4448 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4449 "afsFid Volume Low", HFILL
}
4451 { &hf_fileexp_afsFid_Vnode
,
4452 { "Vnode", "fileexp.afsFid.Vnode",
4453 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4454 "afsFid Vnode", HFILL
}
4456 { &hf_fileexp_afsFid_Unique
,
4457 { "Unique", "fileexp.afsFid.Unique",
4458 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4459 "afsFid Unique", HFILL
}
4461 { &hf_fileexp_afsNetAddr_type
,
4462 { "Type", "fileexp.afsNetAddr.type",
4463 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4466 { &hf_fileexp_afsNetAddr_data
,
4467 { "IP Data", "fileexp.afsNetAddr.data",
4468 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4471 { &hf_fileexp_position_high
,
4472 { "Position High", "fileexp.position_high",
4473 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4476 { &hf_fileexp_position_low
,
4477 { "Position Low", "fileexp.position_low",
4478 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4481 { &hf_fileexp_afsreturndesc_tokenid_high
,
4482 { "Token id High", "fileexp.afsreturndesc_tokenid_high",
4483 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4486 { &hf_fileexp_afsreturndesc_tokenid_low
,
4487 { "Token id low", "fileexp.afsreturndesc_tokenid_low",
4488 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4491 { &hf_fileexp_afsreturndesc_type_high
,
4492 { "Type high", "fileexp.type_high",
4493 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4496 { &hf_fileexp_afsreturndesc_type_low
,
4497 { "Type low", "fileexp.type_low",
4498 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4501 { &hf_fileexp_offsetp_high
,
4502 { "offset high", "fileexp.offset_high",
4503 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4506 { &hf_fileexp_offsetp_low
,
4507 { "offset high", "fileexp.offset_high",
4508 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4511 { &hf_fileexp_nextoffsetp_high
,
4512 { "next offset high", "fileexp.nextoffset_high",
4513 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4516 { &hf_fileexp_nextoffsetp_low
,
4517 { "next offset low", "fileexp.nextoffset_low",
4518 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4521 { &hf_fileexp_returntokenidp_high
,
4522 { "return token idp high", "fileexp.returntokenidp_high",
4523 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4526 { &hf_fileexp_returntokenidp_low
,
4527 { "return token idp low", "fileexp.returntokenidp_low",
4528 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4531 { &hf_fileexp_cellidp_high
,
4532 { "cellidp high", "fileexp.cellidp_high",
4533 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4536 { &hf_fileexp_cellidp_low
,
4537 { "cellidp low", "fileexp.cellidp_low",
4538 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4541 { &hf_afserrorstatus_st
,
4542 { "AFS Error Code", "fileexp.afserrortstatus_st",
4543 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4546 { &hf_fileexp_length
,
4547 { "Length", "fileexp.length",
4548 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4551 { &hf_fileexp_afsTaggedPath_tp_chars
,
4552 { "AFS Tagged Path", "fileexp.TaggedPath_tp_chars",
4553 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4556 { &hf_fileexp_afsTaggedPath_tp_tag
,
4557 { "AFS Tagged Path Name", "fileexp.TaggedPath_tp_tag",
4558 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4561 { &hf_fileexp_afsacl_uuid1
,
4562 { "AFS ACL UUID1", "fileexp.afsacl_uuid1",
4563 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4566 { &hf_fileexp_bulkfetchstatus_size
,
4567 { "BulkFetchStatus Size", "fileexp.bulkfetchstatus_size",
4568 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4571 { &hf_fileexp_bulkfetchvv_numvols
,
4572 { "BulkFetchVv num vols", "fileexp.bulkfetchvv_numvols",
4573 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4576 { &hf_fileexp_bulkfetchvv_spare1
,
4577 { "BulkFetchVv spare1", "fileexp.bulkfetchvv_spare1",
4578 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4581 { &hf_fileexp_bulkfetchvv_spare2
,
4582 { "BulkFetchVv spare2", "fileexp.bulkfetchvv_spare2",
4583 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4586 { &hf_fileexp_bulkkeepalive_numexecfids
,
4587 { "BulkKeepAlive numexecfids", "fileexp.bulkkeepalive_numexecfids",
4588 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4591 { &hf_fileexp_bulkkeepalive_spare4
,
4592 { "BulkKeepAlive spare4", "fileexp.bulkfetchkeepalive_spare4",
4593 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4596 { &hf_fileexp_bulkkeepalive_spare2
,
4597 { "BulkKeepAlive spare2", "fileexp.bulkfetchkeepalive_spare2",
4598 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4601 { &hf_fileexp_bulkkeepalive_spare1
,
4602 { "BulkFetch KeepAlive spare1", "fileexp.bulkfetchkeepalive_spare1",
4603 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4606 { &hf_fileexp_afsacl_defaultcell_uuid
,
4607 { "Default Cell UUID", "fileexp.defaultcell_uuid",
4608 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4611 { &hf_fileexp_afsuuid_uuid
,
4612 { "AFS UUID", "fileexp.uuid",
4613 FT_GUID
, BASE_NONE
, NULL
, 0x0,
4616 { &hf_fileexp_gettime_syncdispersion
,
4617 { "GetTime Syncdispersion", "fileexp.gettime_syncdispersion",
4618 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4621 { &hf_fileexp_gettime_syncdistance
,
4622 { "SyncDistance", "fileexp.gettime.syncdistance",
4623 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4626 { &hf_fileexp_gettime_usecondsp
,
4627 { "GetTime usecondsp", "fileexp.gettime_usecondsp",
4628 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4631 { &hf_fileexp_readdir_size
,
4632 { "Readdir Size", "fileexp.readdir.size",
4633 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4636 { &hf_fileexp_afsNameString_t_principalName_size
,
4637 { "Principal Name Size", "fileexp.principalName_size",
4638 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4641 { &hf_fileexp_afsTaggedPath_tp_length
,
4642 { "Tagged Path Length", "fileexp.afsTaggedPath_length",
4643 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4646 { &hf_fileexp_fstype
,
4647 { "Filetype", "fileexp.fstype",
4648 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4651 { &hf_fileexp_gettime_secondsp
,
4652 { "GetTime secondsp", "fileexp.gettime_secondsp",
4653 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4656 { &hf_fileexp_afsNameString_t_principalName_string
,
4657 { "Principal Name", "fileexp.NameString_principal",
4658 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4661 { &hf_fileexp_fetchdata_pipe_t_size
,
4662 { "FetchData Pipe_t size", "fileexp.fetchdata_pipe_t_size",
4663 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4668 static int *ett
[] = {
4670 &ett_fileexp_afsReturnDesc
,
4671 &ett_fileexp_afsFid
,
4672 &ett_fileexp_afsNetAddr
,
4673 &ett_fileexp_fetchstatus
,
4674 &ett_fileexp_afsflags
,
4675 &ett_fileexp_volsync
,
4676 &ett_fileexp_minvvp
,
4677 &ett_fileexp_afsfidtaggedname
,
4678 &ett_fileexp_afstaggedname
,
4679 &ett_fileexp_afstoken
,
4680 &ett_fileexp_afsstorestatus
,
4681 &ett_fileexp_afsRecordLock
,
4682 &ett_fileexp_afsAcl
,
4683 &ett_fileexp_afsNameString_t
,
4684 &ett_fileexp_afsConnParams
,
4685 &ett_fileexp_afsErrorStatus
,
4686 &ett_fileexp_afsTaggedPath
,
4687 &ett_fileexp_afsNetData
,
4688 &ett_fileexp_afsBulkStat
,
4689 &ett_fileexp_afsuuid
,
4690 &ett_fileexp_offsetp
,
4691 &ett_fileexp_returntokenidp
,
4692 &ett_fileexp_afsbundled_stat
,
4695 proto_fileexp
= proto_register_protocol ("DCE DFS File Exporter", "FILEEXP", "fileexp");
4696 proto_register_field_array (proto_fileexp
, hf
, array_length (hf
));
4697 proto_register_subtree_array (ett
, array_length (ett
));
4701 proto_reg_handoff_fileexp (void)
4704 * Register the protocol as dcerpc
4706 dcerpc_init_uuid (proto_fileexp
, ett_fileexp
, &uuid_fileexp
, ver_fileexp
,
4707 fileexp_dissectors
, hf_fileexp_opnum
);
4711 * Editor modelines - https://www.wireshark.org/tools/modelines.html
4716 * indent-tabs-mode: nil
4719 * ex: set shiftwidth=2 tabstop=8 expandtab:
4720 * :indentSize=2:tabSize=8:noTabs=true: