Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-dnsserver.c
blobeed51a059e9e5f1200563afd5f7932ea97550a63
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from dnsserver.idl and dnsserver.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-dnsserver.h"
22 void proto_register_dcerpc_dnsserver(void);
23 void proto_reg_handoff_dcerpc_dnsserver(void);
25 /* Ett declarations */
26 static int ett_dcerpc_dnsserver;
27 static int ett_dnsserver_DNS_RPC_VERSION;
28 static int ett_dnsserver_DNS_LOG_LEVELS;
29 static int ett_dnsserver_DNS_RPC_PROTOCOLS;
30 static int ett_dnsserver_DNS_SELECT_FLAGS;
31 static int ett_dnsserver_DNS_RPC_NODE_FLAGS;
32 static int ett_dnsserver_DNS_RPC_NAME;
33 static int ett_dnsserver_DNS_RPC_RECORD_NODE_NAME;
34 static int ett_dnsserver_DNS_RPC_RECORD_UNION;
35 static int ett_dnsserver_DNS_RPC_RECORD;
36 static int ett_dnsserver_DNS_RPC_NODE;
37 static int ett_dnsserver_IP4_ARRAY;
38 static int ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET;
39 static int ett_dnsserver_DNSSRV_RPC_UNION;
40 static int ett_dnsserver_DNS_RECORD_BUFFER;
43 /* Header field declarations */
44 static int hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet;
45 static int hf_dnsserver_DNSSRV_RPC_UNION_dword;
46 static int hf_dnsserver_DNSSRV_RPC_UNION_null;
47 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS;
48 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS;
49 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY;
50 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY;
51 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS;
52 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV;
53 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND;
54 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP;
55 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP;
56 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE;
57 static int hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH;
58 static int hf_dnsserver_DNS_RECORD_BUFFER_rpc_node;
59 static int hf_dnsserver_DNS_RPC_NAME_Name;
60 static int hf_dnsserver_DNS_RPC_NAME_NameLength;
61 static int hf_dnsserver_DNS_RPC_NAME_name;
62 static int hf_dnsserver_DNS_RPC_NODE_Childcount;
63 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON;
64 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT;
65 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA;
66 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE;
67 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY;
68 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL;
69 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR;
70 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE;
71 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL;
72 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY;
73 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION;
74 static int hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT;
75 static int hf_dnsserver_DNS_RPC_NODE_Flags;
76 static int hf_dnsserver_DNS_RPC_NODE_Length;
77 static int hf_dnsserver_DNS_RPC_NODE_NodeName;
78 static int hf_dnsserver_DNS_RPC_NODE_RecordCount;
79 static int hf_dnsserver_DNS_RPC_NODE_records;
80 static int hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC;
81 static int hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE;
82 static int hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP;
83 static int hf_dnsserver_DNS_RPC_RECORD_DataLength;
84 static int hf_dnsserver_DNS_RPC_RECORD_Flags;
85 static int hf_dnsserver_DNS_RPC_RECORD_NODE_NAME_Name;
86 static int hf_dnsserver_DNS_RPC_RECORD_Serial;
87 static int hf_dnsserver_DNS_RPC_RECORD_TimeStamp;
88 static int hf_dnsserver_DNS_RPC_RECORD_TtlSeconds;
89 static int hf_dnsserver_DNS_RPC_RECORD_Type;
90 static int hf_dnsserver_DNS_RPC_RECORD_UNION_NodeName;
91 static int hf_dnsserver_DNS_RPC_RECORD_record;
92 static int hf_dnsserver_DNS_RPC_RECORD_reserved;
93 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit;
94 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured;
95 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate;
96 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate;
97 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones;
98 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries;
99 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BootMethod;
100 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel;
101 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState;
102 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval;
103 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval;
104 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition;
105 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName;
106 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable;
107 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer;
108 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion;
109 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion;
110 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion;
111 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval;
112 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel;
113 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition;
114 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName;
115 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations;
116 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout;
117 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders;
118 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime;
119 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs;
120 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority;
121 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask;
122 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize;
123 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath;
124 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter;
125 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogLevel;
126 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding;
127 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl;
128 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag;
129 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion;
130 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding;
131 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry;
132 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout;
133 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin;
134 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol;
135 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion;
136 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval;
137 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses;
138 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs;
139 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName;
140 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing;
141 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Version;
142 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs;
143 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0;
144 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1;
145 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2;
146 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3;
147 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4;
148 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5;
149 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array;
150 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2;
151 static int hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserved0;
152 static int hf_dnsserver_DNS_RPC_VERSION_OSMajorVersion;
153 static int hf_dnsserver_DNS_RPC_VERSION_OSMinorVersion;
154 static int hf_dnsserver_DNS_RPC_VERSION_ServicePackVersion;
155 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA;
156 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA;
157 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA;
158 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA;
159 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN;
160 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN;
161 static int hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA;
162 static int hf_dnsserver_DnssrvEnumRecords2_buffer_length;
163 static int hf_dnsserver_DnssrvEnumRecords2_client_version;
164 static int hf_dnsserver_DnssrvEnumRecords2_filter_start;
165 static int hf_dnsserver_DnssrvEnumRecords2_filter_stop;
166 static int hf_dnsserver_DnssrvEnumRecords2_node_name;
167 static int hf_dnsserver_DnssrvEnumRecords2_record_buffer;
168 static int hf_dnsserver_DnssrvEnumRecords2_record_buffer_;
169 static int hf_dnsserver_DnssrvEnumRecords2_record_type;
170 static int hf_dnsserver_DnssrvEnumRecords2_select_flag;
171 static int hf_dnsserver_DnssrvEnumRecords2_server_name;
172 static int hf_dnsserver_DnssrvEnumRecords2_setting_flags;
173 static int hf_dnsserver_DnssrvEnumRecords2_start_child;
174 static int hf_dnsserver_DnssrvEnumRecords2_zone;
175 static int hf_dnsserver_DnssrvQuery2_client_version;
176 static int hf_dnsserver_DnssrvQuery2_data;
177 static int hf_dnsserver_DnssrvQuery2_operation;
178 static int hf_dnsserver_DnssrvQuery2_server_name;
179 static int hf_dnsserver_DnssrvQuery2_setting_flags;
180 static int hf_dnsserver_DnssrvQuery2_type_id;
181 static int hf_dnsserver_DnssrvQuery2_zone;
182 static int hf_dnsserver_IP4_ARRAY_AddrArray;
183 static int hf_dnsserver_IP4_ARRAY_AddrCount;
184 static int hf_dnsserver_opnum;
185 static int hf_dnsserver_status;
187 static int proto_dcerpc_dnsserver;
188 /* Version information */
191 static e_guid_t uuid_dcerpc_dnsserver = {
192 0x50abc2a4, 0x574d, 0x40b3,
193 { 0x9d, 0x66, 0xee, 0x4f, 0xd5, 0xfb, 0xa0, 0x76 }
195 static uint16_t ver_dcerpc_dnsserver = 5;
197 const value_string dnsserver_DNS_RPC_CLIENT_VERSION_vals[] = {
198 { DNS_CLIENT_VERSION_W2K, "DNS_CLIENT_VERSION_W2K" },
199 { DNS_CLIENT_VERSION_DOTNET, "DNS_CLIENT_VERSION_DOTNET" },
200 { DNS_CLIENT_VERSION_LONGHORN, "DNS_CLIENT_VERSION_LONGHORN" },
201 { 0, NULL }
203 static int dnsserver_dissect_element_DNS_RPC_VERSION_OSMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
204 static int dnsserver_dissect_element_DNS_RPC_VERSION_OSMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
205 static int dnsserver_dissect_element_DNS_RPC_VERSION_ServicePackVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
206 const value_string dnsserver_DNS_RPC_BOOT_METHOD_vals[] = {
207 { DNS_RPC_BOOT_METHOD_FILE, "DNS_RPC_BOOT_METHOD_FILE" },
208 { DNS_RPC_BOOT_METHOD_REGISTRY, "DNS_RPC_BOOT_METHOD_REGISTRY" },
209 { DNS_RPC_BOOT_METHOD_DIRECTORY, "DNS_RPC_BOOT_METHOD_DIRECTORY" },
210 { 0, NULL }
212 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY_tfs = {
213 "DNS_LOG_LEVEL_QUERY is SET",
214 "DNS_LOG_LEVEL_QUERY is NOT SET",
216 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY_tfs = {
217 "DNS_LOG_LEVEL_NOTIFY is SET",
218 "DNS_LOG_LEVEL_NOTIFY is NOT SET",
220 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE_tfs = {
221 "DNS_LOG_LEVEL_UPDATE is SET",
222 "DNS_LOG_LEVEL_UPDATE is NOT SET",
224 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS_tfs = {
225 "DNS_LOG_LEVEL_QUESTIONS is SET",
226 "DNS_LOG_LEVEL_QUESTIONS is NOT SET",
228 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS_tfs = {
229 "DNS_LOG_LEVEL_ANSWERS is SET",
230 "DNS_LOG_LEVEL_ANSWERS is NOT SET",
232 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND_tfs = {
233 "DNS_LOG_LEVEL_SEND is SET",
234 "DNS_LOG_LEVEL_SEND is NOT SET",
236 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV_tfs = {
237 "DNS_LOG_LEVEL_RECV is SET",
238 "DNS_LOG_LEVEL_RECV is NOT SET",
240 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP_tfs = {
241 "DNS_LOG_LEVEL_UDP is SET",
242 "DNS_LOG_LEVEL_UDP is NOT SET",
244 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP_tfs = {
245 "DNS_LOG_LEVEL_TCP is SET",
246 "DNS_LOG_LEVEL_TCP is NOT SET",
248 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS_tfs = {
249 "DNS_LOG_LEVEL_FULL_PACKETS is SET",
250 "DNS_LOG_LEVEL_FULL_PACKETS is NOT SET",
252 static const true_false_string DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH_tfs = {
253 "DNS_LOG_LEVEL_WRITE_THROUGH is SET",
254 "DNS_LOG_LEVEL_WRITE_THROUGH is NOT SET",
256 static const true_false_string DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP_tfs = {
257 "DNS_RPC_USE_TCPIP is SET",
258 "DNS_RPC_USE_TCPIP is NOT SET",
260 static const true_false_string DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE_tfs = {
261 "DNS_RPC_USE_NAMED_PIPE is SET",
262 "DNS_RPC_USE_NAMED_PIPE is NOT SET",
264 static const true_false_string DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC_tfs = {
265 "DNS_RPC_USE_LPC is SET",
266 "DNS_RPC_USE_LPC is NOT SET",
268 const value_string dnsserver_DNS_NAME_CHECK_FLAGS_vals[] = {
269 { DNS_ALLOW_RFC_NAMES_ONLY, "DNS_ALLOW_RFC_NAMES_ONLY" },
270 { DNS_ALLOW_NONRFC_NAMES, "DNS_ALLOW_NONRFC_NAMES" },
271 { DNS_ALLOW_MULTIBYTE_NAMES, "DNS_ALLOW_MULTIBYTE_NAMES" },
272 { DNS_ALLOW_ALL_NAMES, "DNS_ALLOW_ALL_NAMES" },
273 { 0, NULL }
275 const value_string dnsserver_DNS_RECORD_TYPE_vals[] = {
276 { DNS_TYPE_ZERO, "DNS_TYPE_ZERO" },
277 { DNS_TYPE_A, "DNS_TYPE_A" },
278 { DNS_TYPE_NS, "DNS_TYPE_NS" },
279 { DNS_TYPE_MD, "DNS_TYPE_MD" },
280 { DNS_TYPE_MF, "DNS_TYPE_MF" },
281 { DNS_TYPE_CNAME, "DNS_TYPE_CNAME" },
282 { DNS_TYPE_SOA, "DNS_TYPE_SOA" },
283 { DNS_TYPE_MB, "DNS_TYPE_MB" },
284 { DNS_TYPE_MG, "DNS_TYPE_MG" },
285 { DNS_TYPE_MR, "DNS_TYPE_MR" },
286 { DNS_TYPE_NULL, "DNS_TYPE_NULL" },
287 { DNS_TYPE_WKS, "DNS_TYPE_WKS" },
288 { DNS_TYPE_PTR, "DNS_TYPE_PTR" },
289 { DNS_TYPE_HINFO, "DNS_TYPE_HINFO" },
290 { DNS_TYPE_MINFO, "DNS_TYPE_MINFO" },
291 { DNS_TYPE_MX, "DNS_TYPE_MX" },
292 { DNS_TYPE_TXT, "DNS_TYPE_TXT" },
293 { DNS_TYPE_RP, "DNS_TYPE_RP" },
294 { DNS_TYPE_AFSDB, "DNS_TYPE_AFSDB" },
295 { DNS_TYPE_X25, "DNS_TYPE_X25" },
296 { DNS_TYPE_ISDN, "DNS_TYPE_ISDN" },
297 { DNS_TYPE_RT, "DNS_TYPE_RT" },
298 { DNS_TYPE_NSAP, "DNS_TYPE_NSAP" },
299 { DNS_TYPE_NSAPPTR, "DNS_TYPE_NSAPPTR" },
300 { DNS_TYPE_SIG, "DNS_TYPE_SIG" },
301 { DNS_TYPE_KEY, "DNS_TYPE_KEY" },
302 { DNS_TYPE_PX, "DNS_TYPE_PX" },
303 { DNS_TYPE_GPOS, "DNS_TYPE_GPOS" },
304 { DNS_TYPE_AAAA, "DNS_TYPE_AAAA" },
305 { DNS_TYPE_LOC, "DNS_TYPE_LOC" },
306 { DNS_TYPE_NXT, "DNS_TYPE_NXT" },
307 { DNS_TYPE_SRV, "DNS_TYPE_SRV" },
308 { DNS_TYPE_ATMA, "DNS_TYPE_ATMA" },
309 { DNS_TYPE_NAPTR, "DNS_TYPE_NAPTR" },
310 { DNS_TYPE_DNAME, "DNS_TYPE_DNAME" },
311 { DNS_TYPE_ALL, "DNS_TYPE_ALL" },
312 { DNS_TYPE_WINS, "DNS_TYPE_WINS" },
313 { DNS_TYPE_WINSR, "DNS_TYPE_WINSR" },
314 { 0, NULL }
316 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA_tfs = {
317 "DNS_RPC_VIEW_AUTHORITY_DATA is SET",
318 "DNS_RPC_VIEW_AUTHORITY_DATA is NOT SET",
320 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA_tfs = {
321 "DNS_RPC_VIEW_CACHE_DATA is SET",
322 "DNS_RPC_VIEW_CACHE_DATA is NOT SET",
324 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA_tfs = {
325 "DNS_RPC_VIEW_GLUE_DATA is SET",
326 "DNS_RPC_VIEW_GLUE_DATA is NOT SET",
328 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA_tfs = {
329 "DNS_RPC_VIEW_ROOT_HINT_DATA is SET",
330 "DNS_RPC_VIEW_ROOT_HINT_DATA is NOT SET",
332 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA_tfs = {
333 "DNS_RPC_VIEW_ADDITIONAL_DATA is SET",
334 "DNS_RPC_VIEW_ADDITIONAL_DATA is NOT SET",
336 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN_tfs = {
337 "DNS_RPC_VIEW_NO_CHILDREN is SET",
338 "DNS_RPC_VIEW_NO_CHILDREN is NOT SET",
340 static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN_tfs = {
341 "DNS_RPC_VIEW_ONLY_CHILDREN is SET",
342 "DNS_RPC_VIEW_ONLY_CHILDREN is NOT SET",
344 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA_tfs = {
345 "DNS_RPC_FLAG_CACHE_DATA is SET",
346 "DNS_RPC_FLAG_CACHE_DATA is NOT SET",
348 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT_tfs = {
349 "DNS_RPC_FLAG_ZONE_ROOT is SET",
350 "DNS_RPC_FLAG_ZONE_ROOT is NOT SET",
352 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT_tfs = {
353 "DNS_RPC_FLAG_AUTH_ZONE_ROOT is SET",
354 "DNS_RPC_FLAG_AUTH_ZONE_ROOT is NOT SET",
356 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION_tfs = {
357 "DNS_RPC_FLAG_ZONE_DELEGATION is SET",
358 "DNS_RPC_FLAG_ZONE_DELEGATION is NOT SET",
360 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL_tfs = {
361 "DNS_RPC_FLAG_RECOR_DEFAULT_TTL is SET",
362 "DNS_RPC_FLAG_RECOR_DEFAULT_TTL is NOT SET",
364 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE_tfs = {
365 "DNS_RPC_FLAG_RECORD_TTL_CHANGE is SET",
366 "DNS_RPC_FLAG_RECORD_TTL_CHANGE is NOT SET",
368 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR_tfs = {
369 "DNS_RPC_FLAG_RECORD_CREATE_PTR is SET",
370 "DNS_RPC_FLAG_RECORD_CREATE_PTR is NOT SET",
372 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY_tfs = {
373 "DNS_RPC_FLAG_NODE_STICKY is SET",
374 "DNS_RPC_FLAG_NODE_STICKY is NOT SET",
376 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE_tfs = {
377 "DNS_RPC_FLAG_NODE_COMPLETE is SET",
378 "DNS_RPC_FLAG_NODE_COMPLETE is NOT SET",
380 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL_tfs = {
381 "DNS_RPC_FLAG_OPEN_ACL is SET",
382 "DNS_RPC_FLAG_OPEN_ACL is NOT SET",
384 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON_tfs = {
385 "DNS_RPC_FLAG_AGING_ON is SET",
386 "DNS_RPC_FLAG_AGING_ON is NOT SET",
388 static const true_false_string DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY_tfs = {
389 "DNS_RPC_FLAG_SUPPRESS_NOTIFY is SET",
390 "DNS_RPC_FLAG_SUPPRESS_NOTIFY is NOT SET",
392 static int dnsserver_dissect_element_DNS_RPC_RECORD_NODE_NAME_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
393 static int dnsserver_dissect_element_DNS_RPC_RECORD_UNION_NodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
394 static int dnsserver_dissect_element_DNS_RPC_RECORD_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
395 static int dnsserver_dissect_element_DNS_RPC_RECORD_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *Type);
396 static int dnsserver_dissect_element_DNS_RPC_RECORD_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
397 static int dnsserver_dissect_element_DNS_RPC_RECORD_Serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
398 static int dnsserver_dissect_element_DNS_RPC_RECORD_TtlSeconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
399 static int dnsserver_dissect_element_DNS_RPC_RECORD_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
400 static int dnsserver_dissect_element_DNS_RPC_RECORD_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
401 static int dnsserver_dissect_element_DNS_RPC_RECORD_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t Type);
402 static int dnsserver_dissect_element_DNS_RPC_NODE_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403 static int dnsserver_dissect_element_DNS_RPC_NODE_RecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *RecordCount);
404 static int dnsserver_dissect_element_DNS_RPC_NODE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405 static int dnsserver_dissect_element_DNS_RPC_NODE_Childcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
406 static int dnsserver_dissect_element_DNS_RPC_NODE_NodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
407 static int dnsserver_dissect_element_DNS_RPC_NODE_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *RecordCount);
408 static int dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
409 static int dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga);
410 static int dnsserver_dissect_element_IP4_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
411 static int dnsserver_dissect_conformant_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga);
412 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
413 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
414 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
415 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
416 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
417 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
418 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
419 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
420 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
421 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
422 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
423 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
424 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
425 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
426 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
427 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
428 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
429 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
430 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
431 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
432 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
433 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
434 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
435 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
436 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
437 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
438 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
439 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
440 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
441 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
442 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
443 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
444 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
445 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
446 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
447 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
448 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
449 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
450 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
451 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
452 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
453 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
454 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
455 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
456 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
457 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
458 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
459 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
460 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
461 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
462 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
463 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
464 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
465 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
466 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
467 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
468 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
469 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
470 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
471 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
472 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
473 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
474 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
475 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
476 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
477 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
478 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
485 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
486 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
487 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
488 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
489 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
490 const value_string dnsserver_DnssrvRpcTypeId_vals[] = {
491 { DNSSRV_TYPEID_NULL, "DNSSRV_TYPEID_NULL" },
492 { DNSSRV_TYPEID_DWORD, "DNSSRV_TYPEID_DWORD" },
493 { DNSSRV_TYPEID_LPSTR, "DNSSRV_TYPEID_LPSTR" },
494 { DNSSRV_TYPEID_LPWSTR, "DNSSRV_TYPEID_LPWSTR" },
495 { DNSSRV_TYPEID_IPARRAY, "DNSSRV_TYPEID_IPARRAY" },
496 { DNSSRV_TYPEID_BUFFER, "DNSSRV_TYPEID_BUFFER" },
497 { DNSSRV_TYPEID_SERVER_INFO_W2K, "DNSSRV_TYPEID_SERVER_INFO_W2K" },
498 { DNSSRV_TYPEID_STATS, "DNSSRV_TYPEID_STATS" },
499 { DNSSRV_TYPEID_FORWARDERS_W2K, "DNSSRV_TYPEID_FORWARDERS_W2K" },
500 { DNSSRV_TYPEID_ZONE_W2K, "DNSSRV_TYPEID_ZONE_W2K" },
501 { DNSSRV_TYPEID_ZONE_INFO_W2K, "DNSSRV_TYPEID_ZONE_INFO_W2K" },
502 { DNSSRV_TYPEID_ZONE_SECONDARIES_W2K, "DNSSRV_TYPEID_ZONE_SECONDARIES_W2K" },
503 { DNSSRV_TYPEID_ZONE_DATABASE_W2K, "DNSSRV_TYPEID_ZONE_DATABASE_W2K" },
504 { DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K, "DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K" },
505 { DNSSRV_TYPEID_ZONE_CREATE_W2K, "DNSSRV_TYPEID_ZONE_CREATE_W2K" },
506 { DNSSRV_TYPEID_NAME_AND_PARAM, "DNSSRV_TYPEID_NAME_AND_PARAM" },
507 { DNSSRV_TYPEID_ZONE_LIST_W2K, "DNSSRV_TYPEID_ZONE_LIST_W2K" },
508 { DNSSRV_TYPEID_ZONE_RENAME, "DNSSRV_TYPEID_ZONE_RENAME" },
509 { DNSSRV_TYPEID_ZONE_EXPORT, "DNSSRV_TYPEID_ZONE_EXPORT" },
510 { DNSSRV_TYPEID_SERVER_INFO_DOTNET, "DNSSRV_TYPEID_SERVER_INFO_DOTNET" },
511 { DNSSRV_TYPEID_FORWARDERS_DOTNET, "DNSSRV_TYPEID_FORWARDERS_DOTNET" },
512 { DNSSRV_TYPEID_ZONE, "DNSSRV_TYPEID_ZONE" },
513 { DNSSRV_TYPEID_ZONE_INFO_DOTNET, "DNSSRV_TYPEID_ZONE_INFO_DOTNET" },
514 { DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET, "DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET" },
515 { DNSSRV_TYPEID_ZONE_DATABASE, "DNSSRV_TYPEID_ZONE_DATABASE" },
516 { DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET, "DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET" },
517 { DNSSRV_TYPEID_ZONE_CREATE_DOTNET, "DNSSRV_TYPEID_ZONE_CREATE_DOTNET" },
518 { DNSSRV_TYPEID_ZONE_LIST, "DNSSRV_TYPEID_ZONE_LIST" },
519 { DNSSRV_TYPEID_DP_ENUM, "DNSSRV_TYPEID_DP_ENUM" },
520 { DNSSRV_TYPEID_DP_INFO, "DNSSRV_TYPEID_DP_INFO" },
521 { DNSSRV_TYPEID_DP_LIST, "DNSSRV_TYPEID_DP_LIST" },
522 { DNSSRV_TYPEID_ENLIST_DP, "DNSSRV_TYPEID_ENLIST_DP" },
523 { DNSSRV_TYPEID_ZONE_CHANGE_DP, "DNSSRV_TYPEID_ZONE_CHANGE_DP" },
524 { DNSSRV_TYPEID_ENUM_ZONES_FILTER, "DNSSRV_TYPEID_ENUM_ZONES_FILTER" },
525 { DNSSRV_TYPEID_ADDARRAY, "DNSSRV_TYPEID_ADDARRAY" },
526 { DNSSRV_TYPEID_SERVER_INFO, "DNSSRV_TYPEID_SERVER_INFO" },
527 { DNSSRV_TYPEID_ZONE_INFO, "DNSSRV_TYPEID_ZONE_INFO" },
528 { DNSSRV_TYPEID_FORWARDERS, "DNSSRV_TYPEID_FORWARDERS" },
529 { DNSSRV_TYPEID_ZONE_SECONDARIES, "DNSSRV_TYPEID_ZONE_SECONDARIES" },
530 { DNSSRV_TYPEID_ZONE_TYPE_RESET, "DNSSRV_TYPEID_ZONE_TYPE_RESET" },
531 { DNSSRV_TYPEID_ZONE_CREATE, "DNSSRV_TYPEID_ZONE_CREATE" },
532 { DNSSRV_TYPEID_IP_VALIDATE, "DNSSRV_TYPEID_IP_VALIDATE" },
533 { DNSSRV_TYPEID_AUTOCONFIGURE, "DNSSRV_TYPEID_AUTOCONFIGURE" },
534 { DNSSRV_TYPEID_UTF8_STRING_LIST, "DNSSRV_TYPEID_UTF8_STRING_LIST" },
535 { DNSSRV_TYPEID_UNICODE_STRING_LIST, "DNSSRV_TYPEID_UNICODE_STRING_LIST" },
536 { 0, NULL }
538 static int dnsserver_dissect_element_DNSSRV_RPC_UNION_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
539 static int dnsserver_dissect_element_DNSSRV_RPC_UNION_null_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
540 static int dnsserver_dissect_element_DNSSRV_RPC_UNION_dword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
541 static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
542 static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
543 static int dnsserver_dissect_element_DNS_RECORD_BUFFER_rpc_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
544 static int dnsserver_dissect_element_DnssrvQuery2_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
545 static int dnsserver_dissect_element_DnssrvQuery2_setting_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
546 static int dnsserver_dissect_element_DnssrvQuery2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
547 static int dnsserver_dissect_element_DnssrvQuery2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
548 static int dnsserver_dissect_element_DnssrvQuery2_zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
549 static int dnsserver_dissect_element_DnssrvQuery2_zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
550 static int dnsserver_dissect_element_DnssrvQuery2_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
551 static int dnsserver_dissect_element_DnssrvQuery2_operation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
552 static int dnsserver_dissect_element_DnssrvQuery2_type_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
553 static int dnsserver_dissect_element_DnssrvQuery2_type_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
554 static int dnsserver_dissect_element_DnssrvQuery2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
555 static int dnsserver_dissect_element_DnssrvQuery2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
556 static int dnsserver_dissect_element_DnssrvEnumRecords2_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
557 static int dnsserver_dissect_element_DnssrvEnumRecords2_setting_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
558 static int dnsserver_dissect_element_DnssrvEnumRecords2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
559 static int dnsserver_dissect_element_DnssrvEnumRecords2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
560 static int dnsserver_dissect_element_DnssrvEnumRecords2_zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
561 static int dnsserver_dissect_element_DnssrvEnumRecords2_zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
562 static int dnsserver_dissect_element_DnssrvEnumRecords2_node_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
563 static int dnsserver_dissect_element_DnssrvEnumRecords2_node_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
564 static int dnsserver_dissect_element_DnssrvEnumRecords2_start_child(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
565 static int dnsserver_dissect_element_DnssrvEnumRecords2_start_child_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
566 static int dnsserver_dissect_element_DnssrvEnumRecords2_record_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
567 static int dnsserver_dissect_element_DnssrvEnumRecords2_select_flag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
568 static int dnsserver_dissect_element_DnssrvEnumRecords2_filter_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
569 static int dnsserver_dissect_element_DnssrvEnumRecords2_filter_start_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
570 static int dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
571 static int dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
572 static int dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
573 static int dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
574 static int dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
575 static int dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
576 static int dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
578 dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
580 proto_item *item = NULL;
581 proto_tree *tree = NULL;
582 int old_offset;
583 uint8_t len;
584 if(di->conformant_run){
585 /*just a run to handle conformant arrays, nothing to dissect */
586 return offset;
588 old_offset = offset;
589 if (parent_tree) {
590 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
591 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME);
593 offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NAME_NameLength, &len);
594 proto_tree_add_item(tree, hf_dnsserver_DNS_RPC_NAME_name, tvb,
595 offset, len, ENC_UTF_8);
596 offset += len;
597 proto_item_set_len(item, offset-old_offset);
598 return offset;
600 static int
601 dnsserver_dissect_element_DNS_RPC_NODE_RecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, uint8_t *drep _U_, uint16_t *RecordCount)
603 if(di->conformant_run){
604 /*just a run to handle conformant arrays, nothing to dissect */
605 return offset;
607 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NODE_RecordCount, RecordCount);
608 return offset;
610 static int
611 dnsserver_dissect_element_DNS_RPC_NODE_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, uint8_t *drep _U_, uint16_t *RecordCount)
613 uint16_t i;
614 if(di->conformant_run){
615 /*just a run to handle conformant arrays, nothing to dissect */
616 return offset;
618 for (i=0; i < *RecordCount; i++) {
619 offset = dnsserver_dissect_struct_DNS_RPC_RECORD(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_NODE_records,0);
621 return offset;
625 /* IDL: enum { */
626 /* IDL: DNS_CLIENT_VERSION_W2K=0x00000000, */
627 /* IDL: DNS_CLIENT_VERSION_DOTNET=0x00000006, */
628 /* IDL: DNS_CLIENT_VERSION_LONGHORN=0x00000007, */
629 /* IDL: } */
632 dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
634 uint32_t parameter=0;
635 if (param) {
636 parameter = *param;
638 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
639 if (param) {
640 *param = parameter;
642 return offset;
646 /* IDL: struct { */
647 /* IDL: uint8 OSMajorVersion; */
648 /* IDL: uint8 OSMinorVersion; */
649 /* IDL: uint16 ServicePackVersion; */
650 /* IDL: } */
652 static int
653 dnsserver_dissect_element_DNS_RPC_VERSION_OSMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
655 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_VERSION_OSMajorVersion, 0);
657 return offset;
660 static int
661 dnsserver_dissect_element_DNS_RPC_VERSION_OSMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
663 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_VERSION_OSMinorVersion, 0);
665 return offset;
668 static int
669 dnsserver_dissect_element_DNS_RPC_VERSION_ServicePackVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
671 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_VERSION_ServicePackVersion, 0);
673 return offset;
677 dnsserver_dissect_struct_DNS_RPC_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
679 proto_item *item = NULL;
680 proto_tree *tree = NULL;
681 int old_offset;
683 ALIGN_TO_2_BYTES;
685 old_offset = offset;
687 if (parent_tree) {
688 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
689 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_VERSION);
692 offset = dnsserver_dissect_element_DNS_RPC_VERSION_OSMajorVersion(tvb, offset, pinfo, tree, di, drep);
694 offset = dnsserver_dissect_element_DNS_RPC_VERSION_OSMinorVersion(tvb, offset, pinfo, tree, di, drep);
696 offset = dnsserver_dissect_element_DNS_RPC_VERSION_ServicePackVersion(tvb, offset, pinfo, tree, di, drep);
699 proto_item_set_len(item, offset-old_offset);
702 if (di->call_data->flags & DCERPC_IS_NDR64) {
703 ALIGN_TO_2_BYTES;
706 return offset;
710 /* IDL: enum { */
711 /* IDL: DNS_RPC_BOOT_METHOD_FILE=0x01, */
712 /* IDL: DNS_RPC_BOOT_METHOD_REGISTRY=0x02, */
713 /* IDL: DNS_RPC_BOOT_METHOD_DIRECTORY=0x03, */
714 /* IDL: } */
717 dnsserver_dissect_enum_DNS_RPC_BOOT_METHOD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint8_t *param _U_)
719 uint8_t parameter=0;
720 if (param) {
721 parameter = *param;
723 offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
724 if (param) {
725 *param = parameter;
727 return offset;
731 /* IDL: bitmap { */
732 /* IDL: DNS_LOG_LEVEL_QUERY = 0x00000001 , */
733 /* IDL: DNS_LOG_LEVEL_NOTIFY = 0x00000010 , */
734 /* IDL: DNS_LOG_LEVEL_UPDATE = 0x00000020 , */
735 /* IDL: DNS_LOG_LEVEL_QUESTIONS = 0x00000100 , */
736 /* IDL: DNS_LOG_LEVEL_ANSWERS = 0x00000200 , */
737 /* IDL: DNS_LOG_LEVEL_SEND = 0x00001000 , */
738 /* IDL: DNS_LOG_LEVEL_RECV = 0x00002000 , */
739 /* IDL: DNS_LOG_LEVEL_UDP = 0x00004000 , */
740 /* IDL: DNS_LOG_LEVEL_TCP = 0x00008000 , */
741 /* IDL: DNS_LOG_LEVEL_FULL_PACKETS = 0x01000000 , */
742 /* IDL: DNS_LOG_LEVEL_WRITE_THROUGH = 0x80000000 , */
743 /* IDL: } */
746 dnsserver_dissect_bitmap_DNS_LOG_LEVELS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
748 proto_item *item;
749 static int * const dnsserver_DNS_LOG_LEVELS_fields[] = {
750 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY,
751 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY,
752 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE,
753 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS,
754 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS,
755 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND,
756 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV,
757 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP,
758 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP,
759 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS,
760 &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH,
761 NULL
763 uint32_t flags;
764 ALIGN_TO_4_BYTES;
766 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
767 ett_dnsserver_DNS_LOG_LEVELS, dnsserver_DNS_LOG_LEVELS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
769 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
771 if (!flags)
772 proto_item_append_text(item, ": (No values set)");
774 if (flags & (~0x8100f331)) {
775 flags &= (~0x8100f331);
776 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
779 return offset;
783 /* IDL: bitmap { */
784 /* IDL: DNS_RPC_USE_TCPIP = 0x00000001 , */
785 /* IDL: DNS_RPC_USE_NAMED_PIPE = 0x00000002 , */
786 /* IDL: DNS_RPC_USE_LPC = 0x00000004 , */
787 /* IDL: } */
790 dnsserver_dissect_bitmap_DNS_RPC_PROTOCOLS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
792 proto_item *item;
793 static int * const dnsserver_DNS_RPC_PROTOCOLS_fields[] = {
794 &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP,
795 &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE,
796 &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC,
797 NULL
799 uint32_t flags;
800 ALIGN_TO_4_BYTES;
802 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
803 ett_dnsserver_DNS_RPC_PROTOCOLS, dnsserver_DNS_RPC_PROTOCOLS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
805 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
807 if (!flags)
808 proto_item_append_text(item, ": (No values set)");
810 if (flags & (~0x00000007)) {
811 flags &= (~0x00000007);
812 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
815 return offset;
819 /* IDL: enum { */
820 /* IDL: DNS_ALLOW_RFC_NAMES_ONLY=0x00000000, */
821 /* IDL: DNS_ALLOW_NONRFC_NAMES=0x00000001, */
822 /* IDL: DNS_ALLOW_MULTIBYTE_NAMES=0x00000002, */
823 /* IDL: DNS_ALLOW_ALL_NAMES=0x00000003, */
824 /* IDL: } */
827 dnsserver_dissect_enum_DNS_NAME_CHECK_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
829 uint32_t parameter=0;
830 if (param) {
831 parameter = *param;
833 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
834 if (param) {
835 *param = parameter;
837 return offset;
841 /* IDL: enum { */
842 /* IDL: DNS_TYPE_ZERO=0x0000, */
843 /* IDL: DNS_TYPE_A=0x0001, */
844 /* IDL: DNS_TYPE_NS=0x0002, */
845 /* IDL: DNS_TYPE_MD=0x0003, */
846 /* IDL: DNS_TYPE_MF=0x0004, */
847 /* IDL: DNS_TYPE_CNAME=0x0005, */
848 /* IDL: DNS_TYPE_SOA=0x0006, */
849 /* IDL: DNS_TYPE_MB=0x0007, */
850 /* IDL: DNS_TYPE_MG=0x0008, */
851 /* IDL: DNS_TYPE_MR=0x0009, */
852 /* IDL: DNS_TYPE_NULL=0x000a, */
853 /* IDL: DNS_TYPE_WKS=0x000b, */
854 /* IDL: DNS_TYPE_PTR=0x000c, */
855 /* IDL: DNS_TYPE_HINFO=0x000d, */
856 /* IDL: DNS_TYPE_MINFO=0x000e, */
857 /* IDL: DNS_TYPE_MX=0x000f, */
858 /* IDL: DNS_TYPE_TXT=0x0010, */
859 /* IDL: DNS_TYPE_RP=0x0011, */
860 /* IDL: DNS_TYPE_AFSDB=0x0012, */
861 /* IDL: DNS_TYPE_X25=0x0013, */
862 /* IDL: DNS_TYPE_ISDN=0x0014, */
863 /* IDL: DNS_TYPE_RT=0x0015, */
864 /* IDL: DNS_TYPE_NSAP=0x0016, */
865 /* IDL: DNS_TYPE_NSAPPTR=0x0017, */
866 /* IDL: DNS_TYPE_SIG=0x0018, */
867 /* IDL: DNS_TYPE_KEY=0x0019, */
868 /* IDL: DNS_TYPE_PX=0x001a, */
869 /* IDL: DNS_TYPE_GPOS=0x001b, */
870 /* IDL: DNS_TYPE_AAAA=0x001c, */
871 /* IDL: DNS_TYPE_LOC=0x001d, */
872 /* IDL: DNS_TYPE_NXT=0x001e, */
873 /* IDL: DNS_TYPE_SRV=0x0021, */
874 /* IDL: DNS_TYPE_ATMA=0x0022, */
875 /* IDL: DNS_TYPE_NAPTR=0x0023, */
876 /* IDL: DNS_TYPE_DNAME=0x0024, */
877 /* IDL: DNS_TYPE_ALL=0x00ff, */
878 /* IDL: DNS_TYPE_WINS=0xff01, */
879 /* IDL: DNS_TYPE_WINSR=0xff02, */
880 /* IDL: } */
883 dnsserver_dissect_enum_DNS_RECORD_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint16_t *param _U_)
885 uint16_t parameter=0;
886 if (param) {
887 parameter = *param;
889 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
890 if (param) {
891 *param = parameter;
893 return offset;
897 /* IDL: bitmap { */
898 /* IDL: DNS_RPC_VIEW_AUTHORITY_DATA = 0x00000001 , */
899 /* IDL: DNS_RPC_VIEW_CACHE_DATA = 0x00000002 , */
900 /* IDL: DNS_RPC_VIEW_GLUE_DATA = 0x00000004 , */
901 /* IDL: DNS_RPC_VIEW_ROOT_HINT_DATA = 0x00000008 , */
902 /* IDL: DNS_RPC_VIEW_ADDITIONAL_DATA = 0x00000010 , */
903 /* IDL: DNS_RPC_VIEW_NO_CHILDREN = 0x00010000 , */
904 /* IDL: DNS_RPC_VIEW_ONLY_CHILDREN = 0x00020000 , */
905 /* IDL: } */
908 dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
910 proto_item *item;
911 static int * const dnsserver_DNS_SELECT_FLAGS_fields[] = {
912 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA,
913 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA,
914 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA,
915 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA,
916 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA,
917 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN,
918 &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN,
919 NULL
921 uint32_t flags;
922 ALIGN_TO_4_BYTES;
924 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
925 ett_dnsserver_DNS_SELECT_FLAGS, dnsserver_DNS_SELECT_FLAGS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
927 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
929 if (!flags)
930 proto_item_append_text(item, ": (No values set)");
932 if (flags & (~0x0003001f)) {
933 flags &= (~0x0003001f);
934 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
937 return offset;
941 /* IDL: bitmap { */
942 /* IDL: DNS_RPC_FLAG_CACHE_DATA = 0x80000000 , */
943 /* IDL: DNS_RPC_FLAG_ZONE_ROOT = 0x40000000 , */
944 /* IDL: DNS_RPC_FLAG_AUTH_ZONE_ROOT = 0x20000000 , */
945 /* IDL: DNS_RPC_FLAG_ZONE_DELEGATION = 0x10000000 , */
946 /* IDL: DNS_RPC_FLAG_RECOR_DEFAULT_TTL = 0x08000000 , */
947 /* IDL: DNS_RPC_FLAG_RECORD_TTL_CHANGE = 0x04000000 , */
948 /* IDL: DNS_RPC_FLAG_RECORD_CREATE_PTR = 0x02000000 , */
949 /* IDL: DNS_RPC_FLAG_NODE_STICKY = 0x01000000 , */
950 /* IDL: DNS_RPC_FLAG_NODE_COMPLETE = 0x00800000 , */
951 /* IDL: DNS_RPC_FLAG_OPEN_ACL = 0x00040000 , */
952 /* IDL: DNS_RPC_FLAG_AGING_ON = 0x00020000 , */
953 /* IDL: DNS_RPC_FLAG_SUPPRESS_NOTIFY = 0x00010000 , */
954 /* IDL: } */
957 dnsserver_dissect_bitmap_DNS_RPC_NODE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
959 proto_item *item;
960 static int * const dnsserver_DNS_RPC_NODE_FLAGS_fields[] = {
961 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA,
962 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT,
963 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT,
964 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION,
965 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL,
966 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE,
967 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR,
968 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY,
969 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE,
970 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL,
971 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON,
972 &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY,
973 NULL
975 uint32_t flags;
976 ALIGN_TO_4_BYTES;
978 item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
979 ett_dnsserver_DNS_RPC_NODE_FLAGS, dnsserver_DNS_RPC_NODE_FLAGS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
981 offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
983 if (!flags)
984 proto_item_append_text(item, ": (No values set)");
986 if (flags & (~0xff870000)) {
987 flags &= (~0xff870000);
988 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
991 return offset;
995 /* IDL: struct { */
996 /* IDL: uint8 NameLength; */
997 /* IDL: uint8 Name[NameLength]; */
998 /* IDL: } */
1001 /* IDL: struct { */
1002 /* IDL: DNS_RPC_NAME Name; */
1003 /* IDL: } */
1005 static int
1006 dnsserver_dissect_element_DNS_RPC_RECORD_NODE_NAME_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1008 offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_RECORD_NODE_NAME_Name,0);
1010 return offset;
1014 dnsserver_dissect_struct_DNS_RPC_RECORD_NODE_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1016 proto_item *item = NULL;
1017 proto_tree *tree = NULL;
1018 int old_offset;
1020 old_offset = offset;
1022 if (parent_tree) {
1023 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1024 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_NODE_NAME);
1027 offset = dnsserver_dissect_element_DNS_RPC_RECORD_NODE_NAME_Name(tvb, offset, pinfo, tree, di, drep);
1030 proto_item_set_len(item, offset-old_offset);
1033 return offset;
1037 /* IDL: union { */
1038 /* IDL: [case(2)] [case(2)] DNS_RPC_RECORD_NODE_NAME NodeName; */
1039 /* IDL: } */
1041 static int
1042 dnsserver_dissect_element_DNS_RPC_RECORD_UNION_NodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1044 offset = dnsserver_dissect_struct_DNS_RPC_RECORD_NODE_NAME(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_RECORD_UNION_NodeName,0);
1046 return offset;
1049 static int
1050 dnsserver_dissect_DNS_RPC_RECORD_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1052 proto_item *item = NULL;
1053 proto_tree *tree = NULL;
1054 int old_offset;
1055 uint32_t level;
1057 old_offset = offset;
1058 if (parent_tree) {
1059 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_dnsserver_DNS_RPC_RECORD_UNION, &item, "DNS_RPC_RECORD_UNION");
1062 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
1063 switch(level) {
1064 case 2:
1065 offset = dnsserver_dissect_element_DNS_RPC_RECORD_UNION_NodeName(tvb, offset, pinfo, tree, di, drep);
1066 break;
1068 proto_item_set_len(item, offset-old_offset);
1071 return offset;
1074 /* IDL: struct { */
1075 /* IDL: uint16 DataLength; */
1076 /* IDL: DNS_RECORD_TYPE Type; */
1077 /* IDL: uint32 Flags; */
1078 /* IDL: uint32 Serial; */
1079 /* IDL: uint32 TtlSeconds; */
1080 /* IDL: uint32 TimeStamp; */
1081 /* IDL: uint32 reserved; */
1082 /* IDL: [switch_is(Type)] DNS_RPC_RECORD_UNION record; */
1083 /* IDL: } */
1085 static int
1086 dnsserver_dissect_element_DNS_RPC_RECORD_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1088 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_DataLength, 0);
1090 return offset;
1093 static int
1094 dnsserver_dissect_element_DNS_RPC_RECORD_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *Type)
1096 offset = dnsserver_dissect_enum_DNS_RECORD_TYPE(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_Type, Type);
1098 return offset;
1101 static int
1102 dnsserver_dissect_element_DNS_RPC_RECORD_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1104 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_Flags, 0);
1106 return offset;
1109 static int
1110 dnsserver_dissect_element_DNS_RPC_RECORD_Serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1112 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_Serial, 0);
1114 return offset;
1117 static int
1118 dnsserver_dissect_element_DNS_RPC_RECORD_TtlSeconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1120 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_TtlSeconds, 0);
1122 return offset;
1125 static int
1126 dnsserver_dissect_element_DNS_RPC_RECORD_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1128 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_TimeStamp, 0);
1130 return offset;
1133 static int
1134 dnsserver_dissect_element_DNS_RPC_RECORD_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1136 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_reserved, 0);
1138 return offset;
1141 static int
1142 dnsserver_dissect_element_DNS_RPC_RECORD_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t Type)
1144 offset = dnsserver_dissect_DNS_RPC_RECORD_UNION(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_RECORD_record, Type);
1146 return offset;
1150 dnsserver_dissect_struct_DNS_RPC_RECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1152 uint16_t Type = 0;
1153 proto_item *item = NULL;
1154 proto_tree *tree = NULL;
1155 int old_offset;
1157 ALIGN_TO_4_BYTES;
1159 old_offset = offset;
1161 if (parent_tree) {
1162 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1163 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD);
1166 offset = dnsserver_dissect_element_DNS_RPC_RECORD_DataLength(tvb, offset, pinfo, tree, di, drep);
1168 offset = dnsserver_dissect_element_DNS_RPC_RECORD_Type(tvb, offset, pinfo, tree, di, drep, &Type);
1170 offset = dnsserver_dissect_element_DNS_RPC_RECORD_Flags(tvb, offset, pinfo, tree, di, drep);
1172 offset = dnsserver_dissect_element_DNS_RPC_RECORD_Serial(tvb, offset, pinfo, tree, di, drep);
1174 offset = dnsserver_dissect_element_DNS_RPC_RECORD_TtlSeconds(tvb, offset, pinfo, tree, di, drep);
1176 offset = dnsserver_dissect_element_DNS_RPC_RECORD_TimeStamp(tvb, offset, pinfo, tree, di, drep);
1178 offset = dnsserver_dissect_element_DNS_RPC_RECORD_reserved(tvb, offset, pinfo, tree, di, drep);
1180 offset = dnsserver_dissect_element_DNS_RPC_RECORD_record(tvb, offset, pinfo, tree, di, drep, Type);
1183 proto_item_set_len(item, offset-old_offset);
1186 if (di->call_data->flags & DCERPC_IS_NDR64) {
1187 ALIGN_TO_4_BYTES;
1190 return offset;
1194 /* IDL: struct { */
1195 /* IDL: uint16 Length; */
1196 /* IDL: uint16 RecordCount; */
1197 /* IDL: DNS_RPC_NODE_FLAGS Flags; */
1198 /* IDL: uint32 Childcount; */
1199 /* IDL: DNS_RPC_NAME NodeName; */
1200 /* IDL: DNS_RPC_RECORD records[RecordCount]; */
1201 /* IDL: } */
1203 static int
1204 dnsserver_dissect_element_DNS_RPC_NODE_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1206 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NODE_Length, 0);
1208 return offset;
1211 static int
1212 dnsserver_dissect_element_DNS_RPC_NODE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1214 offset = dnsserver_dissect_bitmap_DNS_RPC_NODE_FLAGS(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NODE_Flags, 0);
1216 return offset;
1219 static int
1220 dnsserver_dissect_element_DNS_RPC_NODE_Childcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1222 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NODE_Childcount, 0);
1224 return offset;
1227 static int
1228 dnsserver_dissect_element_DNS_RPC_NODE_NodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1230 offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_NODE_NodeName,0);
1232 return offset;
1236 dnsserver_dissect_struct_DNS_RPC_NODE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1238 uint16_t RecordCount = 0;
1239 proto_item *item = NULL;
1240 proto_tree *tree = NULL;
1241 int old_offset;
1243 ALIGN_TO_4_BYTES;
1245 old_offset = offset;
1247 if (parent_tree) {
1248 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1249 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NODE);
1252 offset = dnsserver_dissect_element_DNS_RPC_NODE_Length(tvb, offset, pinfo, tree, di, drep);
1254 offset = dnsserver_dissect_element_DNS_RPC_NODE_RecordCount(tvb, offset, pinfo, tree, di, drep, &RecordCount);
1256 offset = dnsserver_dissect_element_DNS_RPC_NODE_Flags(tvb, offset, pinfo, tree, di, drep);
1258 offset = dnsserver_dissect_element_DNS_RPC_NODE_Childcount(tvb, offset, pinfo, tree, di, drep);
1260 offset = dnsserver_dissect_element_DNS_RPC_NODE_NodeName(tvb, offset, pinfo, tree, di, drep);
1262 offset = dnsserver_dissect_element_DNS_RPC_NODE_records(tvb, offset, pinfo, tree, di, drep, &RecordCount);
1265 proto_item_set_len(item, offset-old_offset);
1268 if (di->call_data->flags & DCERPC_IS_NDR64) {
1269 ALIGN_TO_4_BYTES;
1272 return offset;
1276 /* IDL: struct { */
1277 /* IDL: uint32 AddrCount; */
1278 /* IDL: [size_is(AddrCount)] uint32 AddrArray[*]; */
1279 /* IDL: } */
1281 static int
1282 dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1284 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_IP4_ARRAY_AddrCount, 0);
1286 return offset;
1289 static int
1290 dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga)
1293 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, nga, dnsserver_dissect_element_IP4_ARRAY_AddrArray_);
1295 return offset;
1298 static int
1299 dnsserver_dissect_element_IP4_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1301 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_IP4_ARRAY_AddrArray, 0);
1303 return offset;
1306 static int
1307 dnsserver_dissect_conformant_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga)
1309 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, nga);
1311 return offset;
1315 dnsserver_dissect_struct_IP4_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1317 struct ndr_generic_array nga_AddrArray = { .is_conformant = false, };
1318 proto_item *item = NULL;
1319 proto_tree *tree = NULL;
1320 int old_offset;
1322 offset = dnsserver_dissect_conformant_IP4_ARRAY_AddrArray(tvb, offset, pinfo, parent_tree, di, drep, &nga_AddrArray);
1324 ALIGN_TO_4_BYTES;
1326 old_offset = offset;
1328 if (parent_tree) {
1329 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1330 tree = proto_item_add_subtree(item, ett_dnsserver_IP4_ARRAY);
1333 offset = dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvb, offset, pinfo, tree, di, drep);
1335 offset = dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvb, offset, pinfo, tree, di, drep, &nga_AddrArray);
1338 proto_item_set_len(item, offset-old_offset);
1341 return offset;
1345 /* IDL: struct { */
1346 /* IDL: uint32 RpcStructureVersion; */
1347 /* IDL: uint32 reserved0; */
1348 /* IDL: DNS_RPC_VERSION Version; */
1349 /* IDL: DNS_RPC_BOOT_METHOD BootMethod; */
1350 /* IDL: uint8 AdminConfigured; */
1351 /* IDL: uint8 AllowUpdate; */
1352 /* IDL: uint8 DsAvailable; */
1353 /* IDL: [charset(UTF8)] [unique(1)] uint8 *ServerName; */
1354 /* IDL: [charset(UTF16)] [unique(1)] uint16 *DsContainer; */
1355 /* IDL: [unique(1)] IP4_ARRAY *ServerAddrs; */
1356 /* IDL: [unique(1)] IP4_ARRAY *ListenAddrs; */
1357 /* IDL: [unique(1)] IP4_ARRAY *Forwarders; */
1358 /* IDL: [unique(1)] IP4_ARRAY *LogFilter; */
1359 /* IDL: [charset(UTF16)] [unique(1)] uint16 *LogFilePath; */
1360 /* IDL: [charset(UTF8)] [unique(1)] uint8 *DomainName; */
1361 /* IDL: [charset(UTF8)] [unique(1)] uint8 *ForestName; */
1362 /* IDL: [charset(UTF8)] [unique(1)] uint8 *DomainDirectoryPartition; */
1363 /* IDL: [charset(UTF8)] [unique(1)] uint8 *ForestDirectoryPartition; */
1364 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension0; */
1365 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension1; */
1366 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension2; */
1367 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension3; */
1368 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension4; */
1369 /* IDL: [charset(UTF8)] [unique(1)] uint8 *extension5; */
1370 /* IDL: DNS_LOG_LEVELS LogLevel; */
1371 /* IDL: uint32 DebugLevel; */
1372 /* IDL: uint32 ForwardTimeout; */
1373 /* IDL: DNS_RPC_PROTOCOLS RpcProtocol; */
1374 /* IDL: DNS_NAME_CHECK_FLAGS NameCheckFlag; */
1375 /* IDL: uint32 AddressAnswerLimit; */
1376 /* IDL: uint32 RecursionRetry; */
1377 /* IDL: uint32 RecursionTimeout; */
1378 /* IDL: uint32 MaxCacheTtl; */
1379 /* IDL: uint32 DsPollingInterval; */
1380 /* IDL: uint32 LocalNetPriorityNetmask; */
1381 /* IDL: uint32 ScavengingInterval; */
1382 /* IDL: uint32 DefaultRefreshInterval; */
1383 /* IDL: uint32 DefaultNoRefreshInterval; */
1384 /* IDL: uint32 LastScavengeTime; */
1385 /* IDL: uint32 EventLogLevel; */
1386 /* IDL: uint32 LogFileMaxSize; */
1387 /* IDL: uint32 DsForestVersion; */
1388 /* IDL: uint32 DsDomainVersion; */
1389 /* IDL: uint32 DsDsaVersion; */
1390 /* IDL: uint32 reserve_array[4]; */
1391 /* IDL: uint8 AutoReverseZones; */
1392 /* IDL: uint8 AutoCacheUpdate; */
1393 /* IDL: uint8 RecurseAfterForwarding; */
1394 /* IDL: uint8 ForwardDelegations; */
1395 /* IDL: uint8 NoRecursion; */
1396 /* IDL: uint8 SecureResponses; */
1397 /* IDL: uint8 RoundRobin; */
1398 /* IDL: uint8 LocalNetPriority; */
1399 /* IDL: uint8 BindSecondaries; */
1400 /* IDL: uint8 WriteAuthorityNs; */
1401 /* IDL: uint8 StrictFileParsing; */
1402 /* IDL: uint8 LooseWildcarding; */
1403 /* IDL: uint8 DefaultAgingState; */
1404 /* IDL: uint8 reserve_array2[15]; */
1405 /* IDL: } */
1407 static int
1408 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1410 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion, 0);
1412 return offset;
1415 static int
1416 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1418 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserved0, 0);
1420 return offset;
1423 static int
1424 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1426 offset = dnsserver_dissect_struct_DNS_RPC_VERSION(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Version,0);
1428 return offset;
1431 static int
1432 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1434 offset = dnsserver_dissect_enum_DNS_RPC_BOOT_METHOD(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BootMethod, 0);
1436 return offset;
1439 static int
1440 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1442 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured, 0);
1444 return offset;
1447 static int
1448 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1450 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate, 0);
1452 return offset;
1455 static int
1456 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1458 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable, 0);
1460 return offset;
1463 static int
1464 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1466 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName_, NDR_POINTER_UNIQUE, "Pointer to ServerName (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName);
1468 return offset;
1471 static int
1472 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1474 char *data = NULL;
1475 struct ndr_generic_array nga = { .is_conformant = false, };
1477 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1479 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1480 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName, false, &nga, &data);
1481 proto_item_append_text(tree, ": %s", data);
1483 return offset;
1486 static int
1487 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1489 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer_, NDR_POINTER_UNIQUE, "Pointer to DsContainer (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer);
1491 return offset;
1494 static int
1495 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1497 char *data = NULL;
1498 struct ndr_generic_array nga = { .is_conformant = false, };
1500 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1502 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1503 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer, false, &nga, &data);
1504 proto_item_append_text(tree, ": %s", data);
1506 return offset;
1509 static int
1510 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1512 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs_, NDR_POINTER_UNIQUE, "Pointer to ServerAddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs);
1514 return offset;
1517 static int
1518 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1520 offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs,0);
1522 return offset;
1525 static int
1526 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1528 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs_, NDR_POINTER_UNIQUE, "Pointer to ListenAddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs);
1530 return offset;
1533 static int
1534 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1536 offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs,0);
1538 return offset;
1541 static int
1542 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1544 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders_, NDR_POINTER_UNIQUE, "Pointer to Forwarders (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders);
1546 return offset;
1549 static int
1550 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1552 offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders,0);
1554 return offset;
1557 static int
1558 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1560 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter_, NDR_POINTER_UNIQUE, "Pointer to LogFilter (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter);
1562 return offset;
1565 static int
1566 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1568 offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter,0);
1570 return offset;
1573 static int
1574 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1576 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath_, NDR_POINTER_UNIQUE, "Pointer to LogFilePath (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath);
1578 return offset;
1581 static int
1582 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1584 char *data = NULL;
1585 struct ndr_generic_array nga = { .is_conformant = false, };
1587 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1589 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1590 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath, false, &nga, &data);
1591 proto_item_append_text(tree, ": %s", data);
1593 return offset;
1596 static int
1597 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1599 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName_, NDR_POINTER_UNIQUE, "Pointer to DomainName (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName);
1601 return offset;
1604 static int
1605 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1607 char *data = NULL;
1608 struct ndr_generic_array nga = { .is_conformant = false, };
1610 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1612 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1613 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName, false, &nga, &data);
1614 proto_item_append_text(tree, ": %s", data);
1616 return offset;
1619 static int
1620 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1622 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName_, NDR_POINTER_UNIQUE, "Pointer to ForestName (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName);
1624 return offset;
1627 static int
1628 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1630 char *data = NULL;
1631 struct ndr_generic_array nga = { .is_conformant = false, };
1633 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1635 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1636 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName, false, &nga, &data);
1637 proto_item_append_text(tree, ": %s", data);
1639 return offset;
1642 static int
1643 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1645 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to DomainDirectoryPartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition);
1647 return offset;
1650 static int
1651 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1653 char *data = NULL;
1654 struct ndr_generic_array nga = { .is_conformant = false, };
1656 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1658 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1659 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition, false, &nga, &data);
1660 proto_item_append_text(tree, ": %s", data);
1662 return offset;
1665 static int
1666 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1668 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to ForestDirectoryPartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition);
1670 return offset;
1673 static int
1674 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1676 char *data = NULL;
1677 struct ndr_generic_array nga = { .is_conformant = false, };
1679 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1681 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1682 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition, false, &nga, &data);
1683 proto_item_append_text(tree, ": %s", data);
1685 return offset;
1688 static int
1689 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1691 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0_, NDR_POINTER_UNIQUE, "Pointer to Extension0 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0);
1693 return offset;
1696 static int
1697 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1699 char *data = NULL;
1700 struct ndr_generic_array nga = { .is_conformant = false, };
1702 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1704 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1705 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0, false, &nga, &data);
1706 proto_item_append_text(tree, ": %s", data);
1708 return offset;
1711 static int
1712 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1714 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1_, NDR_POINTER_UNIQUE, "Pointer to Extension1 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1);
1716 return offset;
1719 static int
1720 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1722 char *data = NULL;
1723 struct ndr_generic_array nga = { .is_conformant = false, };
1725 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1727 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1728 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1, false, &nga, &data);
1729 proto_item_append_text(tree, ": %s", data);
1731 return offset;
1734 static int
1735 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1737 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2_, NDR_POINTER_UNIQUE, "Pointer to Extension2 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2);
1739 return offset;
1742 static int
1743 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1745 char *data = NULL;
1746 struct ndr_generic_array nga = { .is_conformant = false, };
1748 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1750 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1751 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2, false, &nga, &data);
1752 proto_item_append_text(tree, ": %s", data);
1754 return offset;
1757 static int
1758 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1760 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3_, NDR_POINTER_UNIQUE, "Pointer to Extension3 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3);
1762 return offset;
1765 static int
1766 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1768 char *data = NULL;
1769 struct ndr_generic_array nga = { .is_conformant = false, };
1771 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1773 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1774 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3, false, &nga, &data);
1775 proto_item_append_text(tree, ": %s", data);
1777 return offset;
1780 static int
1781 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1783 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4_, NDR_POINTER_UNIQUE, "Pointer to Extension4 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4);
1785 return offset;
1788 static int
1789 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1791 char *data = NULL;
1792 struct ndr_generic_array nga = { .is_conformant = false, };
1794 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1796 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1797 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4, false, &nga, &data);
1798 proto_item_append_text(tree, ": %s", data);
1800 return offset;
1803 static int
1804 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1806 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5_, NDR_POINTER_UNIQUE, "Pointer to Extension5 (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5);
1808 return offset;
1811 static int
1812 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1814 char *data = NULL;
1815 struct ndr_generic_array nga = { .is_conformant = false, };
1817 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1819 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1820 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5, false, &nga, &data);
1821 proto_item_append_text(tree, ": %s", data);
1823 return offset;
1826 static int
1827 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1829 offset = dnsserver_dissect_bitmap_DNS_LOG_LEVELS(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogLevel, 0);
1831 return offset;
1834 static int
1835 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1837 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel, 0);
1839 return offset;
1842 static int
1843 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1845 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout, 0);
1847 return offset;
1850 static int
1851 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1853 offset = dnsserver_dissect_bitmap_DNS_RPC_PROTOCOLS(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol, 0);
1855 return offset;
1858 static int
1859 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1861 offset = dnsserver_dissect_enum_DNS_NAME_CHECK_FLAGS(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag, 0);
1863 return offset;
1866 static int
1867 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1869 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit, 0);
1871 return offset;
1874 static int
1875 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1877 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry, 0);
1879 return offset;
1882 static int
1883 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1885 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout, 0);
1887 return offset;
1890 static int
1891 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1893 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl, 0);
1895 return offset;
1898 static int
1899 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1901 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval, 0);
1903 return offset;
1906 static int
1907 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1909 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask, 0);
1911 return offset;
1914 static int
1915 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1917 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval, 0);
1919 return offset;
1922 static int
1923 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1925 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval, 0);
1927 return offset;
1930 static int
1931 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1933 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval, 0);
1935 return offset;
1938 static int
1939 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1941 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime, 0);
1943 return offset;
1946 static int
1947 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1949 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel, 0);
1951 return offset;
1954 static int
1955 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1957 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize, 0);
1959 return offset;
1962 static int
1963 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1965 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion, 0);
1967 return offset;
1970 static int
1971 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1973 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion, 0);
1975 return offset;
1978 static int
1979 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1981 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion, 0);
1983 return offset;
1986 static int
1987 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1989 int i;
1990 for (i = 0; i < 4; i++)
1991 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array_(tvb, offset, pinfo, tree, di, drep);
1993 return offset;
1996 static int
1997 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1999 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array, 0);
2001 return offset;
2004 static int
2005 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2007 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones, 0);
2009 return offset;
2012 static int
2013 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2015 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate, 0);
2017 return offset;
2020 static int
2021 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2023 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding, 0);
2025 return offset;
2028 static int
2029 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2031 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations, 0);
2033 return offset;
2036 static int
2037 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2039 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion, 0);
2041 return offset;
2044 static int
2045 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2047 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses, 0);
2049 return offset;
2052 static int
2053 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2055 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin, 0);
2057 return offset;
2060 static int
2061 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2063 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority, 0);
2065 return offset;
2068 static int
2069 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2071 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries, 0);
2073 return offset;
2076 static int
2077 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2079 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs, 0);
2081 return offset;
2084 static int
2085 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2087 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing, 0);
2089 return offset;
2092 static int
2093 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2095 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding, 0);
2097 return offset;
2100 static int
2101 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2103 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState, 0);
2105 return offset;
2108 static int
2109 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2111 int i;
2112 for (i = 0; i < 15; i++)
2113 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2_(tvb, offset, pinfo, tree, di, drep);
2115 return offset;
2118 static int
2119 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2121 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2, 0);
2123 return offset;
2127 dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2129 proto_item *item = NULL;
2130 proto_tree *tree = NULL;
2131 int old_offset;
2133 ALIGN_TO_5_BYTES;
2135 old_offset = offset;
2137 if (parent_tree) {
2138 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2139 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET);
2142 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion(tvb, offset, pinfo, tree, di, drep);
2144 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserved0(tvb, offset, pinfo, tree, di, drep);
2146 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Version(tvb, offset, pinfo, tree, di, drep);
2148 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BootMethod(tvb, offset, pinfo, tree, di, drep);
2150 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured(tvb, offset, pinfo, tree, di, drep);
2152 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate(tvb, offset, pinfo, tree, di, drep);
2154 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable(tvb, offset, pinfo, tree, di, drep);
2156 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerName(tvb, offset, pinfo, tree, di, drep);
2158 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsContainer(tvb, offset, pinfo, tree, di, drep);
2160 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs(tvb, offset, pinfo, tree, di, drep);
2162 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs(tvb, offset, pinfo, tree, di, drep);
2164 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_Forwarders(tvb, offset, pinfo, tree, di, drep);
2166 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilter(tvb, offset, pinfo, tree, di, drep);
2168 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath(tvb, offset, pinfo, tree, di, drep);
2170 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainName(tvb, offset, pinfo, tree, di, drep);
2172 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestName(tvb, offset, pinfo, tree, di, drep);
2174 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition(tvb, offset, pinfo, tree, di, drep);
2176 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition(tvb, offset, pinfo, tree, di, drep);
2178 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension0(tvb, offset, pinfo, tree, di, drep);
2180 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension1(tvb, offset, pinfo, tree, di, drep);
2182 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension2(tvb, offset, pinfo, tree, di, drep);
2184 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension3(tvb, offset, pinfo, tree, di, drep);
2186 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension4(tvb, offset, pinfo, tree, di, drep);
2188 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_extension5(tvb, offset, pinfo, tree, di, drep);
2190 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogLevel(tvb, offset, pinfo, tree, di, drep);
2192 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel(tvb, offset, pinfo, tree, di, drep);
2194 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout(tvb, offset, pinfo, tree, di, drep);
2196 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol(tvb, offset, pinfo, tree, di, drep);
2198 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag(tvb, offset, pinfo, tree, di, drep);
2200 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit(tvb, offset, pinfo, tree, di, drep);
2202 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry(tvb, offset, pinfo, tree, di, drep);
2204 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout(tvb, offset, pinfo, tree, di, drep);
2206 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl(tvb, offset, pinfo, tree, di, drep);
2208 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval(tvb, offset, pinfo, tree, di, drep);
2210 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask(tvb, offset, pinfo, tree, di, drep);
2212 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval(tvb, offset, pinfo, tree, di, drep);
2214 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval(tvb, offset, pinfo, tree, di, drep);
2216 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval(tvb, offset, pinfo, tree, di, drep);
2218 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime(tvb, offset, pinfo, tree, di, drep);
2220 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel(tvb, offset, pinfo, tree, di, drep);
2222 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize(tvb, offset, pinfo, tree, di, drep);
2224 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion(tvb, offset, pinfo, tree, di, drep);
2226 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion(tvb, offset, pinfo, tree, di, drep);
2228 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion(tvb, offset, pinfo, tree, di, drep);
2230 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array(tvb, offset, pinfo, tree, di, drep);
2232 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones(tvb, offset, pinfo, tree, di, drep);
2234 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate(tvb, offset, pinfo, tree, di, drep);
2236 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding(tvb, offset, pinfo, tree, di, drep);
2238 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations(tvb, offset, pinfo, tree, di, drep);
2240 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion(tvb, offset, pinfo, tree, di, drep);
2242 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses(tvb, offset, pinfo, tree, di, drep);
2244 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin(tvb, offset, pinfo, tree, di, drep);
2246 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority(tvb, offset, pinfo, tree, di, drep);
2248 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries(tvb, offset, pinfo, tree, di, drep);
2250 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs(tvb, offset, pinfo, tree, di, drep);
2252 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing(tvb, offset, pinfo, tree, di, drep);
2254 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding(tvb, offset, pinfo, tree, di, drep);
2256 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState(tvb, offset, pinfo, tree, di, drep);
2258 offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2(tvb, offset, pinfo, tree, di, drep);
2261 proto_item_set_len(item, offset-old_offset);
2264 if (di->call_data->flags & DCERPC_IS_NDR64) {
2265 ALIGN_TO_5_BYTES;
2268 return offset;
2272 /* IDL: enum { */
2273 /* IDL: DNSSRV_TYPEID_NULL=0, */
2274 /* IDL: DNSSRV_TYPEID_DWORD=1, */
2275 /* IDL: DNSSRV_TYPEID_LPSTR=2, */
2276 /* IDL: DNSSRV_TYPEID_LPWSTR=3, */
2277 /* IDL: DNSSRV_TYPEID_IPARRAY=4, */
2278 /* IDL: DNSSRV_TYPEID_BUFFER=5, */
2279 /* IDL: DNSSRV_TYPEID_SERVER_INFO_W2K=6, */
2280 /* IDL: DNSSRV_TYPEID_STATS=7, */
2281 /* IDL: DNSSRV_TYPEID_FORWARDERS_W2K=8, */
2282 /* IDL: DNSSRV_TYPEID_ZONE_W2K=9, */
2283 /* IDL: DNSSRV_TYPEID_ZONE_INFO_W2K=10, */
2284 /* IDL: DNSSRV_TYPEID_ZONE_SECONDARIES_W2K=11, */
2285 /* IDL: DNSSRV_TYPEID_ZONE_DATABASE_W2K=12, */
2286 /* IDL: DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K=13, */
2287 /* IDL: DNSSRV_TYPEID_ZONE_CREATE_W2K=14, */
2288 /* IDL: DNSSRV_TYPEID_NAME_AND_PARAM=15, */
2289 /* IDL: DNSSRV_TYPEID_ZONE_LIST_W2K=16, */
2290 /* IDL: DNSSRV_TYPEID_ZONE_RENAME=17, */
2291 /* IDL: DNSSRV_TYPEID_ZONE_EXPORT=18, */
2292 /* IDL: DNSSRV_TYPEID_SERVER_INFO_DOTNET=19, */
2293 /* IDL: DNSSRV_TYPEID_FORWARDERS_DOTNET=20, */
2294 /* IDL: DNSSRV_TYPEID_ZONE=21, */
2295 /* IDL: DNSSRV_TYPEID_ZONE_INFO_DOTNET=22, */
2296 /* IDL: DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET=23, */
2297 /* IDL: DNSSRV_TYPEID_ZONE_DATABASE=24, */
2298 /* IDL: DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET=25, */
2299 /* IDL: DNSSRV_TYPEID_ZONE_CREATE_DOTNET=26, */
2300 /* IDL: DNSSRV_TYPEID_ZONE_LIST=27, */
2301 /* IDL: DNSSRV_TYPEID_DP_ENUM=28, */
2302 /* IDL: DNSSRV_TYPEID_DP_INFO=29, */
2303 /* IDL: DNSSRV_TYPEID_DP_LIST=30, */
2304 /* IDL: DNSSRV_TYPEID_ENLIST_DP=31, */
2305 /* IDL: DNSSRV_TYPEID_ZONE_CHANGE_DP=32, */
2306 /* IDL: DNSSRV_TYPEID_ENUM_ZONES_FILTER=33, */
2307 /* IDL: DNSSRV_TYPEID_ADDARRAY=34, */
2308 /* IDL: DNSSRV_TYPEID_SERVER_INFO=35, */
2309 /* IDL: DNSSRV_TYPEID_ZONE_INFO=36, */
2310 /* IDL: DNSSRV_TYPEID_FORWARDERS=37, */
2311 /* IDL: DNSSRV_TYPEID_ZONE_SECONDARIES=38, */
2312 /* IDL: DNSSRV_TYPEID_ZONE_TYPE_RESET=39, */
2313 /* IDL: DNSSRV_TYPEID_ZONE_CREATE=40, */
2314 /* IDL: DNSSRV_TYPEID_IP_VALIDATE=41, */
2315 /* IDL: DNSSRV_TYPEID_AUTOCONFIGURE=42, */
2316 /* IDL: DNSSRV_TYPEID_UTF8_STRING_LIST=43, */
2317 /* IDL: DNSSRV_TYPEID_UNICODE_STRING_LIST=44, */
2318 /* IDL: } */
2321 dnsserver_dissect_enum_DnssrvRpcTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t *param _U_)
2323 uint32_t parameter=0;
2324 if (param) {
2325 parameter = *param;
2327 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
2328 if (param) {
2329 *param = parameter;
2331 return offset;
2335 /* IDL: union { */
2336 /* IDL: [case(DNSSRV_TYPEID_NULL)] [case(DNSSRV_TYPEID_NULL)] [unique(1)] uint8 *null; */
2337 /* IDL: [case(DNSSRV_TYPEID_DWORD)] [case(DNSSRV_TYPEID_DWORD)] uint32 dword; */
2338 /* IDL: [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] [unique(1)] DNS_RPC_SERVER_INFO_DOTNET *ServerInfoDotnet; */
2339 /* IDL: } */
2341 static int
2342 dnsserver_dissect_element_DNSSRV_RPC_UNION_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2344 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_null_, NDR_POINTER_UNIQUE, "Pointer to Null (uint8)",hf_dnsserver_DNSSRV_RPC_UNION_null);
2346 return offset;
2349 static int
2350 dnsserver_dissect_element_DNSSRV_RPC_UNION_null_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2352 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNSSRV_RPC_UNION_null, 0);
2354 return offset;
2357 static int
2358 dnsserver_dissect_element_DNSSRV_RPC_UNION_dword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2360 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNSSRV_RPC_UNION_dword, 0);
2362 return offset;
2365 static int
2366 dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2368 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet_, NDR_POINTER_UNIQUE, "Pointer to ServerInfoDotnet (DNS_RPC_SERVER_INFO_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet);
2370 return offset;
2373 static int
2374 dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2376 offset = dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet,0);
2378 return offset;
2381 static int
2382 dnsserver_dissect_DNSSRV_RPC_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2384 proto_item *item = NULL;
2385 proto_tree *tree = NULL;
2386 int old_offset;
2387 uint32_t level;
2389 old_offset = offset;
2390 if (parent_tree) {
2391 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_dnsserver_DNSSRV_RPC_UNION, &item, "DNSSRV_RPC_UNION");
2394 UNION_ALIGN_TO_5_BYTES;
2395 offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
2396 UNION_ALIGN_TO_5_BYTES;
2398 switch(level) {
2399 case DNSSRV_TYPEID_NULL:
2400 offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_null(tvb, offset, pinfo, tree, di, drep);
2401 break;
2403 case DNSSRV_TYPEID_DWORD:
2404 offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_dword(tvb, offset, pinfo, tree, di, drep);
2405 break;
2407 case DNSSRV_TYPEID_SERVER_INFO_DOTNET:
2408 offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotnet(tvb, offset, pinfo, tree, di, drep);
2409 break;
2411 proto_item_set_len(item, offset-old_offset);
2414 return offset;
2417 /* IDL: struct { */
2418 /* IDL: DNS_RPC_NODE rpc_node; */
2419 /* IDL: } */
2421 static int
2422 dnsserver_dissect_element_DNS_RECORD_BUFFER_rpc_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2424 offset = dnsserver_dissect_struct_DNS_RPC_NODE(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DNS_RECORD_BUFFER_rpc_node,0);
2426 return offset;
2430 dnsserver_dissect_struct_DNS_RECORD_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2432 proto_item *item = NULL;
2433 proto_tree *tree = NULL;
2434 int old_offset;
2436 ALIGN_TO_4_BYTES;
2438 old_offset = offset;
2440 if (parent_tree) {
2441 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2442 tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RECORD_BUFFER);
2445 offset = dnsserver_dissect_element_DNS_RECORD_BUFFER_rpc_node(tvb, offset, pinfo, tree, di, drep);
2448 proto_item_set_len(item, offset-old_offset);
2451 if (di->call_data->flags & DCERPC_IS_NDR64) {
2452 ALIGN_TO_4_BYTES;
2455 return offset;
2458 /* IDL: NTSTATUS DnssrvOperation( */
2459 /* IDL: */
2460 /* IDL: ); */
2462 static int
2463 dnsserver_dissect_DnssrvOperation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2465 uint32_t status;
2467 di->dcerpc_procedure_name="DnssrvOperation";
2468 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2470 if (status != 0)
2471 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2473 return offset;
2476 static int
2477 dnsserver_dissect_DnssrvOperation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2479 di->dcerpc_procedure_name="DnssrvOperation";
2480 return offset;
2483 /* IDL: NTSTATUS DnssrvQuery( */
2484 /* IDL: */
2485 /* IDL: ); */
2487 static int
2488 dnsserver_dissect_DnssrvQuery_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2490 uint32_t status;
2492 di->dcerpc_procedure_name="DnssrvQuery";
2493 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2495 if (status != 0)
2496 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2498 return offset;
2501 static int
2502 dnsserver_dissect_DnssrvQuery_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2504 di->dcerpc_procedure_name="DnssrvQuery";
2505 return offset;
2508 /* IDL: NTSTATUS DnssrvComplexOperation( */
2509 /* IDL: */
2510 /* IDL: ); */
2512 static int
2513 dnsserver_dissect_DnssrvComplexOperation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2515 uint32_t status;
2517 di->dcerpc_procedure_name="DnssrvComplexOperation";
2518 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2520 if (status != 0)
2521 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2523 return offset;
2526 static int
2527 dnsserver_dissect_DnssrvComplexOperation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2529 di->dcerpc_procedure_name="DnssrvComplexOperation";
2530 return offset;
2533 /* IDL: NTSTATUS DnssrvEnumRecords( */
2534 /* IDL: */
2535 /* IDL: ); */
2537 static int
2538 dnsserver_dissect_DnssrvEnumRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2540 uint32_t status;
2542 di->dcerpc_procedure_name="DnssrvEnumRecords";
2543 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2545 if (status != 0)
2546 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2548 return offset;
2551 static int
2552 dnsserver_dissect_DnssrvEnumRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2554 di->dcerpc_procedure_name="DnssrvEnumRecords";
2555 return offset;
2558 /* IDL: NTSTATUS DnssrvUpdateRecord( */
2559 /* IDL: */
2560 /* IDL: ); */
2562 static int
2563 dnsserver_dissect_DnssrvUpdateRecord_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2565 uint32_t status;
2567 di->dcerpc_procedure_name="DnssrvUpdateRecord";
2568 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2570 if (status != 0)
2571 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2573 return offset;
2576 static int
2577 dnsserver_dissect_DnssrvUpdateRecord_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2579 di->dcerpc_procedure_name="DnssrvUpdateRecord";
2580 return offset;
2583 /* IDL: NTSTATUS DnssrvOperation2( */
2584 /* IDL: */
2585 /* IDL: ); */
2587 static int
2588 dnsserver_dissect_DnssrvOperation2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2590 uint32_t status;
2592 di->dcerpc_procedure_name="DnssrvOperation2";
2593 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2595 if (status != 0)
2596 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2598 return offset;
2601 static int
2602 dnsserver_dissect_DnssrvOperation2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2604 di->dcerpc_procedure_name="DnssrvOperation2";
2605 return offset;
2608 static int
2609 dnsserver_dissect_element_DnssrvQuery2_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2611 offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvQuery2_client_version, 0);
2613 return offset;
2616 static int
2617 dnsserver_dissect_element_DnssrvQuery2_setting_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2619 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvQuery2_setting_flags, 0);
2621 return offset;
2624 static int
2625 dnsserver_dissect_element_DnssrvQuery2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2627 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvQuery2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_dnsserver_DnssrvQuery2_server_name);
2629 return offset;
2632 static int
2633 dnsserver_dissect_element_DnssrvQuery2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2635 char *data = NULL;
2636 struct ndr_generic_array nga = { .is_conformant = false, };
2638 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2640 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2641 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_dnsserver_DnssrvQuery2_server_name, false, &nga, &data);
2642 proto_item_append_text(tree, ": %s", data);
2644 return offset;
2647 static int
2648 dnsserver_dissect_element_DnssrvQuery2_zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2650 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvQuery2_zone_, NDR_POINTER_UNIQUE, "Pointer to Zone (uint8)",hf_dnsserver_DnssrvQuery2_zone);
2652 return offset;
2655 static int
2656 dnsserver_dissect_element_DnssrvQuery2_zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2658 char *data = NULL;
2659 struct ndr_generic_array nga = { .is_conformant = false, };
2661 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2663 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2664 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvQuery2_zone, false, &nga, &data);
2665 proto_item_append_text(tree, ": %s", data);
2667 return offset;
2670 static int
2671 dnsserver_dissect_element_DnssrvQuery2_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2673 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvQuery2_operation_, NDR_POINTER_UNIQUE, "Pointer to Operation (uint8)",hf_dnsserver_DnssrvQuery2_operation);
2675 return offset;
2678 static int
2679 dnsserver_dissect_element_DnssrvQuery2_operation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2681 char *data = NULL;
2682 struct ndr_generic_array nga = { .is_conformant = false, };
2684 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2686 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2687 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvQuery2_operation, false, &nga, &data);
2688 proto_item_append_text(tree, ": %s", data);
2690 return offset;
2693 static int
2694 dnsserver_dissect_element_DnssrvQuery2_type_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2696 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvQuery2_type_id_, NDR_POINTER_REF, "Pointer to Type Id (DnssrvRpcTypeId)",hf_dnsserver_DnssrvQuery2_type_id);
2698 return offset;
2701 static int
2702 dnsserver_dissect_element_DnssrvQuery2_type_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2704 offset = dnsserver_dissect_enum_DnssrvRpcTypeId(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvQuery2_type_id, 0);
2706 return offset;
2709 static int
2710 dnsserver_dissect_element_DnssrvQuery2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2712 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvQuery2_data_, NDR_POINTER_REF, "Pointer to Data (DNSSRV_RPC_UNION)",hf_dnsserver_DnssrvQuery2_data);
2714 return offset;
2717 static int
2718 dnsserver_dissect_element_DnssrvQuery2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2720 offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvQuery2_data, 0);
2722 return offset;
2725 /* IDL: NTSTATUS DnssrvQuery2( */
2726 /* IDL: [in] DNS_RPC_CLIENT_VERSION client_version, */
2727 /* IDL: [in] uint32 setting_flags, */
2728 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *server_name, */
2729 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *zone, */
2730 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *operation, */
2731 /* IDL: [out] [ref] DnssrvRpcTypeId *type_id, */
2732 /* IDL: [out] [ref] [switch_is(*type_id)] DNSSRV_RPC_UNION *data */
2733 /* IDL: ); */
2735 static int
2736 dnsserver_dissect_DnssrvQuery2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2738 uint32_t status;
2740 di->dcerpc_procedure_name="DnssrvQuery2";
2741 offset = dnsserver_dissect_element_DnssrvQuery2_type_id(tvb, offset, pinfo, tree, di, drep);
2742 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2744 offset = dnsserver_dissect_element_DnssrvQuery2_data(tvb, offset, pinfo, tree, di, drep);
2745 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2747 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2749 if (status != 0)
2750 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2752 return offset;
2755 static int
2756 dnsserver_dissect_DnssrvQuery2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2758 di->dcerpc_procedure_name="DnssrvQuery2";
2759 offset = dnsserver_dissect_element_DnssrvQuery2_client_version(tvb, offset, pinfo, tree, di, drep);
2760 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2761 offset = dnsserver_dissect_element_DnssrvQuery2_setting_flags(tvb, offset, pinfo, tree, di, drep);
2762 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2763 offset = dnsserver_dissect_element_DnssrvQuery2_server_name(tvb, offset, pinfo, tree, di, drep);
2764 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2765 offset = dnsserver_dissect_element_DnssrvQuery2_zone(tvb, offset, pinfo, tree, di, drep);
2766 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2767 offset = dnsserver_dissect_element_DnssrvQuery2_operation(tvb, offset, pinfo, tree, di, drep);
2768 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
2769 return offset;
2772 /* IDL: NTSTATUS DnssrvComplexOperation2( */
2773 /* IDL: */
2774 /* IDL: ); */
2776 static int
2777 dnsserver_dissect_DnssrvComplexOperation2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2779 uint32_t status;
2781 di->dcerpc_procedure_name="DnssrvComplexOperation2";
2782 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
2784 if (status != 0)
2785 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
2787 return offset;
2790 static int
2791 dnsserver_dissect_DnssrvComplexOperation2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2793 di->dcerpc_procedure_name="DnssrvComplexOperation2";
2794 return offset;
2797 static int
2798 dnsserver_dissect_element_DnssrvEnumRecords2_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2800 offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_client_version, 0);
2802 return offset;
2805 static int
2806 dnsserver_dissect_element_DnssrvEnumRecords2_setting_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2808 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_setting_flags, 0);
2810 return offset;
2813 static int
2814 dnsserver_dissect_element_DnssrvEnumRecords2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2816 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_dnsserver_DnssrvEnumRecords2_server_name);
2818 return offset;
2821 static int
2822 dnsserver_dissect_element_DnssrvEnumRecords2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2824 char *data = NULL;
2825 struct ndr_generic_array nga = { .is_conformant = false, };
2827 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2829 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2830 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_dnsserver_DnssrvEnumRecords2_server_name, false, &nga, &data);
2831 proto_item_append_text(tree, ": %s", data);
2833 return offset;
2836 static int
2837 dnsserver_dissect_element_DnssrvEnumRecords2_zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2839 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_zone_, NDR_POINTER_UNIQUE, "Pointer to Zone (uint8)",hf_dnsserver_DnssrvEnumRecords2_zone);
2841 return offset;
2844 static int
2845 dnsserver_dissect_element_DnssrvEnumRecords2_zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2847 char *data = NULL;
2848 struct ndr_generic_array nga = { .is_conformant = false, };
2850 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2852 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2853 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvEnumRecords2_zone, false, &nga, &data);
2854 proto_item_append_text(tree, ": %s", data);
2856 return offset;
2859 static int
2860 dnsserver_dissect_element_DnssrvEnumRecords2_node_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2862 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_node_name_, NDR_POINTER_UNIQUE, "Pointer to Node Name (uint8)",hf_dnsserver_DnssrvEnumRecords2_node_name);
2864 return offset;
2867 static int
2868 dnsserver_dissect_element_DnssrvEnumRecords2_node_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2870 char *data = NULL;
2871 struct ndr_generic_array nga = { .is_conformant = false, };
2873 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2875 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2876 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvEnumRecords2_node_name, false, &nga, &data);
2877 proto_item_append_text(tree, ": %s", data);
2879 return offset;
2882 static int
2883 dnsserver_dissect_element_DnssrvEnumRecords2_start_child(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2885 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_start_child_, NDR_POINTER_UNIQUE, "Pointer to Start Child (uint8)",hf_dnsserver_DnssrvEnumRecords2_start_child);
2887 return offset;
2890 static int
2891 dnsserver_dissect_element_DnssrvEnumRecords2_start_child_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2893 char *data = NULL;
2894 struct ndr_generic_array nga = { .is_conformant = false, };
2896 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2898 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2899 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvEnumRecords2_start_child, false, &nga, &data);
2900 proto_item_append_text(tree, ": %s", data);
2902 return offset;
2905 static int
2906 dnsserver_dissect_element_DnssrvEnumRecords2_record_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2908 offset = dnsserver_dissect_enum_DNS_RECORD_TYPE(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_record_type, 0);
2910 return offset;
2913 static int
2914 dnsserver_dissect_element_DnssrvEnumRecords2_select_flag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2916 offset = dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_select_flag, 0);
2918 return offset;
2921 static int
2922 dnsserver_dissect_element_DnssrvEnumRecords2_filter_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2924 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_filter_start_, NDR_POINTER_UNIQUE, "Pointer to Filter Start (uint8)",hf_dnsserver_DnssrvEnumRecords2_filter_start);
2926 return offset;
2929 static int
2930 dnsserver_dissect_element_DnssrvEnumRecords2_filter_start_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2932 char *data = NULL;
2933 struct ndr_generic_array nga = { .is_conformant = false, };
2935 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2937 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2938 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvEnumRecords2_filter_start, false, &nga, &data);
2939 proto_item_append_text(tree, ": %s", data);
2941 return offset;
2944 static int
2945 dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2947 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop_, NDR_POINTER_UNIQUE, "Pointer to Filter Stop (uint8)",hf_dnsserver_DnssrvEnumRecords2_filter_stop);
2949 return offset;
2952 static int
2953 dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2955 char *data = NULL;
2956 struct ndr_generic_array nga = { .is_conformant = false, };
2958 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2960 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2961 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_dnsserver_DnssrvEnumRecords2_filter_stop, false, &nga, &data);
2962 proto_item_append_text(tree, ": %s", data);
2964 return offset;
2967 static int
2968 dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2970 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length_, NDR_POINTER_REF, "Pointer to Buffer Length (uint32)",hf_dnsserver_DnssrvEnumRecords2_buffer_length);
2972 return offset;
2975 static int
2976 dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2978 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_buffer_length, 0);
2980 return offset;
2983 static int
2984 dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2986 offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer_, NDR_POINTER_UNIQUE, "Pointer to Record Buffer (DNS_RPC_NODE)",hf_dnsserver_DnssrvEnumRecords2_record_buffer);
2988 return offset;
2991 static int
2992 dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2994 uint64_t size;
2995 int conformant = di->conformant_run;
2996 tvbuff_t *subtvb;
2998 if (!conformant) {
2999 uint32_t saved_flags = di->call_data->flags;
3000 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DnssrvEnumRecords2_record_buffer_, &size);
3001 di->call_data->flags &= ~DCERPC_IS_NDR64;
3002 subtvb = tvb_new_subset_length_caplen(tvb, offset, (int)size, (int)size);
3003 dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer__(subtvb, 0, pinfo, tree, di, drep);
3004 offset += (int)size;
3005 di->call_data->flags = saved_flags;
3008 return offset;
3011 static int
3012 dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3014 offset = dnsserver_dissect_struct_DNS_RPC_NODE(tvb,offset,pinfo,tree,di,drep,hf_dnsserver_DnssrvEnumRecords2_record_buffer,0);
3016 return offset;
3019 /* IDL: NTSTATUS DnssrvEnumRecords2( */
3020 /* IDL: [in] DNS_RPC_CLIENT_VERSION client_version, */
3021 /* IDL: [in] uint32 setting_flags, */
3022 /* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *server_name, */
3023 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *zone, */
3024 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *node_name, */
3025 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *start_child, */
3026 /* IDL: [in] DNS_RECORD_TYPE record_type, */
3027 /* IDL: [in] DNS_SELECT_FLAGS select_flag, */
3028 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *filter_start, */
3029 /* IDL: [charset(UTF8)] [in] [unique(1)] uint8 *filter_stop, */
3030 /* IDL: [out] [ref] uint32 *buffer_length, */
3031 /* IDL: [out] [subcontext(4)] [unique(1)] DNS_RPC_NODE *record_buffer */
3032 /* IDL: ); */
3034 static int
3035 dnsserver_dissect_DnssrvEnumRecords2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3037 uint32_t status;
3039 di->dcerpc_procedure_name="DnssrvEnumRecords2";
3040 offset = dnsserver_dissect_element_DnssrvEnumRecords2_buffer_length(tvb, offset, pinfo, tree, di, drep);
3041 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3043 offset = dnsserver_dissect_element_DnssrvEnumRecords2_record_buffer(tvb, offset, pinfo, tree, di, drep);
3044 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3046 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
3048 if (status != 0)
3049 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
3051 return offset;
3054 static int
3055 dnsserver_dissect_DnssrvEnumRecords2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3057 di->dcerpc_procedure_name="DnssrvEnumRecords2";
3058 offset = dnsserver_dissect_element_DnssrvEnumRecords2_client_version(tvb, offset, pinfo, tree, di, drep);
3059 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3060 offset = dnsserver_dissect_element_DnssrvEnumRecords2_setting_flags(tvb, offset, pinfo, tree, di, drep);
3061 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3062 offset = dnsserver_dissect_element_DnssrvEnumRecords2_server_name(tvb, offset, pinfo, tree, di, drep);
3063 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3064 offset = dnsserver_dissect_element_DnssrvEnumRecords2_zone(tvb, offset, pinfo, tree, di, drep);
3065 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3066 offset = dnsserver_dissect_element_DnssrvEnumRecords2_node_name(tvb, offset, pinfo, tree, di, drep);
3067 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3068 offset = dnsserver_dissect_element_DnssrvEnumRecords2_start_child(tvb, offset, pinfo, tree, di, drep);
3069 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3070 offset = dnsserver_dissect_element_DnssrvEnumRecords2_record_type(tvb, offset, pinfo, tree, di, drep);
3071 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3072 offset = dnsserver_dissect_element_DnssrvEnumRecords2_select_flag(tvb, offset, pinfo, tree, di, drep);
3073 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3074 offset = dnsserver_dissect_element_DnssrvEnumRecords2_filter_start(tvb, offset, pinfo, tree, di, drep);
3075 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3076 offset = dnsserver_dissect_element_DnssrvEnumRecords2_filter_stop(tvb, offset, pinfo, tree, di, drep);
3077 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
3078 return offset;
3081 /* IDL: NTSTATUS DnssrvUpdateRecord2( */
3082 /* IDL: */
3083 /* IDL: ); */
3085 static int
3086 dnsserver_dissect_DnssrvUpdateRecord2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3088 uint32_t status;
3090 di->dcerpc_procedure_name="DnssrvUpdateRecord2";
3091 offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_status, &status);
3093 if (status != 0)
3094 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str_ext(status, &NT_errors_ext, "Unknown NT status 0x%08x"));
3096 return offset;
3099 static int
3100 dnsserver_dissect_DnssrvUpdateRecord2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3102 di->dcerpc_procedure_name="DnssrvUpdateRecord2";
3103 return offset;
3107 static const dcerpc_sub_dissector dnsserver_dissectors[] = {
3108 { 0, "DnssrvOperation",
3109 dnsserver_dissect_DnssrvOperation_request, dnsserver_dissect_DnssrvOperation_response},
3110 { 1, "DnssrvQuery",
3111 dnsserver_dissect_DnssrvQuery_request, dnsserver_dissect_DnssrvQuery_response},
3112 { 2, "DnssrvComplexOperation",
3113 dnsserver_dissect_DnssrvComplexOperation_request, dnsserver_dissect_DnssrvComplexOperation_response},
3114 { 3, "DnssrvEnumRecords",
3115 dnsserver_dissect_DnssrvEnumRecords_request, dnsserver_dissect_DnssrvEnumRecords_response},
3116 { 4, "DnssrvUpdateRecord",
3117 dnsserver_dissect_DnssrvUpdateRecord_request, dnsserver_dissect_DnssrvUpdateRecord_response},
3118 { 5, "DnssrvOperation2",
3119 dnsserver_dissect_DnssrvOperation2_request, dnsserver_dissect_DnssrvOperation2_response},
3120 { 6, "DnssrvQuery2",
3121 dnsserver_dissect_DnssrvQuery2_request, dnsserver_dissect_DnssrvQuery2_response},
3122 { 7, "DnssrvComplexOperation2",
3123 dnsserver_dissect_DnssrvComplexOperation2_request, dnsserver_dissect_DnssrvComplexOperation2_response},
3124 { 8, "DnssrvEnumRecords2",
3125 dnsserver_dissect_DnssrvEnumRecords2_request, dnsserver_dissect_DnssrvEnumRecords2_response},
3126 { 9, "DnssrvUpdateRecord2",
3127 dnsserver_dissect_DnssrvUpdateRecord2_request, dnsserver_dissect_DnssrvUpdateRecord2_response},
3128 { 0, NULL, NULL, NULL }
3131 void proto_register_dcerpc_dnsserver(void)
3133 static hf_register_info hf[] = {
3134 { &hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet,
3135 { "ServerInfoDotnet", "dnsserver.DNSSRV_RPC_UNION.ServerInfoDotnet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3136 { &hf_dnsserver_DNSSRV_RPC_UNION_dword,
3137 { "Dword", "dnsserver.DNSSRV_RPC_UNION.dword", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3138 { &hf_dnsserver_DNSSRV_RPC_UNION_null,
3139 { "Null", "dnsserver.DNSSRV_RPC_UNION.null", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3140 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS,
3141 { "DNS LOG LEVEL ANSWERS", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_ANSWERS", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS_tfs), ( 0x00000200 ), NULL, HFILL }},
3142 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS,
3143 { "DNS LOG LEVEL FULL PACKETS", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_FULL_PACKETS", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS_tfs), ( 0x01000000 ), NULL, HFILL }},
3144 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY,
3145 { "DNS LOG LEVEL NOTIFY", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_NOTIFY", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY_tfs), ( 0x00000010 ), NULL, HFILL }},
3146 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY,
3147 { "DNS LOG LEVEL QUERY", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_QUERY", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY_tfs), ( 0x00000001 ), NULL, HFILL }},
3148 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS,
3149 { "DNS LOG LEVEL QUESTIONS", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_QUESTIONS", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS_tfs), ( 0x00000100 ), NULL, HFILL }},
3150 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV,
3151 { "DNS LOG LEVEL RECV", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_RECV", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV_tfs), ( 0x00002000 ), NULL, HFILL }},
3152 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND,
3153 { "DNS LOG LEVEL SEND", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_SEND", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND_tfs), ( 0x00001000 ), NULL, HFILL }},
3154 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP,
3155 { "DNS LOG LEVEL TCP", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_TCP", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP_tfs), ( 0x00008000 ), NULL, HFILL }},
3156 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP,
3157 { "DNS LOG LEVEL UDP", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_UDP", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP_tfs), ( 0x00004000 ), NULL, HFILL }},
3158 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE,
3159 { "DNS LOG LEVEL UPDATE", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_UPDATE", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE_tfs), ( 0x00000020 ), NULL, HFILL }},
3160 { &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH,
3161 { "DNS LOG LEVEL WRITE THROUGH", "dnsserver.DNS_LOG_LEVELS.DNS_LOG_LEVEL_WRITE_THROUGH", FT_BOOLEAN, 32, TFS(&DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH_tfs), ( 0x80000000 ), NULL, HFILL }},
3162 { &hf_dnsserver_DNS_RECORD_BUFFER_rpc_node,
3163 { "Rpc Node", "dnsserver.DNS_RECORD_BUFFER.rpc_node", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3164 { &hf_dnsserver_DNS_RPC_NAME_Name,
3165 { "Name", "dnsserver.DNS_RPC_NAME.Name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3166 { &hf_dnsserver_DNS_RPC_NAME_NameLength,
3167 { "NameLength", "dnsserver.DNS_RPC_NAME.NameLength", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3168 { &hf_dnsserver_DNS_RPC_NAME_name,
3169 { "Name", "dnsserver.DNS_RPC_NAME.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3170 { &hf_dnsserver_DNS_RPC_NODE_Childcount,
3171 { "Childcount", "dnsserver.DNS_RPC_NODE.Childcount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3172 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON,
3173 { "DNS RPC FLAG AGING ON", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_AGING_ON", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON_tfs), ( 0x00020000 ), NULL, HFILL }},
3174 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT,
3175 { "DNS RPC FLAG AUTH ZONE ROOT", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_AUTH_ZONE_ROOT", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT_tfs), ( 0x20000000 ), NULL, HFILL }},
3176 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA,
3177 { "DNS RPC FLAG CACHE DATA", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_CACHE_DATA", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA_tfs), ( 0x80000000 ), NULL, HFILL }},
3178 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE,
3179 { "DNS RPC FLAG NODE COMPLETE", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_NODE_COMPLETE", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE_tfs), ( 0x00800000 ), NULL, HFILL }},
3180 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY,
3181 { "DNS RPC FLAG NODE STICKY", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_NODE_STICKY", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY_tfs), ( 0x01000000 ), NULL, HFILL }},
3182 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL,
3183 { "DNS RPC FLAG OPEN ACL", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_OPEN_ACL", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL_tfs), ( 0x00040000 ), NULL, HFILL }},
3184 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR,
3185 { "DNS RPC FLAG RECORD CREATE PTR", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_RECORD_CREATE_PTR", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR_tfs), ( 0x02000000 ), NULL, HFILL }},
3186 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE,
3187 { "DNS RPC FLAG RECORD TTL CHANGE", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_RECORD_TTL_CHANGE", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE_tfs), ( 0x04000000 ), NULL, HFILL }},
3188 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL,
3189 { "DNS RPC FLAG RECOR DEFAULT TTL", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_RECOR_DEFAULT_TTL", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL_tfs), ( 0x08000000 ), NULL, HFILL }},
3190 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY,
3191 { "DNS RPC FLAG SUPPRESS NOTIFY", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_SUPPRESS_NOTIFY", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY_tfs), ( 0x00010000 ), NULL, HFILL }},
3192 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION,
3193 { "DNS RPC FLAG ZONE DELEGATION", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_ZONE_DELEGATION", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION_tfs), ( 0x10000000 ), NULL, HFILL }},
3194 { &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT,
3195 { "DNS RPC FLAG ZONE ROOT", "dnsserver.DNS_RPC_NODE_FLAGS.DNS_RPC_FLAG_ZONE_ROOT", FT_BOOLEAN, 32, TFS(&DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT_tfs), ( 0x40000000 ), NULL, HFILL }},
3196 { &hf_dnsserver_DNS_RPC_NODE_Flags,
3197 { "Flags", "dnsserver.DNS_RPC_NODE.Flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3198 { &hf_dnsserver_DNS_RPC_NODE_Length,
3199 { "Length", "dnsserver.DNS_RPC_NODE.Length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3200 { &hf_dnsserver_DNS_RPC_NODE_NodeName,
3201 { "NodeName", "dnsserver.DNS_RPC_NODE.NodeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3202 { &hf_dnsserver_DNS_RPC_NODE_RecordCount,
3203 { "RecordCount", "dnsserver.DNS_RPC_NODE.RecordCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3204 { &hf_dnsserver_DNS_RPC_NODE_records,
3205 { "Records", "dnsserver.DNS_RPC_NODE.records", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3206 { &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC,
3207 { "DNS RPC USE LPC", "dnsserver.DNS_RPC_PROTOCOLS.DNS_RPC_USE_LPC", FT_BOOLEAN, 32, TFS(&DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC_tfs), ( 0x00000004 ), NULL, HFILL }},
3208 { &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE,
3209 { "DNS RPC USE NAMED PIPE", "dnsserver.DNS_RPC_PROTOCOLS.DNS_RPC_USE_NAMED_PIPE", FT_BOOLEAN, 32, TFS(&DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE_tfs), ( 0x00000002 ), NULL, HFILL }},
3210 { &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP,
3211 { "DNS RPC USE TCPIP", "dnsserver.DNS_RPC_PROTOCOLS.DNS_RPC_USE_TCPIP", FT_BOOLEAN, 32, TFS(&DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP_tfs), ( 0x00000001 ), NULL, HFILL }},
3212 { &hf_dnsserver_DNS_RPC_RECORD_DataLength,
3213 { "DataLength", "dnsserver.DNS_RPC_RECORD.DataLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3214 { &hf_dnsserver_DNS_RPC_RECORD_Flags,
3215 { "Flags", "dnsserver.DNS_RPC_RECORD.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3216 { &hf_dnsserver_DNS_RPC_RECORD_NODE_NAME_Name,
3217 { "Name", "dnsserver.DNS_RPC_RECORD_NODE_NAME.Name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3218 { &hf_dnsserver_DNS_RPC_RECORD_Serial,
3219 { "Serial", "dnsserver.DNS_RPC_RECORD.Serial", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3220 { &hf_dnsserver_DNS_RPC_RECORD_TimeStamp,
3221 { "TimeStamp", "dnsserver.DNS_RPC_RECORD.TimeStamp", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3222 { &hf_dnsserver_DNS_RPC_RECORD_TtlSeconds,
3223 { "TtlSeconds", "dnsserver.DNS_RPC_RECORD.TtlSeconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3224 { &hf_dnsserver_DNS_RPC_RECORD_Type,
3225 { "Type", "dnsserver.DNS_RPC_RECORD.Type", FT_UINT16, BASE_DEC, VALS(dnsserver_DNS_RECORD_TYPE_vals), 0, NULL, HFILL }},
3226 { &hf_dnsserver_DNS_RPC_RECORD_UNION_NodeName,
3227 { "NodeName", "dnsserver.DNS_RPC_RECORD_UNION.NodeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3228 { &hf_dnsserver_DNS_RPC_RECORD_record,
3229 { "Record", "dnsserver.DNS_RPC_RECORD.record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3230 { &hf_dnsserver_DNS_RPC_RECORD_reserved,
3231 { "Reserved", "dnsserver.DNS_RPC_RECORD.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3232 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit,
3233 { "AddressAnswerLimit", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.AddressAnswerLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3234 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured,
3235 { "AdminConfigured", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.AdminConfigured", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3236 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate,
3237 { "AllowUpdate", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.AllowUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3238 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate,
3239 { "AutoCacheUpdate", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.AutoCacheUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3240 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones,
3241 { "AutoReverseZones", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.AutoReverseZones", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3242 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries,
3243 { "BindSecondaries", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.BindSecondaries", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3244 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BootMethod,
3245 { "BootMethod", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.BootMethod", FT_UINT8, BASE_DEC, VALS(dnsserver_DNS_RPC_BOOT_METHOD_vals), 0, NULL, HFILL }},
3246 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel,
3247 { "DebugLevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DebugLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3248 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState,
3249 { "DefaultAgingState", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DefaultAgingState", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3250 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval,
3251 { "DefaultNoRefreshInterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DefaultNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3252 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval,
3253 { "DefaultRefreshInterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DefaultRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3254 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition,
3255 { "DomainDirectoryPartition", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DomainDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3256 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName,
3257 { "DomainName", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3258 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable,
3259 { "DsAvailable", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsAvailable", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3260 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer,
3261 { "DsContainer", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsContainer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3262 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion,
3263 { "DsDomainVersion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsDomainVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3264 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion,
3265 { "DsDsaVersion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsDsaVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3266 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion,
3267 { "DsForestVersion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsForestVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3268 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval,
3269 { "DsPollingInterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.DsPollingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3270 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel,
3271 { "EventLogLevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.EventLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3272 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition,
3273 { "ForestDirectoryPartition", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ForestDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3274 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName,
3275 { "ForestName", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ForestName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3276 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations,
3277 { "ForwardDelegations", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ForwardDelegations", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3278 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout,
3279 { "ForwardTimeout", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3280 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders,
3281 { "Forwarders", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.Forwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3282 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime,
3283 { "LastScavengeTime", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LastScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3284 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs,
3285 { "ListenAddrs", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ListenAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3286 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority,
3287 { "LocalNetPriority", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LocalNetPriority", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3288 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask,
3289 { "LocalNetPriorityNetmask", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LocalNetPriorityNetmask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3290 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize,
3291 { "LogFileMaxSize", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LogFileMaxSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3292 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath,
3293 { "LogFilePath", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LogFilePath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3294 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter,
3295 { "LogFilter", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LogFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3296 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogLevel,
3297 { "LogLevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LogLevel", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3298 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding,
3299 { "LooseWildcarding", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.LooseWildcarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3300 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl,
3301 { "MaxCacheTtl", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.MaxCacheTtl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3302 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag,
3303 { "NameCheckFlag", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.NameCheckFlag", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_NAME_CHECK_FLAGS_vals), 0, NULL, HFILL }},
3304 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion,
3305 { "NoRecursion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.NoRecursion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3306 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding,
3307 { "RecurseAfterForwarding", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RecurseAfterForwarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3308 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry,
3309 { "RecursionRetry", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RecursionRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3310 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout,
3311 { "RecursionTimeout", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RecursionTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3312 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin,
3313 { "RoundRobin", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RoundRobin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3314 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol,
3315 { "RpcProtocol", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RpcProtocol", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3316 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion,
3317 { "RpcStructureVersion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.RpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3318 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval,
3319 { "ScavengingInterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ScavengingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3320 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses,
3321 { "SecureResponses", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.SecureResponses", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3322 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs,
3323 { "ServerAddrs", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ServerAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3324 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName,
3325 { "ServerName", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.ServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3326 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing,
3327 { "StrictFileParsing", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.StrictFileParsing", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3328 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Version,
3329 { "Version", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3330 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs,
3331 { "WriteAuthorityNs", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.WriteAuthorityNs", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3332 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0,
3333 { "Extension0", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension0", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3334 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1,
3335 { "Extension1", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3336 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2,
3337 { "Extension2", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3338 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3,
3339 { "Extension3", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension3", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3340 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4,
3341 { "Extension4", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension4", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3342 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5,
3343 { "Extension5", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.extension5", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3344 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array,
3345 { "Reserve Array", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.reserve_array", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3346 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2,
3347 { "Reserve Array2", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.reserve_array2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3348 { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserved0,
3349 { "Reserved0", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.reserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3350 { &hf_dnsserver_DNS_RPC_VERSION_OSMajorVersion,
3351 { "OSMajorVersion", "dnsserver.DNS_RPC_VERSION.OSMajorVersion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3352 { &hf_dnsserver_DNS_RPC_VERSION_OSMinorVersion,
3353 { "OSMinorVersion", "dnsserver.DNS_RPC_VERSION.OSMinorVersion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
3354 { &hf_dnsserver_DNS_RPC_VERSION_ServicePackVersion,
3355 { "ServicePackVersion", "dnsserver.DNS_RPC_VERSION.ServicePackVersion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3356 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA,
3357 { "DNS RPC VIEW ADDITIONAL DATA", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ADDITIONAL_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA_tfs), ( 0x00000010 ), NULL, HFILL }},
3358 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA,
3359 { "DNS RPC VIEW AUTHORITY DATA", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_AUTHORITY_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA_tfs), ( 0x00000001 ), NULL, HFILL }},
3360 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA,
3361 { "DNS RPC VIEW CACHE DATA", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_CACHE_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA_tfs), ( 0x00000002 ), NULL, HFILL }},
3362 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA,
3363 { "DNS RPC VIEW GLUE DATA", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_GLUE_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA_tfs), ( 0x00000004 ), NULL, HFILL }},
3364 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN,
3365 { "DNS RPC VIEW NO CHILDREN", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_NO_CHILDREN", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN_tfs), ( 0x00010000 ), NULL, HFILL }},
3366 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN,
3367 { "DNS RPC VIEW ONLY CHILDREN", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ONLY_CHILDREN", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN_tfs), ( 0x00020000 ), NULL, HFILL }},
3368 { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA,
3369 { "DNS RPC VIEW ROOT HINT DATA", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ROOT_HINT_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA_tfs), ( 0x00000008 ), NULL, HFILL }},
3370 { &hf_dnsserver_DnssrvEnumRecords2_buffer_length,
3371 { "Buffer Length", "dnsserver.DnssrvEnumRecords2.buffer_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3372 { &hf_dnsserver_DnssrvEnumRecords2_client_version,
3373 { "Client Version", "dnsserver.DnssrvEnumRecords2.client_version", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
3374 { &hf_dnsserver_DnssrvEnumRecords2_filter_start,
3375 { "Filter Start", "dnsserver.DnssrvEnumRecords2.filter_start", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3376 { &hf_dnsserver_DnssrvEnumRecords2_filter_stop,
3377 { "Filter Stop", "dnsserver.DnssrvEnumRecords2.filter_stop", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3378 { &hf_dnsserver_DnssrvEnumRecords2_node_name,
3379 { "Node Name", "dnsserver.DnssrvEnumRecords2.node_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3380 { &hf_dnsserver_DnssrvEnumRecords2_record_buffer,
3381 { "Record Buffer", "dnsserver.DnssrvEnumRecords2.record_buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3382 { &hf_dnsserver_DnssrvEnumRecords2_record_buffer_,
3383 { "Subcontext length", "dnsserver.DnssrvEnumRecords2.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3384 { &hf_dnsserver_DnssrvEnumRecords2_record_type,
3385 { "Record Type", "dnsserver.DnssrvEnumRecords2.record_type", FT_UINT16, BASE_DEC, VALS(dnsserver_DNS_RECORD_TYPE_vals), 0, NULL, HFILL }},
3386 { &hf_dnsserver_DnssrvEnumRecords2_select_flag,
3387 { "Select Flag", "dnsserver.DnssrvEnumRecords2.select_flag", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
3388 { &hf_dnsserver_DnssrvEnumRecords2_server_name,
3389 { "Server Name", "dnsserver.DnssrvEnumRecords2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3390 { &hf_dnsserver_DnssrvEnumRecords2_setting_flags,
3391 { "Setting Flags", "dnsserver.DnssrvEnumRecords2.setting_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3392 { &hf_dnsserver_DnssrvEnumRecords2_start_child,
3393 { "Start Child", "dnsserver.DnssrvEnumRecords2.start_child", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3394 { &hf_dnsserver_DnssrvEnumRecords2_zone,
3395 { "Zone", "dnsserver.DnssrvEnumRecords2.zone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3396 { &hf_dnsserver_DnssrvQuery2_client_version,
3397 { "Client Version", "dnsserver.DnssrvQuery2.client_version", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
3398 { &hf_dnsserver_DnssrvQuery2_data,
3399 { "Data", "dnsserver.DnssrvQuery2.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
3400 { &hf_dnsserver_DnssrvQuery2_operation,
3401 { "Operation", "dnsserver.DnssrvQuery2.operation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3402 { &hf_dnsserver_DnssrvQuery2_server_name,
3403 { "Server Name", "dnsserver.DnssrvQuery2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3404 { &hf_dnsserver_DnssrvQuery2_setting_flags,
3405 { "Setting Flags", "dnsserver.DnssrvQuery2.setting_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3406 { &hf_dnsserver_DnssrvQuery2_type_id,
3407 { "Type Id", "dnsserver.DnssrvQuery2.type_id", FT_UINT32, BASE_DEC, VALS(dnsserver_DnssrvRpcTypeId_vals), 0, NULL, HFILL }},
3408 { &hf_dnsserver_DnssrvQuery2_zone,
3409 { "Zone", "dnsserver.DnssrvQuery2.zone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
3410 { &hf_dnsserver_IP4_ARRAY_AddrArray,
3411 { "AddrArray", "dnsserver.IP4_ARRAY.AddrArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3412 { &hf_dnsserver_IP4_ARRAY_AddrCount,
3413 { "AddrCount", "dnsserver.IP4_ARRAY.AddrCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
3414 { &hf_dnsserver_opnum,
3415 { "Operation", "dnsserver.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
3416 { &hf_dnsserver_status,
3417 { "NT Error", "dnsserver.status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
3421 static int *ett[] = {
3422 &ett_dcerpc_dnsserver,
3423 &ett_dnsserver_DNS_RPC_VERSION,
3424 &ett_dnsserver_DNS_LOG_LEVELS,
3425 &ett_dnsserver_DNS_RPC_PROTOCOLS,
3426 &ett_dnsserver_DNS_SELECT_FLAGS,
3427 &ett_dnsserver_DNS_RPC_NODE_FLAGS,
3428 &ett_dnsserver_DNS_RPC_NAME,
3429 &ett_dnsserver_DNS_RPC_RECORD_NODE_NAME,
3430 &ett_dnsserver_DNS_RPC_RECORD_UNION,
3431 &ett_dnsserver_DNS_RPC_RECORD,
3432 &ett_dnsserver_DNS_RPC_NODE,
3433 &ett_dnsserver_IP4_ARRAY,
3434 &ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET,
3435 &ett_dnsserver_DNSSRV_RPC_UNION,
3436 &ett_dnsserver_DNS_RECORD_BUFFER,
3439 proto_dcerpc_dnsserver = proto_register_protocol("DNS Server", "DNSSERVER", "dnsserver");
3440 proto_register_field_array(proto_dcerpc_dnsserver, hf, array_length (hf));
3441 proto_register_subtree_array(ett, array_length(ett));
3444 void proto_reg_handoff_dcerpc_dnsserver(void)
3446 dcerpc_init_uuid(proto_dcerpc_dnsserver, ett_dcerpc_dnsserver,
3447 &uuid_dcerpc_dnsserver, ver_dcerpc_dnsserver,
3448 dnsserver_dissectors, hf_dnsserver_opnum);