1 /* packet-dcerpc-fldb.c
3 * Routines for DCE DFS Fileset Location Server Calls
4 * Copyright 2004, 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/flserver/fldb_proc.idl
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, write to the Free Software
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
33 #include <epan/packet.h>
34 #include "packet-dcerpc.h"
35 #include "packet-dcerpc-dce122.h"
38 static int proto_fldb
= -1;
39 static int hf_fldb_opnum
= -1;
41 static gint ett_fldb
= -1;
42 static gint ett_fldb_vldbentry
= -1;
43 static gint ett_fldb_afsnetaddr
= -1;
44 static gint ett_fldb_siteflags
= -1;
45 static gint ett_fldb_afsflags
= -1;
46 static gint ett_fldb_vlconf_cell
= -1;
47 static gint ett_fldb_afsNameString_t
= -1;
51 static e_uuid_t uuid_fldb
=
52 { 0x4d37f2dd, 0xed43, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x2e, 0x00, 0x00,
55 static guint16 ver_fldb
= 4;
58 static int hf_fldb_getentrybyname_rqst_var1
= -1;
59 static int hf_fldb_getentrybyname_rqst_key_size
= -1;
61 static int hf_fldb_releaselock_rqst_fsid_high
= -1;
62 static int hf_fldb_releaselock_rqst_fsid_low
= -1;
63 static int hf_fldb_releaselock_rqst_voltype
= -1;
64 static int hf_fldb_releaselock_rqst_voloper
= -1;
65 static int hf_fldb_setlock_rqst_fsid_high
= -1;
66 static int hf_fldb_setlock_rqst_fsid_low
= -1;
67 static int hf_fldb_setlock_rqst_voltype
= -1;
68 static int hf_fldb_setlock_rqst_voloper
= -1;
70 static int hf_fldb_setlock_resp_st
= -1;
71 static int hf_fldb_setlock_resp_st2
= -1;
73 static int hf_fldb_listentry_rqst_previous_index
= -1;
74 static int hf_fldb_listentry_rqst_var1
= -1;
75 static int hf_fldb_listentry_resp_count
= -1;
76 static int hf_fldb_listentry_resp_next_index
= -1;
78 static int hf_fldb_listentry_resp_key_t
= -1;
79 static int hf_fldb_listentry_resp_key_size
= -1;
80 static int hf_fldb_listentry_resp_key_t2
= -1;
81 static int hf_fldb_listentry_resp_key_size2
= -1;
82 static int hf_fldb_listentry_resp_voltype
= -1;
83 static int hf_fldb_createentry_rqst_key_t
= -1;
84 static int hf_fldb_createentry_rqst_key_size
= -1;
86 static int hf_fldb_deleteentry_rqst_fsid_high
= -1;
87 static int hf_fldb_deleteentry_rqst_fsid_low
= -1;
88 static int hf_fldb_deleteentry_rqst_voltype
= -1;
89 static int hf_fldb_deleteentry_rqst_voloper
= -1;
91 static int hf_fldb_getentrybyid_rqst_fsid_high
= -1;
92 static int hf_fldb_getentrybyid_rqst_fsid_low
= -1;
93 static int hf_fldb_getentrybyid_rqst_voltype
= -1;
94 static int hf_fldb_getentrybyid_rqst_voloper
= -1;
96 static int hf_fldb_replaceentry_rqst_fsid_high
= -1;
97 static int hf_fldb_replaceentry_rqst_fsid_low
= -1;
98 static int hf_fldb_replaceentry_rqst_voltype
= -1;
100 static int hf_fldb_replaceentry_rqst_key_size
= -1;
101 static int hf_fldb_replaceentry_rqst_key_t
= -1;
102 static int hf_fldb_replaceentry_resp_st
= -1;
103 static int hf_fldb_replaceentry_resp_st2
= -1;
106 static int hf_fldb_getentrybyname_resp_volumetype
= -1;
107 static int hf_fldb_getentrybyname_resp_numservers
= -1;
108 static int hf_fldb_getentrybyname_resp_sitecookies
= -1;
109 static int hf_fldb_getentrybyname_resp_sitepartition
= -1;
110 static int hf_fldb_getentrybyname_resp_siteflags
= -1;
111 static int hf_fldb_getentrybyname_resp_sitemaxreplat
= -1;
112 static int hf_fldb_getentrybyname_resp_volid_high
= -1;
113 static int hf_fldb_getentrybyname_resp_volid_low
= -1;
114 static int hf_fldb_getentrybyname_resp_voltype
= -1;
115 static int hf_fldb_getentrybyname_resp_cloneid_high
= -1;
116 static int hf_fldb_getentrybyname_resp_cloneid_low
= -1;
117 static int hf_fldb_getentrybyname_resp_flags
= -1;
118 static int hf_fldb_getentrybyname_resp_maxtotallat
= -1;
119 static int hf_fldb_getentrybyname_resp_hardmaxtotlat
= -1;
120 static int hf_fldb_getentrybyname_resp_minpouncedally
= -1;
121 static int hf_fldb_getentrybyname_resp_defaultmaxreplat
= -1;
122 static int hf_fldb_getentrybyname_resp_reclaimdally
= -1;
123 static int hf_fldb_getentrybyname_resp_whenlocked
= -1;
124 static int hf_fldb_getentrybyname_resp_spare1
= -1;
125 static int hf_fldb_getentrybyname_resp_spare2
= -1;
126 static int hf_fldb_getentrybyname_resp_spare3
= -1;
127 static int hf_fldb_getentrybyname_resp_spare4
= -1;
128 static int hf_fldb_getentrybyname_resp_key_t
= -1;
129 static int hf_fldb_getentrybyname_resp_key_size
= -1;
130 static int hf_fldb_getentrybyname_resp_test
= -1;
131 static int hf_dcerpc_error_status
= -1;
133 static int hf_fldb_vldbentry_volumename
= -1;
134 static int hf_fldb_vldbentry_volumetype
= -1;
135 static int hf_fldb_vldbentry_nservers
= -1;
136 static int hf_fldb_vldbentry_sitepartition
= -1;
137 static int hf_fldb_afsnetaddr_type
= -1;
138 static int hf_fldb_afsnetaddr_data
= -1;
139 static int hf_fldb_siteflags
= -1;
140 static int hf_fldb_vldbentry_sitemaxreplicalatency
= -1;
141 static int hf_fldb_vldbentry_siteprincipal
= -1;
142 static int hf_fldb_vldbentry_siteowner
= -1;
143 static int hf_fldb_vldbentry_siteobjid
= -1;
144 static int hf_fldb_vldbentry_volids_high
= -1;
145 static int hf_fldb_vldbentry_volids_low
= -1;
146 static int hf_fldb_vldbentry_voltypes
= -1;
147 static int hf_fldb_vldbentry_cloneid_high
= -1;
148 static int hf_fldb_vldbentry_cloneid_low
= -1;
149 static int hf_fldb_afsflags_flags
= -1;
150 static int hf_fldb_vldbentry_maxtotallatency
= -1;
151 static int hf_fldb_vldbentry_hardmaxtotallatency
= -1;
152 static int hf_fldb_vldbentry_minimumpouncedally
= -1;
153 static int hf_fldb_vldbentry_defaultmaxreplicalatency
= -1;
154 static int hf_fldb_vldbentry_reclaimdally
= -1;
155 static int hf_fldb_vldbentry_whenlocked
= -1;
156 static int hf_fldb_vldbentry_spare1
= -1;
157 static int hf_fldb_vldbentry_spare2
= -1;
158 static int hf_fldb_vldbentry_spare3
= -1;
159 static int hf_fldb_vldbentry_spare4
= -1;
160 static int hf_fldb_vldbentry_lockername
= -1;
161 static int hf_fldb_vldbentry_charspares
= -1;
162 static int hf_fldb_vlconf_cell_name
= -1;
163 static int hf_fldb_vlconf_cell_cellid_high
= -1;
164 static int hf_fldb_vlconf_cell_cellid_low
= -1;
165 static int hf_fldb_vlconf_cell_numservers
= -1;
166 static int hf_fldb_vlconf_cell_hostname
= -1;
167 static int hf_fldb_vlconf_cell_spare1
= -1;
168 static int hf_fldb_vlconf_cell_spare2
= -1;
169 static int hf_fldb_vlconf_cell_spare3
= -1;
170 static int hf_fldb_vlconf_cell_spare4
= -1;
171 static int hf_fldb_vlconf_cell_spare5
= -1;
172 static int hf_fldb_flagsp
= -1;
173 static int hf_fldb_nextstartp
= -1;
174 static int hf_fldb_afsNameString_t_principalName_string
= -1;
175 static int hf_fldb_afsNameString_t_principalName_size
= -1;
176 /* static int hf_fldb_afsNameString_t_principalName_size2 = -1; */
177 static int hf_fldb_namestring
= -1;
178 static int hf_error_st
= -1;
179 static int hf_fldb_creationquota
= -1;
180 static int hf_fldb_creationuses
= -1;
181 static int hf_fldb_deletedflag
= -1;
182 /* static int hf_fldb_namestring_size = -1; */
183 static int hf_fldb_numwanted
= -1;
184 static int hf_fldb_spare2
= -1;
185 static int hf_fldb_spare3
= -1;
186 static int hf_fldb_spare4
= -1;
187 static int hf_fldb_spare5
= -1;
188 static int hf_fldb_uuid_objid
= -1;
189 static int hf_fldb_uuid_owner
= -1;
190 static int hf_fldb_volid_high
= -1;
191 static int hf_fldb_volid_low
= -1;
192 static int hf_fldb_voltype
= -1;
194 static const guint8
*st_str
;
196 #define AFS_FLAG_RETURNTOKEN 1
197 #define AFS_FLAG_TOKENJUMPQUEUE 2
198 #define AFS_FLAG_SKIPTOKEN 4
199 #define AFS_FLAG_NOOPTIMISM 0x8
200 #define AFS_FLAG_TOKENID 0x10
201 #define AFS_FLAG_RETURNBLOCKER 0x20
202 #define AFS_FLAG_ASYNCGRANT 0x40
203 #define AFS_FLAG_NOREVOKE 0x80
204 #define AFS_FLAG_MOVE_REESTABLISH 0x100
205 #define AFS_FLAG_SERVER_REESTABLISH 0x200
206 #define AFS_FLAG_NO_NEW_EPOCH 0x400
207 #define AFS_FLAG_MOVE_SOURCE_OK 0x800
208 #define AFS_FLAG_SYNC 0x1000
209 #define AFS_FLAG_ZERO 0x2000
210 #define AFS_FLAG_SKIPSTATUS 0x4000
211 #define AFS_FLAG_FORCEREVOCATIONS 0x8000
212 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
213 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
215 #define AFS_FLAG_SEC_SERVICE 0x1
216 #define AFS_FLAG_CONTEXT_NEW_IF 0x2
217 #define AFS_FLAG_CONTEXT_DO_RESET 0x4
218 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x8
219 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
221 #define VLSF_NEWREPSITE 0x01
222 #define VLSF_SPARE1 0x02
223 #define VLSF_SPARE2 0x04 /* used for VLSF_RWVOL in flprocs.c */
224 #define VLSF_SPARE3 0x08 /* used for VLSF_BACKVOL in flprocs.c */
225 #define VLSF_SAMEASPREV 0x10
226 #define VLSF_DEFINED 0x20
227 #define VLSF_PARTIALADDRS 0x40
228 #define VLSF_ZEROIXHERE 0x80000000
230 #define MACRO_ST_CLEAR(name) \
231 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep, hf_error_st, &st); \
232 st_str = val_to_str_ext (st, &dce_error_vals_ext, "%u"); \
234 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
236 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
240 dissect_afsnetaddr (tvbuff_t
* tvb
, int offset
,
241 packet_info
* pinfo
, proto_tree
* parent_tree
,
242 dcerpc_info
*di
, guint8
* drep
)
244 proto_item
*item
= NULL
;
245 proto_tree
*tree
= NULL
;
246 int old_offset
= offset
;
253 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1,
255 tree
= proto_item_add_subtree (item
, ett_fldb_afsnetaddr
);
263 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
,
264 hf_fldb_afsnetaddr_type
, &type
);
268 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u ", type
);
271 for (i
= 0; i
< 14; i
++)
275 dissect_ndr_uint8 (tvb
, offset
, pinfo
, tree
, di
, drep
,
276 hf_fldb_afsnetaddr_data
, &data
);
284 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Port:%u",
289 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " IP:%u.", data
);
292 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
295 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
298 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u", data
);
308 offset
+= 14; /* space left after reading in type for the array. */
313 proto_item_set_len (item
, offset
- old_offset
);
320 dissect_vlconf_cell (tvbuff_t
* tvb
, int offset
,
321 packet_info
* pinfo
, proto_tree
* parent_tree
,
322 dcerpc_info
*di
, guint8
* drep
)
325 proto_item
*item
= NULL
;
326 proto_tree
*tree
= NULL
;
327 int old_offset
= offset
;
328 #define MAXVLCELLCHARS 128
329 #define MAXVLHOSTSPERCELL 64
330 const guint8
*name
, *hostname
;
332 guint32 cellid_high
, cellid_low
, numservers
, spare1
, spare2
, spare3
, spare4
,
337 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1,
339 tree
= proto_item_add_subtree (item
, ett_fldb_vlconf_cell
);
342 /* byte name[MAXVLCELLCHARS]; Cell name */
343 proto_tree_add_item (tree
, hf_fldb_vlconf_cell_name
, tvb
, offset
, 114, ENC_ASCII
|ENC_NA
);
344 name
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, MAXVLCELLCHARS
); /* XXX why 114 above and 128 here?? */
345 offset
+= MAXVLCELLCHARS
; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
346 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Name: %s", name
);
349 /* afsHyper CellID; identifier for that cell */
352 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
353 hf_fldb_vlconf_cell_cellid_high
, &cellid_high
);
355 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
356 hf_fldb_vlconf_cell_cellid_low
, &cellid_low
);
357 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " CellID:%u-%u", cellid_high
,
361 /* unsigned32 numServers; *Num active servers for the cell */
363 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
364 hf_fldb_vlconf_cell_numservers
, &numservers
);
365 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " numServers:%u", numservers
);
367 /* afsNetAddr hostAddr[MAXVLHOSTSPERCELL]; *addresses for cell's servers */
368 for (i
= 0; i
< MAXVLHOSTSPERCELL
; i
++)
370 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
374 /* hostnam hostName[MAXVLHOSTSPERCELL]; *Names for cell's servers* */
376 for (i
= 0; i
< MAXVLHOSTSPERCELL
; i
++)
378 proto_tree_add_item (tree
, hf_fldb_vlconf_cell_hostname
, tvb
, offset
,
379 64, ENC_ASCII
|ENC_NA
);
380 hostname
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, 64);
381 offset
+= 64; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
382 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " hostName: %s", hostname
);
385 /* unsigned32 spare1; */
387 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
388 hf_fldb_vlconf_cell_spare1
, &spare1
);
389 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare1:%u", spare1
);
392 /* unsigned32 spare2; */
394 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
395 hf_fldb_vlconf_cell_spare2
, &spare2
);
396 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare2:%u", spare2
);
398 /* unsigned32 spare3; */
400 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
401 hf_fldb_vlconf_cell_spare3
, &spare3
);
402 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare3:%u", spare3
);
405 /* unsigned32 spare4; */
407 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
408 hf_fldb_vlconf_cell_spare4
, &spare4
);
409 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare4:%u", spare4
);
411 /* unsigned32 spare5; */
413 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
414 hf_fldb_vlconf_cell_spare5
, &spare5
);
415 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare5:%u", spare5
);
418 proto_item_set_len (item
, offset
- old_offset
);
424 dissect_afsNameString_t (tvbuff_t
* tvb
, int offset
,
425 packet_info
* pinfo
, proto_tree
* parent_tree
,
426 dcerpc_info
*di
, guint8
* drep
)
430 typedef [string] byte NameString_t[AFS_NAMEMAX];
433 proto_item
*item
= NULL
;
434 proto_tree
*tree
= NULL
;
435 int old_offset
= offset
;
436 #define AFS_NAMEMAX 256
438 const guint8
*namestring
;
440 if (di
->conformant_run
)
448 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1,
450 tree
= proto_item_add_subtree (item
, ett_fldb_afsNameString_t
);
453 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
454 hf_fldb_afsNameString_t_principalName_size
,
456 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " String_size:%u", string_size
);
457 if (string_size
< AFS_NAMEMAX
)
459 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
460 proto_tree_add_item (tree
,
461 hf_fldb_afsNameString_t_principalName_string
,
462 tvb
, offset
, string_size
, ENC_ASCII
|ENC_NA
);
463 namestring
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, string_size
);
464 offset
+= string_size
;
465 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Principal:%s", namestring
);
469 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
470 " :FIXME!: Invalid string length of %u",
473 proto_item_set_len (item
, offset
- old_offset
);
480 dissect_afsflags (tvbuff_t
* tvb
, int offset
,
481 packet_info
* pinfo
, proto_tree
* parent_tree
,
482 dcerpc_info
*di
, guint8
* drep
)
484 proto_item
*item
= NULL
;
485 proto_tree
*tree
= NULL
;
486 int old_offset
= offset
;
491 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1, "afsFlags:");
492 tree
= proto_item_add_subtree (item
, ett_fldb_afsflags
);
496 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
497 hf_fldb_afsflags_flags
, &afsflags
);
500 col_append_str (pinfo
->cinfo
, COL_INFO
, " afsFlags=");
501 if ((afsflags
& AFS_FLAG_RETURNTOKEN
) == AFS_FLAG_RETURNTOKEN
)
503 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNTOKEN");
505 if ((afsflags
& AFS_FLAG_TOKENJUMPQUEUE
) == AFS_FLAG_TOKENJUMPQUEUE
)
507 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENJUMPQUEUE");
509 if ((afsflags
& AFS_FLAG_SKIPTOKEN
) == AFS_FLAG_SKIPTOKEN
)
511 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPTOKEN");
513 if ((afsflags
& AFS_FLAG_NOOPTIMISM
) == AFS_FLAG_NOOPTIMISM
)
515 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOOPTIMISM");
517 if ((afsflags
& AFS_FLAG_TOKENID
) == AFS_FLAG_TOKENID
)
519 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENID");
521 if ((afsflags
& AFS_FLAG_RETURNBLOCKER
) == AFS_FLAG_RETURNBLOCKER
)
523 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNBLOCKER");
525 if ((afsflags
& AFS_FLAG_ASYNCGRANT
) == AFS_FLAG_ASYNCGRANT
)
527 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ASYNCGRANT");
529 if ((afsflags
& AFS_FLAG_NOREVOKE
) == AFS_FLAG_NOREVOKE
)
531 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOREVOKE");
533 if ((afsflags
& AFS_FLAG_MOVE_REESTABLISH
) == AFS_FLAG_MOVE_REESTABLISH
)
535 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_REESTABLISH");
537 if ((afsflags
& AFS_FLAG_SERVER_REESTABLISH
) ==
538 AFS_FLAG_SERVER_REESTABLISH
)
540 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SERVER_REESTABLISH");
541 if ((afsflags
& AFS_FLAG_NO_NEW_EPOCH
) == AFS_FLAG_NO_NEW_EPOCH
)
543 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NO_NEW_EPOCH");
545 if ((afsflags
& AFS_FLAG_MOVE_SOURCE_OK
) == AFS_FLAG_MOVE_SOURCE_OK
)
547 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_SOURCE_OK");
549 if ((afsflags
& AFS_FLAG_SYNC
) == AFS_FLAG_SYNC
)
551 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SYNC");
553 if ((afsflags
& AFS_FLAG_ZERO
) == AFS_FLAG_ZERO
)
555 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ZERO");
557 if ((afsflags
& AFS_FLAG_SKIPSTATUS
) == AFS_FLAG_SKIPSTATUS
)
559 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPSTATUS");
561 if ((afsflags
& AFS_FLAG_FORCEREVOCATIONS
) ==
562 AFS_FLAG_FORCEREVOCATIONS
)
564 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEREVOCATIONS");
566 if ((afsflags
& AFS_FLAG_FORCEVOLQUIESCE
) ==
567 AFS_FLAG_FORCEVOLQUIESCE
)
569 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEVOLQUIESCE");
571 if ((afsflags
& AFS_FLAG_SEC_SERVICE
) == AFS_FLAG_SEC_SERVICE
)
573 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SEC_SERVICE");
575 if ((afsflags
& AFS_FLAG_CONTEXT_NEW_ACL_IF
) ==
576 AFS_FLAG_CONTEXT_NEW_ACL_IF
)
578 col_append_str (pinfo
->cinfo
, COL_INFO
,
579 ":CONTEXT_NEW_ACL_IF");
585 proto_item_set_len (item
, offset
- old_offset
);
593 dissect_siteflags (tvbuff_t
* tvb
, int offset
,
594 packet_info
* pinfo
, proto_tree
* parent_tree
,
595 dcerpc_info
*di
, guint8
* drep
)
597 proto_item
*item
= NULL
;
598 proto_tree
*tree
= NULL
;
599 int old_offset
= offset
;
604 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1, "SiteFlags:");
605 tree
= proto_item_add_subtree (item
, ett_fldb_siteflags
);
609 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_siteflags
,
614 col_append_str (pinfo
->cinfo
, COL_INFO
, " SiteFlags");
615 if ((siteflags
& VLSF_NEWREPSITE
) == VLSF_NEWREPSITE
)
617 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NEWREPSITE");
619 if ((siteflags
& VLSF_SPARE1
) == VLSF_SPARE1
)
621 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE1");
623 if ((siteflags
& VLSF_SPARE2
) == VLSF_SPARE2
)
625 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE2");
627 if ((siteflags
& VLSF_SPARE3
) == VLSF_SPARE3
)
629 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE3");
631 if ((siteflags
& VLSF_SAMEASPREV
) == VLSF_SAMEASPREV
)
633 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SAMEASPREV");
635 if ((siteflags
& VLSF_DEFINED
) == VLSF_DEFINED
)
637 col_append_str (pinfo
->cinfo
, COL_INFO
, ":DEFINED");
639 if ((siteflags
& VLSF_PARTIALADDRS
) == VLSF_PARTIALADDRS
)
641 col_append_str (pinfo
->cinfo
, COL_INFO
, ":PARTIALADDRS ");
643 if ((siteflags
& VLSF_ZEROIXHERE
) == VLSF_ZEROIXHERE
)
645 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ZEROIXHERE");
650 proto_item_set_len (item
, offset
- old_offset
);
658 dissect_vldbentry (tvbuff_t
* tvb
, int offset
,
659 packet_info
* pinfo
, proto_tree
* parent_tree
,
660 dcerpc_info
*di
, guint8
* drep
)
662 proto_item
*item
= NULL
;
663 proto_tree
*tree
= NULL
;
664 int old_offset
= offset
;
665 const guint8
*volumename
, *siteprincipal
, *charspares
, *lockername
;
666 guint32 volumetype
, nservers
, sitepartition
, sitemaxreplicalatency
,
667 volids_high
, volids_low
, voltypes
, cloneid_high
, cloneid_low
,
668 maxtotallatency
, hardmaxtotallatency
, minimumpouncedally
,
669 defaultmaxreplicalatency
, reclaimdally
, whenlocked
, spare1
, spare2
,
671 e_uuid_t siteowner
, siteobjid
;
673 #define MAXNSERVERS 16
674 #define MAXVOLTYPES 8
675 #define MAXLOCKNAMELEN 64
679 item
= proto_tree_add_text (parent_tree
, tvb
, offset
, -1, "vldbentry:");
680 tree
= proto_item_add_subtree (item
, ett_fldb_vldbentry
);
683 /* byte name[114]; Volume name */
685 proto_tree_add_item (tree
, hf_fldb_vldbentry_volumename
, tvb
, offset
, 114,
687 volumename
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, 114);
688 offset
+= 110; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
689 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Name: %s", volumename
);
691 /* unsigned32 volumeType; */
693 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
694 hf_fldb_vldbentry_volumetype
, &volumetype
);
695 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u", volumetype
);
697 /*unsigned32 nServers; */
699 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
700 hf_fldb_vldbentry_nservers
, &nservers
);
701 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " nServers:%u", nservers
);
703 /* afsNetAddr siteAddr[MAXNSERVERS]; 16 */
704 for (i
= 0; i
< MAXNSERVERS
; i
++)
706 /* col_append_fstr (pinfo->cinfo, COL_INFO, " Site:%u", i); */
708 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
711 /* unsigned32 sitePartition[MAXNSERVERS]; */
712 for (i
= 0; i
< MAXNSERVERS
; i
++)
715 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
716 hf_fldb_vldbentry_sitepartition
, &sitepartition
);
719 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " LFS:%u",
725 /* unsigned32 siteFlags[MAXNSERVERS]; */
726 for (i
= 0; i
< MAXNSERVERS
; i
++)
728 offset
= dissect_siteflags (tvb
, offset
, pinfo
, tree
, di
, drep
);
731 /* unsigned32 sitemaxReplicaLatency[MAXNSERVERS]; */
732 for (i
= 0; i
< MAXNSERVERS
; i
++)
735 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
736 hf_fldb_vldbentry_sitemaxreplicalatency
,
737 &sitemaxreplicalatency
);
738 if (sitemaxreplicalatency
)
740 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " MaxRepLat%d:%u", i
,
741 sitemaxreplicalatency
);
744 /* kerb_princ_name sitePrincipal[MAXNSERVERS]; principal */
745 for (i
= 0; i
< MAXNSERVERS
; i
++)
747 proto_tree_add_item (tree
, hf_fldb_vldbentry_siteprincipal
, tvb
,
748 offset
, 64, ENC_ASCII
|ENC_NA
);
749 siteprincipal
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, 64);
751 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Princ: %s", siteprincipal
);
754 /* afsUUID siteOwner[MAXNSERVERS]; */
756 for (i
= 0; i
< MAXNSERVERS
; i
++)
759 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
760 hf_fldb_vldbentry_siteowner
, &siteowner
);
761 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
762 " SiteOwner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
763 siteowner
.Data1
, siteowner
.Data2
, siteowner
.Data3
,
764 siteowner
.Data4
[0], siteowner
.Data4
[1],
765 siteowner
.Data4
[2], siteowner
.Data4
[3],
766 siteowner
.Data4
[4], siteowner
.Data4
[5],
767 siteowner
.Data4
[6], siteowner
.Data4
[7]);
771 /* afsUUID siteObjID[MAXNSERVERS]; */
772 for (i
= 0; i
< MAXNSERVERS
; i
++)
775 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
776 hf_fldb_vldbentry_siteobjid
, &siteobjid
);
777 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
778 " SiteObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
779 siteobjid
.Data1
, siteobjid
.Data2
, siteobjid
.Data3
,
780 siteobjid
.Data4
[0], siteobjid
.Data4
[1],
781 siteobjid
.Data4
[2], siteobjid
.Data4
[3],
782 siteobjid
.Data4
[4], siteobjid
.Data4
[5],
783 siteobjid
.Data4
[6], siteobjid
.Data4
[7]);
787 /* afsHyper VolIDs[MAXVOLTYPES]; */
788 /* XXX for these hypers, I will skip trying to use non portable guint64, and just read both, and use only low.
789 never seen a case of a volid going anywhere the overflow of the 32 low; */
790 for (i
= 0; i
< MAXVOLTYPES
; i
++)
793 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
794 hf_fldb_vldbentry_volids_high
, &volids_high
);
796 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
797 hf_fldb_vldbentry_volids_low
, &volids_low
);
798 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolIDs%d:%u", i
,
803 /* unsigned32 VolTypes[MAXVOLTYPES]; */
804 for (i
= 0; i
< MAXVOLTYPES
; i
++)
807 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
808 hf_fldb_vldbentry_voltypes
, &voltypes
);
811 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolTypes:%d:%u", i
,
816 /* afsHyper cloneId; Used during cloning */
818 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
819 hf_fldb_vldbentry_cloneid_high
, &cloneid_high
);
821 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
822 hf_fldb_vldbentry_cloneid_low
, &cloneid_low
);
825 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " CloneId:%u", cloneid_low
);
828 /* unsigned32 flags; General flags */
829 offset
= dissect_afsflags (tvb
, offset
, pinfo
, tree
, di
, drep
);
833 /* unsigned32 maxTotalLatency; */
835 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
836 hf_fldb_vldbentry_maxtotallatency
, &maxtotallatency
);
837 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " MaxTotLat:%u",
841 /* unsigned32 hardMaxTotalLatency; */
843 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
844 hf_fldb_vldbentry_hardmaxtotallatency
,
845 &hardmaxtotallatency
);
846 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " HardMaxTotLat:%u",
847 hardmaxtotallatency
);
850 /* unsigned32 minimumPounceDally; */
852 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
853 hf_fldb_vldbentry_minimumpouncedally
,
854 &minimumpouncedally
);
855 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " minPounceDally:%u",
859 /* unsigned32 defaultMaxReplicaLatency; */
861 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
862 hf_fldb_vldbentry_defaultmaxreplicalatency
,
863 &defaultmaxreplicalatency
);
864 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " defaultMaxReplicaLatency:%u",
865 defaultmaxreplicalatency
);
867 /* unsigned32 reclaimDally; */
869 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
870 hf_fldb_vldbentry_reclaimdally
, &reclaimdally
);
871 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " reclaimDally:%u",
875 /* unsigned32 WhenLocked; */
877 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
878 hf_fldb_vldbentry_whenlocked
, &whenlocked
);
879 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " WhenLocked:%u", whenlocked
);
882 /* unsigned32 spare1; */
884 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
885 hf_fldb_vldbentry_spare1
, &spare1
);
886 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare1:%u", spare1
);
888 /* unsigned32 spare2; */
890 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
891 hf_fldb_vldbentry_spare2
, &spare2
);
892 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare2:%u", spare2
);
895 /* unsigned32 spare3; */
897 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
898 hf_fldb_vldbentry_spare3
, &spare3
);
899 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare3:%u", spare3
);
901 /* unsigned32 spare4; */
903 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
904 hf_fldb_vldbentry_spare4
, &spare4
);
905 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare4:%u", spare4
);
908 /* byte LockerName[MAXLOCKNAMELEN]; */
909 proto_tree_add_item (tree
, hf_fldb_vldbentry_lockername
, tvb
, offset
,
910 MAXLOCKNAMELEN
, ENC_ASCII
|ENC_NA
);
911 lockername
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, MAXLOCKNAMELEN
);
912 offset
+= MAXLOCKNAMELEN
; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
913 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " LockerName: %s", lockername
);
915 /* byte charSpares[50]; */
916 proto_tree_add_item (tree
, hf_fldb_vldbentry_charspares
, tvb
, offset
, 50,
918 charspares
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, 50);
919 offset
+= 50; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
920 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " charSpares:%s", charspares
);
924 proto_item_set_len (item
, offset
- old_offset
);
932 fldb_dissect_getcellinfo_resp (tvbuff_t
* tvb
, int offset
,
933 packet_info
* pinfo
, proto_tree
* tree
,
934 dcerpc_info
*di
, guint8
* drep
)
936 if (di
->conformant_run
)
942 /* [out] vlconf_cell *MyCell */
943 offset
= dissect_vlconf_cell (tvb
, offset
, pinfo
, tree
, di
, drep
);
952 fldb_dissect_getentrybyname_rqst (tvbuff_t
* tvb
, int offset
,
953 packet_info
* pinfo
, proto_tree
* tree
,
954 dcerpc_info
*di
, guint8
* drep
)
956 if (di
->conformant_run
)
963 * [in] volumeName volName,
967 offset
= dissect_afsNameString_t (tvb
, offset
, pinfo
, tree
, di
, drep
);
975 fldb_dissect_getentrybyname_resp (tvbuff_t
* tvb
, int offset
,
976 packet_info
* pinfo
, proto_tree
* tree
,
977 dcerpc_info
*di
, guint8
* drep
)
980 [out] vldbentry *entry
982 if (di
->conformant_run
)
987 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
989 MACRO_ST_CLEAR ("GetEntryByName reply");
994 fldb_dissect_getsiteinfo_rqst (tvbuff_t
* tvb
, int offset
,
995 packet_info
* pinfo
, proto_tree
* tree
,
996 dcerpc_info
*di
, guint8
* drep
)
998 if (di
->conformant_run
)
1006 * [in] afsNetAddr *OldAddr,
1010 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
1015 * [in] afsNetAddr *OldAddr,
1024 fldb_dissect_getsiteinfo_resp (tvbuff_t
* tvb
, int offset
,
1025 packet_info
* pinfo
, proto_tree
* tree
,
1026 dcerpc_info
*di
, guint8
* drep
)
1028 const guint8
*namestring
;
1029 e_uuid_t owner
, objid
;
1030 guint32 creationquota
, creationuses
, deletedflag
, spare2
, spare3
, spare4
,
1033 if (di
->conformant_run
)
1039 [out] siteDessiib *FullSiteInfo
1040 afsNetAddr Addr[ADDRSINSITE];
1041 byte KerbPrin[MAXKPRINCIPALLEN] 64;
1044 unsigned32 CreationQuota;
1045 unsigned32 CreationUses;
1046 unsigned32 DeletedFlag;
1053 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
1055 /* handle byte KerbPrin[64]. */
1057 offset
+= 48; /* part of kerbprin before name... */
1059 proto_tree_add_item (tree
, hf_fldb_namestring
, tvb
, offset
, 64, ENC_ASCII
|ENC_NA
);
1060 namestring
= tvb_get_string (wmem_packet_scope(), tvb
, offset
, 64);
1062 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " %s", namestring
);
1064 offset
= dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_uuid_owner
, &owner
);
1065 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1066 " Owner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
1067 owner
.Data1
, owner
.Data2
, owner
.Data3
, owner
.Data4
[0],
1068 owner
.Data4
[1], owner
.Data4
[2], owner
.Data4
[3],
1069 owner
.Data4
[4], owner
.Data4
[5], owner
.Data4
[6],
1073 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_uuid_objid
,
1075 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1076 " ObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
1077 objid
.Data1
, objid
.Data2
, objid
.Data3
, objid
.Data4
[0],
1078 objid
.Data4
[1], objid
.Data4
[2], objid
.Data4
[3],
1079 objid
.Data4
[4], objid
.Data4
[5], objid
.Data4
[6],
1083 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_creationquota
,
1086 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_creationuses
,
1089 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_deletedflag
,
1092 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare2
,
1095 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare3
,
1098 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare4
,
1101 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare5
,
1104 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1105 " CreationQuota:%u CreationUses:%u DeletedFlag:%u Spare2:%u Spare3:%u Spare4:%u Spare5:%u",
1106 creationquota
, creationuses
, deletedflag
, spare2
, spare3
,
1109 MACRO_ST_CLEAR ("GetSiteInfo reply");
1116 fldb_dissect_listentry_rqst (tvbuff_t
* tvb
, int offset
,
1117 packet_info
* pinfo
, proto_tree
* tree
,
1118 dcerpc_info
*di
, guint8
* drep
)
1120 guint32 var1
, previous_index
;
1122 if (di
->conformant_run
)
1129 * [in] unsigned32 previous_index,
1130 * [out] unsigned32 *count,
1131 * [out] unsigned32 *next_index,
1132 * [out] vldbentry *entry
1136 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1137 hf_fldb_listentry_rqst_previous_index
,
1140 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1141 hf_fldb_listentry_rqst_var1
, &var1
);
1144 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :PrevIndex: %u",
1153 fldb_dissect_listentry_resp (tvbuff_t
* tvb
, int offset
,
1154 packet_info
* pinfo
, proto_tree
* tree
,
1155 dcerpc_info
*di
, guint8
* drep
)
1157 guint32 count
, next_index
;
1159 if (di
->conformant_run
)
1166 * [out] unsigned32 *count,
1167 * [out] unsigned32 *next_index,
1168 * [out] vldbentry *entry
1172 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1173 hf_fldb_listentry_resp_count
, &count
);
1175 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1176 hf_fldb_listentry_resp_next_index
, &next_index
);
1177 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1183 fldb_dissect_setlock_rqst (tvbuff_t
* tvb
, int offset
,
1184 packet_info
* pinfo
, proto_tree
* tree
,
1185 dcerpc_info
*di
, guint8
* drep
)
1187 guint32 fsid_high
, fsid_low
, voltype
, voloper
;
1189 if (di
->conformant_run
)
1196 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1197 hf_fldb_setlock_rqst_fsid_high
, &fsid_high
);
1199 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1200 hf_fldb_setlock_rqst_fsid_low
, &fsid_low
);
1202 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1203 hf_fldb_setlock_rqst_voltype
, &voltype
);
1205 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1206 hf_fldb_setlock_rqst_voloper
, &voloper
);
1208 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1209 " :FSID:%u/%u VolType:0x%x VolOper:%u", fsid_high
,
1210 fsid_low
, voltype
, voloper
);
1216 fldb_dissect_setlock_resp (tvbuff_t
* tvb
, int offset
,
1217 packet_info
* pinfo
, proto_tree
* tree
,
1218 dcerpc_info
*di
, guint8
* drep
)
1220 if (di
->conformant_run
)
1225 MACRO_ST_CLEAR ("SetLock reply");
1232 fldb_dissect_deleteentry_resp (tvbuff_t
* tvb
, int offset
,
1233 packet_info
* pinfo
, proto_tree
* tree
,
1234 dcerpc_info
*di
, guint8
* drep
)
1236 if (di
->conformant_run
)
1242 MACRO_ST_CLEAR ("DeleteEntry reply");
1248 fldb_dissect_deleteentry_rqst (tvbuff_t
* tvb
, int offset
,
1249 packet_info
* pinfo
, proto_tree
* tree
,
1250 dcerpc_info
*di
, guint8
* drep
)
1254 [in] afsHyper *Volid,
1255 [in] unsigned32 voltype
1257 guint32 fsid_high
, fsid_low
, voltype
, voloper
;
1259 if (di
->conformant_run
)
1267 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1268 hf_fldb_deleteentry_rqst_fsid_high
, &fsid_high
);
1270 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1271 hf_fldb_deleteentry_rqst_fsid_low
, &fsid_low
);
1273 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1274 hf_fldb_deleteentry_rqst_voltype
, &voltype
);
1276 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1277 hf_fldb_deleteentry_rqst_voloper
, &voloper
);
1279 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :FSID:%u/%u", fsid_high
,
1288 fldb_dissect_createentry_resp (tvbuff_t
* tvb
, int offset
,
1289 packet_info
* pinfo
, proto_tree
* tree
,
1290 dcerpc_info
*di
, guint8
* drep
)
1292 if (di
->conformant_run
)
1297 MACRO_ST_CLEAR ("CreateEntry reply");
1303 fldb_dissect_createentry_rqst (tvbuff_t
* tvb
, int offset
,
1304 packet_info
* pinfo
, proto_tree
* tree
,
1305 dcerpc_info
*di
, guint8
* drep
)
1307 if (di
->conformant_run
)
1313 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1319 fldb_dissect_getentrybyid_rqst (tvbuff_t
* tvb
, int offset
,
1320 packet_info
* pinfo
, proto_tree
* tree
,
1321 dcerpc_info
*di
, guint8
* drep
)
1323 guint32 volid_high
, volid_low
, voltype
;
1325 if (di
->conformant_run
)
1333 [in] afsHyper *Volid,
1334 [in] unsigned32 voltype,
1338 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_volid_high
,
1341 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_volid_low
,
1345 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_voltype
,
1348 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolID:%u/%u VolType:0x%x",
1349 volid_high
, volid_low
, voltype
);
1356 fldb_dissect_getnewvolumeids_rqst (tvbuff_t
* tvb
, int offset
,
1357 packet_info
* pinfo
, proto_tree
* tree
,
1358 dcerpc_info
*di
, guint8
* drep
)
1360 /* [in] unsigned32 numWanted,
1361 [in] afsNetAddr *ServerAddr,
1365 if (di
->conformant_run
)
1371 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_numwanted
,
1373 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " numWanted:%u", numwanted
);
1376 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
1382 fldb_dissect_getentrybyid_resp (tvbuff_t
* tvb
, int offset
,
1383 packet_info
* pinfo
, proto_tree
* tree
,
1384 dcerpc_info
*di
, guint8
* drep
)
1386 if (di
->conformant_run
)
1392 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1397 fldb_dissect_releaselock_resp (tvbuff_t
* tvb
, int offset
,
1398 packet_info
* pinfo
, proto_tree
* tree
,
1399 dcerpc_info
*di
, guint8
* drep
)
1401 if (di
->conformant_run
)
1406 MACRO_ST_CLEAR ("ReleaseLock reply");
1414 fldb_dissect_releaselock_rqst (tvbuff_t
* tvb
, int offset
,
1415 packet_info
* pinfo
, proto_tree
* tree
,
1416 dcerpc_info
*di
, guint8
* drep
)
1418 guint32 fsid_high
, fsid_low
, voltype
, voloper
;
1420 if (di
->conformant_run
)
1427 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1428 hf_fldb_releaselock_rqst_fsid_high
, &fsid_high
);
1430 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1431 hf_fldb_releaselock_rqst_fsid_low
, &fsid_low
);
1433 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1434 hf_fldb_releaselock_rqst_voltype
, &voltype
);
1436 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1437 hf_fldb_releaselock_rqst_voloper
, &voloper
);
1439 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :FSID:%u/%u", fsid_high
,
1446 fldb_dissect_replaceentry_resp (tvbuff_t
* tvb
, int offset
,
1447 packet_info
* pinfo
, proto_tree
* tree
,
1448 dcerpc_info
*di
, guint8
* drep
)
1450 if (di
->conformant_run
)
1456 MACRO_ST_CLEAR ("ReplaceEntry reply");
1462 fldb_dissect_getnextserversbyid_resp (tvbuff_t
* tvb
, int offset
,
1463 packet_info
* pinfo
, proto_tree
* tree
,
1464 dcerpc_info
*di
, guint8
* drep
)
1466 guint32 nextstartp
, flagsp
;
1468 if (di
->conformant_run
)
1477 /* [out] unsigned32 *nextStartP, */
1480 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_nextstartp
,
1482 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " nextStartP:%u", nextstartp
);
1485 /* [out] vldbentry *entry, */
1486 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1489 /* [out] unsigned32 *flagsP */
1492 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_flagsp
,
1495 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " flagsp:%u", flagsp
);
1501 fldb_dissect_replaceentry_rqst (tvbuff_t
* tvb
, int offset
,
1502 packet_info
* pinfo
, proto_tree
* tree
,
1503 dcerpc_info
*di
, guint8
* drep
)
1505 guint32 fsid_high
, fsid_low
, voltype
;
1507 if (di
->conformant_run
)
1513 * [in] afsHyper *Volid,
1514 * [in] unsigned32 voltype,
1515 * [in] vldbentry *newentry,
1516 * [in] unsigned32 ReleaseType
1520 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1521 hf_fldb_replaceentry_rqst_fsid_high
, &fsid_high
);
1523 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1524 hf_fldb_replaceentry_rqst_fsid_low
, &fsid_low
);
1526 dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
,
1527 hf_fldb_replaceentry_rqst_voltype
, &voltype
);
1530 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " FSID:%u/%u Name:", fsid_high
,
1533 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1540 static dcerpc_sub_dissector fldb_dissectors
[] = {
1541 {0, "GetEntryByID", fldb_dissect_getentrybyid_rqst
,
1542 fldb_dissect_getentrybyid_resp
},
1543 {1, "GetEntryByName", fldb_dissect_getentrybyname_rqst
,
1544 fldb_dissect_getentrybyname_resp
},
1545 {2, "Probe", NULL
, NULL
},
1546 {3, "GetCellInfo", NULL
, fldb_dissect_getcellinfo_resp
},
1547 {4, "GetNextServersByID", NULL
, fldb_dissect_getnextserversbyid_resp
},
1548 {5, "GetNextServersByName", NULL
, NULL
},
1549 {6, "GetSiteInfo", fldb_dissect_getsiteinfo_rqst
,
1550 fldb_dissect_getsiteinfo_resp
},
1551 {7, "GetCEntryByID", NULL
, NULL
},
1552 {8, "GetCEntryByName", NULL
, NULL
},
1553 {9, "GetCNextServersByID", NULL
, NULL
},
1554 {10, "GetCNextServersByName", NULL
, NULL
},
1555 {11, "ExpandSiteCookie", NULL
, NULL
},
1556 {12, "GetServerInterfaces", NULL
, NULL
},
1557 {13, "CreateEntry", fldb_dissect_createentry_rqst
,
1558 fldb_dissect_createentry_resp
},
1559 {14, "DeleteEntry", fldb_dissect_deleteentry_rqst
,
1560 fldb_dissect_deleteentry_resp
},
1561 {15, "GetNewVolumeId", NULL
, NULL
},
1562 {16, "ReplaceEntry", fldb_dissect_replaceentry_rqst
,
1563 fldb_dissect_replaceentry_resp
},
1564 {17, "SetLock", fldb_dissect_setlock_rqst
, fldb_dissect_setlock_resp
},
1565 {18, "ReleaseLock", fldb_dissect_releaselock_rqst
,
1566 fldb_dissect_releaselock_resp
},
1567 {19, "ListEntry", fldb_dissect_listentry_rqst
, fldb_dissect_listentry_resp
},
1568 {20, "ListByAttributes", NULL
, NULL
},
1569 {21, "GetStats", NULL
, NULL
},
1570 {22, "AddAddress", NULL
, NULL
},
1571 {23, "RemoveAddress", NULL
, NULL
},
1572 {24, "ChangeAddress", NULL
, NULL
},
1573 {25, "GenerateSites", NULL
, NULL
},
1574 {26, "GetNewVolumeIds", fldb_dissect_getnewvolumeids_rqst
, NULL
},
1575 {27, "CreateServer", NULL
, NULL
},
1576 {28, "AlterServer", NULL
, NULL
},
1577 {0, NULL
, NULL
, NULL
},
1582 proto_register_fldb (void)
1584 static hf_register_info hf
[] = {
1585 {&hf_fldb_releaselock_rqst_fsid_low
,
1586 {"FSID releaselock Low", "fldb.releaselock_rqst_fsid_low", FT_UINT32
,
1587 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1588 {&hf_fldb_releaselock_rqst_voltype
,
1589 {"voltype", "fldb.releaselock_rqst_voltype", FT_UINT32
, BASE_DEC
,
1590 NULL
, 0x0, NULL
, HFILL
}},
1591 {&hf_fldb_releaselock_rqst_voloper
,
1592 {"voloper", "fldb.releaselock_rqst_voloper", FT_UINT32
, BASE_DEC
,
1593 NULL
, 0x0, NULL
, HFILL
}},
1594 {&hf_fldb_setlock_rqst_fsid_high
,
1595 {"FSID setlock Hi", "fldb.setlock_rqst_fsid_high", FT_UINT32
,
1596 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1597 {&hf_fldb_setlock_rqst_fsid_low
,
1598 {"FSID setlock Low", "fldb.setlock_rqst_fsid_low", FT_UINT32
,
1599 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1600 {&hf_fldb_setlock_rqst_voltype
,
1601 {"voltype", "fldb.setlock_rqst_voltype", FT_UINT32
, BASE_DEC
, NULL
,
1603 {&hf_fldb_setlock_rqst_voloper
,
1604 {"voloper", "fldb.setlock_rqst_voloper", FT_UINT32
, BASE_DEC
, NULL
,
1607 {&hf_fldb_setlock_resp_st
,
1608 {"Error", "fldb.setlock_resp_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1610 {&hf_fldb_setlock_resp_st2
,
1611 {"Error", "fldb.setlock_resp_st2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1614 {&hf_fldb_listentry_rqst_previous_index
,
1615 {"Previous Index", "fldb.listentry_rqst_previous_index", FT_UINT32
,
1616 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1617 {&hf_fldb_listentry_rqst_var1
,
1618 {"Var 1", "fldb.listentry_rqst_var1", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1620 {&hf_fldb_listentry_resp_count
,
1621 {"Count", "fldb.listentry_resp_count", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1623 {&hf_fldb_listentry_resp_next_index
,
1624 {"Next Index", "fldb.listentry_resp_next_index", FT_UINT32
, BASE_DEC
,
1625 NULL
, 0x0, NULL
, HFILL
}},
1627 {&hf_fldb_listentry_resp_key_size
,
1628 {"Key Size", "fldb.listentry_resp_key_size", FT_UINT32
, BASE_DEC
,
1629 NULL
, 0x0, NULL
, HFILL
}},
1630 {&hf_fldb_listentry_resp_key_t
,
1631 {"Volume", "fldb.listentry_resp_key_t", FT_STRING
, BASE_NONE
, NULL
,
1633 {&hf_fldb_listentry_resp_voltype
,
1634 {"VolType", "fldb.listentry_resp_voltype", FT_UINT32
, BASE_HEX
, NULL
,
1636 {&hf_fldb_listentry_resp_key_size2
,
1637 {"key_size2", "fldb.listentry_resp_key_size2", FT_UINT32
, BASE_DEC
,
1638 NULL
, 0x0, NULL
, HFILL
}},
1639 {&hf_fldb_listentry_resp_key_t2
,
1640 {"Server", "fldb.listentry_resp_key_t2", FT_STRING
, BASE_NONE
, NULL
,
1642 {&hf_fldb_createentry_rqst_key_t
,
1643 {"Volume", "fldb.createentry_rqst_key_t", FT_STRING
, BASE_NONE
, NULL
,
1645 {&hf_fldb_createentry_rqst_key_size
,
1646 {"Volume Size", "fldb.createentry_rqst_key_size", FT_UINT32
, BASE_DEC
,
1647 NULL
, 0x0, NULL
, HFILL
}},
1649 {&hf_fldb_deleteentry_rqst_fsid_high
,
1650 {"FSID deleteentry Hi", "fldb.deleteentry_rqst_fsid_high", FT_UINT32
,
1651 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1652 {&hf_fldb_deleteentry_rqst_fsid_low
,
1653 {"FSID deleteentry Low", "fldb.deleteentry_rqst_fsid_low", FT_UINT32
,
1654 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1655 {&hf_fldb_deleteentry_rqst_voltype
,
1656 {"voltype", "fldb.deleteentry_rqst_voltype", FT_UINT32
, BASE_DEC
,
1657 NULL
, 0x0, NULL
, HFILL
}},
1658 {&hf_fldb_deleteentry_rqst_voloper
,
1659 {"voloper", "fldb.deleteentry_rqst_voloper", FT_UINT32
, BASE_DEC
,
1660 NULL
, 0x0, NULL
, HFILL
}},
1662 {&hf_fldb_getentrybyid_rqst_fsid_high
,
1663 {"FSID deleteentry Hi", "fldb.getentrybyid_rqst_fsid_high", FT_UINT32
,
1664 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1665 {&hf_fldb_getentrybyid_rqst_fsid_low
,
1666 {"FSID getentrybyid Low", "fldb.getentrybyid_rqst_fsid_low",
1667 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1668 {&hf_fldb_getentrybyid_rqst_voltype
,
1669 {"voltype", "fldb.getentrybyid_rqst_voltype", FT_UINT32
, BASE_DEC
,
1670 NULL
, 0x0, NULL
, HFILL
}},
1671 {&hf_fldb_getentrybyid_rqst_voloper
,
1672 {"voloper", "fldb.getentrybyid_rqst_voloper", FT_UINT32
, BASE_DEC
,
1673 NULL
, 0x0, NULL
, HFILL
}},
1675 {&hf_fldb_replaceentry_rqst_fsid_high
,
1676 {"FSID replaceentry Hi", "fldb.replaceentry_rqst_fsid_high",
1677 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1678 {&hf_fldb_replaceentry_rqst_fsid_low
,
1679 {"FSID replaceentry Low", "fldb.replaceentry_rqst_fsid_low",
1680 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1681 {&hf_fldb_replaceentry_rqst_voltype
,
1682 {"voltype", "fldb.replaceentry_rqst_voltype", FT_UINT32
, BASE_DEC
,
1683 NULL
, 0x0, NULL
, HFILL
}},
1685 {&hf_fldb_replaceentry_rqst_key_t
,
1686 {"Key", "fldb.replaceentry_rqst_key_t", FT_STRING
, BASE_NONE
, NULL
,
1688 {&hf_fldb_replaceentry_rqst_key_size
,
1689 {"Key Size", "fldb.replaceentry_rqst_key_size", FT_UINT32
, BASE_DEC
,
1690 NULL
, 0x0, NULL
, HFILL
}},
1691 {&hf_fldb_replaceentry_resp_st
,
1692 {"Error", "fldb.replaceentry_resp_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1694 {&hf_fldb_replaceentry_resp_st2
,
1695 {"Error", "fldb.replaceentry_resp_st2", FT_UINT32
, BASE_DEC
, NULL
,
1697 {&hf_fldb_getentrybyname_resp_volumetype
,
1698 {"fldb_getentrybyname_resp_volumetype",
1699 "fldb.getentrybyname_resp_volumetype", FT_UINT32
, BASE_DEC
, NULL
,
1701 {&hf_fldb_getentrybyname_resp_numservers
,
1702 {"fldb_getentrybyname_resp_numservers",
1703 "fldb.getentrybyname_resp_numservers", FT_UINT32
, BASE_DEC
, NULL
,
1705 {&hf_fldb_getentrybyname_resp_sitecookies
,
1706 {"fldb_getentrybyname_resp_sitecookies",
1707 "fldb.getentrybyname_resp_sitecookies", FT_UINT32
, BASE_DEC
, NULL
,
1709 {&hf_fldb_getentrybyname_resp_sitepartition
,
1710 {"fldb_getentrybyname_resp_sitepartition",
1711 "fldb.getentrybyname_resp_sitepartition", FT_UINT32
, BASE_DEC
, NULL
,
1713 {&hf_fldb_getentrybyname_resp_siteflags
,
1714 {"fldb_getentrybyname_resp_siteflags",
1715 "fldb.getentrybyname_resp_siteflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1717 {&hf_fldb_getentrybyname_resp_sitemaxreplat
,
1718 {"fldb_getentrybyname_resp_sitemaxreplat",
1719 "fldb.getentrybyname_resp_sitemaxreplat", FT_UINT32
, BASE_DEC
, NULL
,
1721 {&hf_fldb_getentrybyname_resp_volid_high
,
1722 {"fldb_getentrybyname_resp_volid_high",
1723 "fldb.getentrybyname_resp_volid_high", FT_UINT32
, BASE_DEC
, NULL
,
1725 {&hf_fldb_getentrybyname_resp_volid_low
,
1726 {"fldb_getentrybyname_resp_volid_low",
1727 "fldb.getentrybyname_resp_volid_low", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1729 {&hf_fldb_getentrybyname_resp_voltype
,
1730 {"fldb_getentrybyname_resp_voltype",
1731 "fldb.getentrybyname_resp_voltype", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1733 {&hf_fldb_getentrybyname_resp_cloneid_high
,
1734 {"fldb_getentrybyname_resp_cloneid_high",
1735 "fldb.getentrybyname_resp_cloneid_high", FT_UINT32
, BASE_DEC
, NULL
,
1737 {&hf_fldb_getentrybyname_resp_cloneid_low
,
1738 {"fldb_getentrybyname_resp_cloneid_low",
1739 "fldb.getentrybyname_resp_cloneid_low", FT_UINT32
, BASE_DEC
, NULL
,
1741 {&hf_fldb_getentrybyname_resp_flags
,
1742 {"fldb_getentrybyname_resp_flags",
1743 "fldb.getentrybyname_resp_flags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1745 {&hf_fldb_getentrybyname_resp_maxtotallat
,
1746 {"fldb_getentrybyname_resp_maxtotallat",
1747 "fldb.getentrybyname_resp_maxtotallat", FT_UINT32
, BASE_DEC
, NULL
,
1749 {&hf_fldb_getentrybyname_resp_hardmaxtotlat
,
1750 {"fldb_getentrybyname_resp_hardmaxtotlat",
1751 "fldb.getentrybyname_resp_hardmaxtotlat", FT_UINT32
, BASE_DEC
, NULL
,
1753 {&hf_fldb_getentrybyname_resp_minpouncedally
,
1754 {"fldb_getentrybyname_resp_minpouncedally",
1755 "fldb.getentrybyname_resp_minpouncedally", FT_UINT32
, BASE_DEC
, NULL
,
1757 {&hf_fldb_getentrybyname_resp_defaultmaxreplat
,
1758 {"fldb_getentrybyname_resp_defaultmaxreplat",
1759 "fldb.getentrybyname_resp_defaultmaxreplat", FT_UINT32
, BASE_DEC
,
1760 NULL
, 0x0, NULL
, HFILL
}},
1761 {&hf_fldb_getentrybyname_resp_reclaimdally
,
1762 {"fldb_getentrybyname_resp_reclaimdally",
1763 "fldb.getentrybyname_resp_reclaimdally", FT_UINT32
, BASE_DEC
, NULL
,
1765 {&hf_fldb_getentrybyname_resp_whenlocked
,
1766 {"fldb_getentrybyname_resp_whenlocked",
1767 "fldb.getentrybyname_resp_whenlocked", FT_UINT32
, BASE_DEC
, NULL
,
1769 {&hf_fldb_getentrybyname_resp_spare1
,
1770 {"fldb_getentrybyname_resp_spare1",
1771 "fldb.getentrybyname_resp_spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1773 {&hf_fldb_getentrybyname_resp_spare2
,
1774 {"fldb_getentrybyname_resp_spare2",
1775 "fldb.getentrybyname_resp_spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1777 {&hf_fldb_getentrybyname_resp_spare3
,
1778 {"fldb_getentrybyname_resp_spare3",
1779 "fldb.getentrybyname_resp_spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1781 {&hf_fldb_getentrybyname_resp_spare4
,
1782 {"fldb_getentrybyname_resp_spare4",
1783 "fldb.getentrybyname_resp_spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1785 {&hf_fldb_getentrybyname_resp_key_t
,
1786 {"fldb_getentrybyname_resp_key_t",
1787 "fldb.getentrybyname_resp_key_t", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1789 {&hf_fldb_getentrybyname_resp_key_size
,
1790 {"fldb_getentrybyname_resp_key_size",
1791 "fldb.getentrybyname_resp_key_size", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1793 {&hf_fldb_getentrybyname_resp_test
,
1794 {"fldb_getentrybyname_resp_test", "fldb.getentrybyname_resp_test",
1795 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1797 {&hf_fldb_releaselock_rqst_fsid_high
,
1798 {"FSID releaselock Hi", "fldb.releaselock_rqst_fsid_high", FT_UINT32
,
1799 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1801 {"Operation", "fldb.opnum", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
,
1803 {&hf_fldb_vldbentry_volumename
,
1804 {"VolumeName", "fldb.vldbentry.volumename", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1806 {&hf_fldb_vldbentry_volumetype
,
1807 {"VolumeType", "fldb.vldbentry.volumetype", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1809 {&hf_fldb_vldbentry_nservers
,
1810 {"Number of Servers", "fldb.vldbentry.nservers", FT_UINT32
, BASE_DEC
, NULL
,
1812 {&hf_fldb_afsnetaddr_type
,
1813 {"Type", "fldb.afsnetaddr.type", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1814 {&hf_fldb_afsnetaddr_data
,
1815 {"IP Data", "fldb.afsnetaddr.data", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
,
1817 {&hf_fldb_vldbentry_sitepartition
,
1818 {"Site Partition", "fldb.vldbentry.sitepartition", FT_UINT32
, BASE_DEC
, NULL
,
1820 {&hf_fldb_siteflags
,
1821 {"Site Flags", "fldb.vldbentry.siteflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1823 {&hf_fldb_vldbentry_sitemaxreplicalatency
,
1824 {"Site Max Replica Latench", "fldb.vldbentry.sitemaxreplatency", FT_UINT32
,
1825 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1826 {&hf_fldb_vldbentry_siteprincipal
,
1827 {"Principal Name", "fldb.vldbentry.siteprincipal", FT_STRING
, BASE_NONE
, NULL
,
1829 {&hf_fldb_vldbentry_siteowner
,
1830 {"Site Owner", "fldb.vldbentry.siteowner", FT_GUID
, BASE_NONE
, NULL
, 0x0,
1832 {&hf_fldb_vldbentry_siteobjid
,
1833 {"Site Object ID", "fldb.vldbentry.siteobjid", FT_GUID
, BASE_NONE
, NULL
,
1834 0x0, "UUID", HFILL
}},
1835 {&hf_fldb_vldbentry_volids_high
,
1836 {"VolIDs high", "fldb.vldbentry.volidshigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1838 {&hf_fldb_vldbentry_volids_low
,
1839 {"VolIDs low", "fldb.vldbentry.volidslow", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1841 {&hf_fldb_vldbentry_voltypes
,
1842 {"VolTypes", "fldb.vldbentry.voltypes", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1844 {&hf_fldb_vldbentry_cloneid_high
,
1845 {"CloneID High", "fldb.vldbentry.cloneidhigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1847 {&hf_fldb_vldbentry_cloneid_low
,
1848 {"CloneID Low", "fldb.vldbentry.cloneidlow", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1850 {&hf_fldb_afsflags_flags
,
1851 {"AFS Flags", "fldb.vldbentry.afsflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1853 {&hf_fldb_vldbentry_maxtotallatency
,
1854 {"Max Total Latency", "fldb.vldbentry.maxtotallatency", FT_UINT32
, BASE_DEC
,
1855 NULL
, 0x0, NULL
, HFILL
}},
1856 {&hf_fldb_vldbentry_hardmaxtotallatency
,
1857 {"Hard Max Total Latency", "fldb.vldbentry.hardmaxtotallatency", FT_UINT32
,
1858 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1859 {&hf_fldb_vldbentry_minimumpouncedally
,
1860 {"Minimum Pounce Dally", "fldb.vldbentry.minimumpouncedally", FT_UINT32
,
1861 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1862 {&hf_fldb_vldbentry_defaultmaxreplicalatency
,
1863 {"Default Max Replica Latency", "fldb.vldbentry.defaultmaxreplicalatency",
1864 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1865 {&hf_fldb_vldbentry_reclaimdally
,
1866 {"Reclaim Dally", "fldb.vldbentry.reclaimdally", FT_UINT32
, BASE_DEC
, NULL
,
1868 {&hf_fldb_vldbentry_whenlocked
,
1869 {"When Locked", "fldb.vldbentry.whenlocked", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1871 {&hf_fldb_vldbentry_spare1
,
1872 {"Spare 1", "fldb.vldbentry.spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1874 {&hf_fldb_vldbentry_spare2
,
1875 {"Spare 2", "fldb.vldbentry.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1877 {&hf_fldb_vldbentry_spare3
,
1878 {"Spare 3", "fldb.vldbentry.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1880 {&hf_fldb_vldbentry_spare4
,
1881 {"Spare 4", "fldb.vldbentry.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1883 {&hf_fldb_vldbentry_lockername
,
1884 {"Locker Name", "fldb.vldbentry.lockername", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1886 {&hf_fldb_vldbentry_charspares
,
1887 {"Char Spares", "fldb.vldbentry.charspares", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1889 {&hf_fldb_vlconf_cell_name
,
1890 {"Name", "fldb.vlconf.name", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1891 {&hf_fldb_vlconf_cell_cellid_high
,
1892 {"CellID High", "fldb.vlconf.cellidhigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1894 {&hf_fldb_vlconf_cell_cellid_low
,
1895 {"CellID Low", "fldb.vlconf.cellidlow", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1897 {&hf_fldb_vlconf_cell_numservers
,
1898 {"Number of Servers", "fldb.vlconf.numservers", FT_UINT32
, BASE_DEC
, NULL
,
1900 {&hf_fldb_vlconf_cell_hostname
,
1901 {"hostName", "fldb.vlconf.hostname", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
,
1903 {&hf_fldb_vlconf_cell_spare1
,
1904 {"Spare1", "fldb.vlconf.spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1905 {&hf_fldb_vlconf_cell_spare2
,
1906 {"Spare2", "fldb.vlconf.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1907 {&hf_fldb_vlconf_cell_spare3
,
1908 {"Spare3", "fldb.vlconf.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1909 {&hf_fldb_vlconf_cell_spare4
,
1910 {"Spare4", "fldb.vlconf.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1911 {&hf_fldb_vlconf_cell_spare5
,
1912 {"Spare5", "fldb.vlconf.spare5", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1914 {"flagsp", "fldb.flagsp", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1915 {&hf_fldb_nextstartp
,
1916 {"nextstartp", "fldb.nextstartp", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1918 {&hf_fldb_afsNameString_t_principalName_size
,
1919 {"Principal Name Size", "fldb.principalName_size", FT_UINT32
, BASE_DEC
,
1920 NULL
, 0x0, NULL
, HFILL
}},
1922 {&hf_fldb_afsNameString_t_principalName_size2
,
1923 {"Principal Name Size2", "fldb.principalName_size2", FT_UINT32
, BASE_DEC
,
1924 NULL
, 0x0, NULL
, HFILL
}},
1926 {&hf_fldb_afsNameString_t_principalName_string
,
1927 {"Principal Name", "fldb.NameString_principal", FT_STRING
, BASE_NONE
,
1928 NULL
, 0x0, NULL
, HFILL
}},
1929 {&hf_fldb_namestring
,
1930 {"Name string", "fldb.NameString_principal", FT_STRING
, BASE_NONE
, NULL
,
1933 {&hf_dcerpc_error_status
,
1934 {"Error Status", "fldb.NameString_principal", FT_UINT32
, BASE_DEC
, NULL
,
1938 {"Error Status 2", "fldb.error_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1940 {&hf_fldb_creationquota
,
1941 {"creation quota", "fldb.creationquota", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1943 {&hf_fldb_creationuses
,
1944 {"creation uses", "fldb.creationuses", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1946 {&hf_fldb_deletedflag
,
1947 {"deletedflag", "fldb.deletedflag", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1950 {&hf_fldb_getentrybyname_rqst_key_size
,
1951 {"getentrybyname", "fldb.getentrybyname_rqst_key_size", FT_UINT32
,
1952 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1953 {&hf_fldb_getentrybyname_rqst_var1
,
1954 {"getentrybyname var1", "fldb.getentrybyname_rqst_var1", FT_UINT32
,
1955 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1956 {&hf_fldb_namestring_size
,
1957 {"namestring size", "fldb.namestring_size", FT_UINT32
, BASE_DEC
, NULL
,
1960 {&hf_fldb_numwanted
,
1961 {"number wanted", "fldb.numwanted", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1964 {"spare2", "fldb.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1966 {"spare3", "fldb.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1968 {"spare4", "fldb.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1970 {"spare5", "fldb.spare5", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1971 {&hf_fldb_uuid_objid
,
1972 {"objid", "fldb.uuid_objid", FT_GUID
, BASE_NONE
, NULL
, 0x0, "UUID",
1974 {&hf_fldb_uuid_owner
,
1975 {"owner", "fldb.uuid_owner", FT_GUID
, BASE_NONE
, NULL
, 0x0, "UUID",
1977 {&hf_fldb_volid_high
,
1978 {"volid high", "fldb.volid_high", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1980 {&hf_fldb_volid_low
,
1981 {"volid low", "fldb.volid_low", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1984 {"voltype", "fldb.voltype", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1987 static gint
*ett
[] = {
1989 &ett_fldb_vldbentry
,
1990 &ett_fldb_afsnetaddr
,
1991 &ett_fldb_siteflags
,
1993 &ett_fldb_vlconf_cell
,
1994 &ett_fldb_afsNameString_t
,
1997 proto_fldb
= proto_register_protocol ("DCE DFS Fileset Location Server", "FLDB", "fldb");
1998 proto_register_field_array (proto_fldb
, hf
, array_length (hf
));
1999 proto_register_subtree_array (ett
, array_length (ett
));
2003 proto_reg_handoff_fldb (void)
2005 /* Register the protocol as dcerpc */
2006 dcerpc_init_uuid (proto_fldb
, ett_fldb
, &uuid_fldb
, ver_fldb
,
2007 fldb_dissectors
, hf_fldb_opnum
);