2 This filter was automatically generated
3 from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.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 http://wiki.wireshark.org/Pidl
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
24 #include <epan/packet.h>
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-dns.h"
31 /* Ett declarations */
32 static gint ett_dcerpc_dns = -1;
33 static gint ett_dns_dns_operation = -1;
34 static gint ett_dns_dns_name_question = -1;
35 static gint ett_dns_dns_rdata_data = -1;
36 static gint ett_dns_dns_soa_record = -1;
37 static gint ett_dns_dns_hinfo_record = -1;
38 static gint ett_dns_dns_mx_record = -1;
39 static gint ett_dns_dns_txt_record = -1;
40 static gint ett_dns_dns_rp_record = -1;
41 static gint ett_dns_dns_srv_record = -1;
42 static gint ett_dns_dns_opt_record = -1;
43 static gint ett_dns_dns_tkey_record = -1;
44 static gint ett_dns_dns_tsig_record = -1;
45 static gint ett_dns_dns_fake_tsig_rec = -1;
46 static gint ett_dns_dns_rdata = -1;
47 static gint ett_dns_dns_res_rec = -1;
48 static gint ett_dns_dns_name_packet = -1;
51 /* Header field declarations */
52 static gint hf_dns_dns_hinfo_record_cpu = -1;
53 static gint hf_dns_decode_dns_name_packet_packet = -1;
54 static gint hf_dns_dns_srv_record_target = -1;
55 static gint hf_dns_dns_soa_record_minimum = -1;
56 static gint hf_dns_dns_srv_record_priority = -1;
57 static gint hf_dns_dns_operation_DNS_FLAG_REPLY = -1;
58 static gint hf_dns_opnum = -1;
59 static gint hf_dns_dns_srv_record_weight = -1;
60 static gint hf_dns_dns_operation_DNS_FLAG_BROADCAST = -1;
61 static gint hf_dns_dns_tsig_record_algorithm_name = -1;
62 static gint hf_dns_dns_tkey_record_inception = -1;
63 static gint hf_dns_dns_res_rec_rdata = -1;
64 static gint hf_dns_dns_tsig_record_error = -1;
65 static gint hf_dns_dns_rdata_tkey_record = -1;
66 static gint hf_dns_dns_tsig_record_original_id = -1;
67 static gint hf_dns_dns_name_packet_arcount = -1;
68 static gint hf_dns_dns_fake_tsig_rec_original_id = -1;
69 static gint hf_dns_dns_fake_tsig_rec_time = -1;
70 static gint hf_dns_dns_rdata_mx_record = -1;
71 static gint hf_dns_dns_tsig_record_mac = -1;
72 static gint hf_dns_dns_tsig_record_time_prefix = -1;
73 static gint hf_dns_dns_res_rec_length = -1;
74 static gint hf_dns_dns_rdata_soa_record = -1;
75 static gint hf_dns_dns_fake_tsig_rec_error = -1;
76 static gint hf_dns_dns_mx_record_preference = -1;
77 static gint hf_dns_dns_soa_record_retry = -1;
78 static gint hf_dns_dns_rp_record_mbox = -1;
79 static gint hf_dns_dns_fake_tsig_rec_ttl = -1;
80 static gint hf_dns_dns_fake_tsig_rec_name = -1;
81 static gint hf_dns_dns_tsig_record_fudge = -1;
82 static gint hf_dns_dns_res_rec_rr_type = -1;
83 static gint hf_dns_dns_operation_DNS_RCODE = -1;
84 static gint hf_dns_dns_rdata_ipv4_record = -1;
85 static gint hf_dns_dns_fake_tsig_rec_other_data = -1;
86 static gint hf_dns_dns_fake_tsig_rec_rr_class = -1;
87 static gint hf_dns_dns_hinfo_record_os = -1;
88 static gint hf_dns_dns_name_packet_additional = -1;
89 static gint hf_dns_dns_srv_record_port = -1;
90 static gint hf_dns_dns_name_packet_qdcount = -1;
91 static gint hf_dns_dns_rdata_data_data = -1;
92 static gint hf_dns_dns_rdata_ptr_record = -1;
93 static gint hf_dns_dns_fake_tsig_rec_algorithm_name = -1;
94 static gint hf_dns_dns_rdata_rp_record = -1;
95 static gint hf_dns_dns_soa_record_mname = -1;
96 static gint hf_dns_dns_tsig_record_mac_size = -1;
97 static gint hf_dns_dns_fake_tsig_rec_time_prefix = -1;
98 static gint hf_dns_dns_res_rec_ttl = -1;
99 static gint hf_dns_dns_soa_record_serial = -1;
100 static gint hf_dns_dns_tsig_record_time = -1;
101 static gint hf_dns_dns_soa_record_rname = -1;
102 static gint hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED = -1;
103 static gint hf_dns_dns_tkey_record_error = -1;
104 static gint hf_dns_dns_hinfo_record_os_length = -1;
105 static gint hf_dns_dns_tsig_record_other_data = -1;
106 static gint hf_dns_dns_txt_record_length = -1;
107 static gint hf_dns_dns_operation_DNS_OPCODE = -1;
108 static gint hf_dns_dns_soa_record_refresh = -1;
109 static gint hf_dns_dns_rdata_ipv6_record = -1;
110 static gint hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE = -1;
111 static gint hf_dns_dns_fake_tsig_rec_fudge = -1;
112 static gint hf_dns_dns_rdata_opt_record = -1;
113 static gint hf_dns_dns_rdata_tsig_record = -1;
114 static gint hf_dns_dns_tkey_record_other_size = -1;
115 static gint hf_dns_dns_name_packet_nscount = -1;
116 static gint hf_dns_dns_res_rec_name = -1;
117 static gint hf_dns_dns_name_packet_nsrecs = -1;
118 static gint hf_dns_dns_tkey_record_expiration = -1;
119 static gint hf_dns_dns_hinfo_record_cpu_length = -1;
120 static gint hf_dns_dns_name_question_question_type = -1;
121 static gint hf_dns_dns_txt_record_txt = -1;
122 static gint hf_dns_dns_tkey_record_other_data = -1;
123 static gint hf_dns_dns_tkey_record_algorithm = -1;
124 static gint hf_dns_dns_rdata_srv_record = -1;
125 static gint hf_dns_dns_tkey_record_key_size = -1;
126 static gint hf_dns_dns_tkey_record_key_data = -1;
127 static gint hf_dns_dns_rdata_data_length = -1;
128 static gint hf_dns_dns_name_packet_questions = -1;
129 static gint hf_dns_dns_fake_tsig_rec_other_size = -1;
130 static gint hf_dns_dns_rdata_hinfo_record = -1;
131 static gint hf_dns_dns_name_packet_answers = -1;
132 static gint hf_dns_dns_res_rec_unexpected = -1;
133 static gint hf_dns_dns_soa_record_expire = -1;
134 static gint hf_dns_dns_mx_record_exchange = -1;
135 static gint hf_dns_dns_rdata_ns_record = -1;
136 static gint hf_dns_dns_name_question_question_class = -1;
137 static gint hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL = -1;
138 static gint hf_dns_dns_opt_record_option_code = -1;
139 static gint hf_dns_dns_tsig_record_other_size = -1;
140 static gint hf_dns_dns_rdata_cname_record = -1;
141 static gint hf_dns_dns_operation_DNS_FLAG_TRUNCATION = -1;
142 static gint hf_dns_dns_name_question_name = -1;
143 static gint hf_dns_dns_rdata_txt_record = -1;
144 static gint hf_dns_dns_name_packet_operation = -1;
145 static gint hf_dns_dns_name_packet_id = -1;
146 static gint hf_dns_dns_res_rec_rr_class = -1;
147 static gint hf_dns_dns_rp_record_txt = -1;
148 static gint hf_dns_dns_opt_record_option_length = -1;
149 static gint hf_dns_dns_opt_record_option_data = -1;
150 static gint hf_dns_dns_name_packet_ancount = -1;
151 static gint hf_dns_dns_tkey_record_mode = -1;
153 static gint proto_dcerpc_dns = -1;
154 /* Version information */
157 static e_uuid_t uuid_dcerpc_dns = {
158 0xa047c001, 0x5f22, 0x40b0,
159 { 0x9d, 0x52, 0x70, 0x42, 0xc4, 0x3f, 0x71, 0x1a }
161 static guint16 ver_dcerpc_dns = 0;
163 static const true_false_string dns_operation_DNS_RCODE_tfs = {
165 "DNS_RCODE is NOT SET",
167 static const true_false_string dns_operation_DNS_FLAG_BROADCAST_tfs = {
168 "DNS_FLAG_BROADCAST is SET",
169 "DNS_FLAG_BROADCAST is NOT SET",
171 static const true_false_string dns_operation_DNS_FLAG_RECURSION_AVAIL_tfs = {
172 "DNS_FLAG_RECURSION_AVAIL is SET",
173 "DNS_FLAG_RECURSION_AVAIL is NOT SET",
175 static const true_false_string dns_operation_DNS_FLAG_RECURSION_DESIRED_tfs = {
176 "DNS_FLAG_RECURSION_DESIRED is SET",
177 "DNS_FLAG_RECURSION_DESIRED is NOT SET",
179 static const true_false_string dns_operation_DNS_FLAG_TRUNCATION_tfs = {
180 "DNS_FLAG_TRUNCATION is SET",
181 "DNS_FLAG_TRUNCATION is NOT SET",
183 static const true_false_string dns_operation_DNS_FLAG_AUTHORITATIVE_tfs = {
184 "DNS_FLAG_AUTHORITATIVE is SET",
185 "DNS_FLAG_AUTHORITATIVE is NOT SET",
187 static const true_false_string dns_operation_DNS_OPCODE_tfs = {
189 "DNS_OPCODE is NOT SET",
191 static const true_false_string dns_operation_DNS_FLAG_REPLY_tfs = {
192 "DNS_FLAG_REPLY is SET",
193 "DNS_FLAG_REPLY is NOT SET",
195 const value_string dns_dns_opcode_vals[] = {
196 { DNS_OPCODE_QUERY, "DNS_OPCODE_QUERY" },
197 { DNS_OPCODE_IQUERY, "DNS_OPCODE_IQUERY" },
198 { DNS_OPCODE_STATUS, "DNS_OPCODE_STATUS" },
199 { DNS_OPCODE_UPDATE, "DNS_OPCODE_UPDATE" },
200 { DNS_OPCODE_RELEASE, "DNS_OPCODE_RELEASE" },
201 { DNS_OPCODE_WACK, "DNS_OPCODE_WACK" },
202 { DNS_OPCODE_REFRESH, "DNS_OPCODE_REFRESH" },
203 { DNS_OPCODE_REFRESH2, "DNS_OPCODE_REFRESH2" },
204 { DNS_OPCODE_MULTI_HOME_REG, "DNS_OPCODE_MULTI_HOME_REG" },
207 const value_string dns_dns_rcode_vals[] = {
208 { DNS_RCODE_OK, "DNS_RCODE_OK" },
209 { DNS_RCODE_FORMERR, "DNS_RCODE_FORMERR" },
210 { DNS_RCODE_SERVFAIL, "DNS_RCODE_SERVFAIL" },
211 { DNS_RCODE_NXDOMAIN, "DNS_RCODE_NXDOMAIN" },
212 { DNS_RCODE_NOTIMP, "DNS_RCODE_NOTIMP" },
213 { DNS_RCODE_REFUSED, "DNS_RCODE_REFUSED" },
214 { DNS_RCODE_YXDOMAIN, "DNS_RCODE_YXDOMAIN" },
215 { DNS_RCODE_YXRRSET, "DNS_RCODE_YXRRSET" },
216 { DNS_RCODE_NXRRSET, "DNS_RCODE_NXRRSET" },
217 { DNS_RCODE_NOTAUTH, "DNS_RCODE_NOTAUTH" },
218 { DNS_RCODE_NOTZONE, "DNS_RCODE_NOTZONE" },
219 { DNS_RCODE_BADSIG, "DNS_RCODE_BADSIG" },
220 { DNS_RCODE_BADKEY, "DNS_RCODE_BADKEY" },
221 { DNS_RCODE_BADTIME, "DNS_RCODE_BADTIME" },
222 { DNS_RCODE_BADMODE, "DNS_RCODE_BADMODE" },
223 { DNS_RCODE_BADNAME, "DNS_RCODE_BADNAME" },
224 { DNS_RCODE_BADALG, "DNS_RCODE_BADALG" },
227 const value_string dns_dns_qclass_vals[] = {
228 { DNS_QCLASS_IN, "DNS_QCLASS_IN" },
229 { DNS_QCLASS_NONE, "DNS_QCLASS_NONE" },
230 { DNS_QCLASS_ANY, "DNS_QCLASS_ANY" },
233 const value_string dns_dns_qtype_vals[] = {
234 { DNS_QTYPE_ZERO, "DNS_QTYPE_ZERO" },
235 { DNS_QTYPE_A, "DNS_QTYPE_A" },
236 { DNS_QTYPE_NS, "DNS_QTYPE_NS" },
237 { DNS_QTYPE_MD, "DNS_QTYPE_MD" },
238 { DNS_QTYPE_MF, "DNS_QTYPE_MF" },
239 { DNS_QTYPE_CNAME, "DNS_QTYPE_CNAME" },
240 { DNS_QTYPE_SOA, "DNS_QTYPE_SOA" },
241 { DNS_QTYPE_MB, "DNS_QTYPE_MB" },
242 { DNS_QTYPE_MG, "DNS_QTYPE_MG" },
243 { DNS_QTYPE_MR, "DNS_QTYPE_MR" },
244 { DNS_QTYPE_NULL, "DNS_QTYPE_NULL" },
245 { DNS_QTYPE_WKS, "DNS_QTYPE_WKS" },
246 { DNS_QTYPE_PTR, "DNS_QTYPE_PTR" },
247 { DNS_QTYPE_HINFO, "DNS_QTYPE_HINFO" },
248 { DNS_QTYPE_MINFO, "DNS_QTYPE_MINFO" },
249 { DNS_QTYPE_MX, "DNS_QTYPE_MX" },
250 { DNS_QTYPE_TXT, "DNS_QTYPE_TXT" },
251 { DNS_QTYPE_RP, "DNS_QTYPE_RP" },
252 { DNS_QTYPE_AFSDB, "DNS_QTYPE_AFSDB" },
253 { DNS_QTYPE_X25, "DNS_QTYPE_X25" },
254 { DNS_QTYPE_ISDN, "DNS_QTYPE_ISDN" },
255 { DNS_QTYPE_RT, "DNS_QTYPE_RT" },
256 { DNS_QTYPE_SIG, "DNS_QTYPE_SIG" },
257 { DNS_QTYPE_KEY, "DNS_QTYPE_KEY" },
258 { DNS_QTYPE_AAAA, "DNS_QTYPE_AAAA" },
259 { DNS_QTYPE_LOC, "DNS_QTYPE_LOC" },
260 { DNS_QTYPE_NXT, "DNS_QTYPE_NXT" },
261 { DNS_QTYPE_NETBIOS, "DNS_QTYPE_NETBIOS" },
262 { DNS_QTYPE_SRV, "DNS_QTYPE_SRV" },
263 { DNS_QTYPE_ATMA, "DNS_QTYPE_ATMA" },
264 { DNS_QTYPE_NAPTR, "DNS_QTYPE_NAPTR" },
265 { DNS_QTYPE_DNAME, "DNS_QTYPE_DNAME" },
266 { DNS_QTYPE_OPT, "DNS_QTYPE_OPT" },
267 { DNS_QTYPE_DS, "DNS_QTYPE_DS" },
268 { DNS_QTYPE_RRSIG, "DNS_QTYPE_RRSIG" },
269 { DNS_QTYPE_NSEC, "DNS_QTYPE_NSEC" },
270 { DNS_QTYPE_DNSKEY, "DNS_QTYPE_DNSKEY" },
271 { DNS_QTYPE_DHCID, "DNS_QTYPE_DHCID" },
272 { DNS_QTYPE_TKEY, "DNS_QTYPE_TKEY" },
273 { DNS_QTYPE_TSIG, "DNS_QTYPE_TSIG" },
274 { DNS_QTYPE_AXFR, "DNS_QTYPE_AXFR" },
275 { DNS_QTYPE_MAILB, "DNS_QTYPE_MAILB" },
276 { DNS_QTYPE_MAILA, "DNS_QTYPE_MAILA" },
277 { DNS_QTYPE_ALL, "DNS_QTYPE_ALL" },
280 const value_string dns_dns_tkey_mode_vals[] = {
281 { DNS_TKEY_MODE_NULL, "DNS_TKEY_MODE_NULL" },
282 { DNS_TKEY_MODE_SERVER, "DNS_TKEY_MODE_SERVER" },
283 { DNS_TKEY_MODE_DH, "DNS_TKEY_MODE_DH" },
284 { DNS_TKEY_MODE_GSSAPI, "DNS_TKEY_MODE_GSSAPI" },
285 { DNS_TKEY_MODE_CLIENT, "DNS_TKEY_MODE_CLIENT" },
286 { DNS_TKEY_MODE_DELETE, "DNS_TKEY_MODE_DELETE" },
287 { DNS_TKEY_MODE_LAST, "DNS_TKEY_MODE_LAST" },
290 static int dns_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
291 static int dns_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
292 static int dns_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
293 static int dns_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
294 static int dns_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
295 static int dns_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
296 static int dns_dissect_element_soa_record_mname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
297 static int dns_dissect_element_soa_record_rname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
298 static int dns_dissect_element_soa_record_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
299 static int dns_dissect_element_soa_record_refresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
300 static int dns_dissect_element_soa_record_retry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
301 static int dns_dissect_element_soa_record_expire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
302 static int dns_dissect_element_soa_record_minimum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
303 static int dns_dissect_element_hinfo_record_cpu_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
304 static int dns_dissect_element_hinfo_record_cpu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
305 static int dns_dissect_element_hinfo_record_cpu_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
306 static int dns_dissect_element_hinfo_record_os_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
307 static int dns_dissect_element_hinfo_record_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
308 static int dns_dissect_element_hinfo_record_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
309 static int dns_dissect_element_mx_record_preference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
310 static int dns_dissect_element_mx_record_exchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
311 static int dns_dissect_element_txt_record_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
312 static int dns_dissect_element_txt_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
313 static int dns_dissect_element_txt_record_txt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
314 static int dns_dissect_element_rp_record_mbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
315 static int dns_dissect_element_rp_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
316 static int dns_dissect_element_srv_record_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
317 static int dns_dissect_element_srv_record_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
318 static int dns_dissect_element_srv_record_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
319 static int dns_dissect_element_srv_record_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
320 static int dns_dissect_element_opt_record_option_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
321 static int dns_dissect_element_opt_record_option_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
322 static int dns_dissect_element_opt_record_option_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
323 static int dns_dissect_element_opt_record_option_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
324 static int dns_dissect_element_tkey_record_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
325 static int dns_dissect_element_tkey_record_inception(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
326 static int dns_dissect_element_tkey_record_expiration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
327 static int dns_dissect_element_tkey_record_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
328 static int dns_dissect_element_tkey_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
329 static int dns_dissect_element_tkey_record_key_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
330 static int dns_dissect_element_tkey_record_key_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
331 static int dns_dissect_element_tkey_record_key_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
332 static int dns_dissect_element_tkey_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
333 static int dns_dissect_element_tkey_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
334 static int dns_dissect_element_tkey_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
335 static int dns_dissect_element_tsig_record_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
336 static int dns_dissect_element_tsig_record_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
337 static int dns_dissect_element_tsig_record_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
338 static int dns_dissect_element_tsig_record_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
339 static int dns_dissect_element_tsig_record_mac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
340 static int dns_dissect_element_tsig_record_mac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
341 static int dns_dissect_element_tsig_record_mac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
342 static int dns_dissect_element_tsig_record_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
343 static int dns_dissect_element_tsig_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
344 static int dns_dissect_element_tsig_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
345 static int dns_dissect_element_tsig_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
346 static int dns_dissect_element_tsig_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
347 static int dns_dissect_element_fake_tsig_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
348 static int dns_dissect_element_fake_tsig_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
349 static int dns_dissect_element_fake_tsig_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
350 static int dns_dissect_element_fake_tsig_rec_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
351 static int dns_dissect_element_fake_tsig_rec_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
352 static int dns_dissect_element_fake_tsig_rec_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
353 static int dns_dissect_element_fake_tsig_rec_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
354 static int dns_dissect_element_fake_tsig_rec_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
355 static int dns_dissect_element_fake_tsig_rec_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
356 static int dns_dissect_element_fake_tsig_rec_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
357 static int dns_dissect_element_fake_tsig_rec_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
358 static int dns_dissect_element_fake_tsig_rec_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
359 static int dns_dissect_element_rdata_ipv4_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
360 static int dns_dissect_element_rdata_ns_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
361 static int dns_dissect_element_rdata_cname_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
362 static int dns_dissect_element_rdata_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
363 static int dns_dissect_element_rdata_ptr_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
364 static int dns_dissect_element_rdata_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
365 static int dns_dissect_element_rdata_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
366 static int dns_dissect_element_rdata_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
367 static int dns_dissect_element_rdata_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
368 static int dns_dissect_element_rdata_ipv6_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
369 static int dns_dissect_element_rdata_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
370 static int dns_dissect_element_rdata_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
371 static int dns_dissect_element_rdata_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
372 static int dns_dissect_element_rdata_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
373 static int dns_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
374 static int dns_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
375 static int dns_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
376 static int dns_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
377 static int dns_dissect_element_res_rec_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
378 static int dns_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
379 static int dns_dissect_element_res_rec_unexpected(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
380 static int dns_dissect_element_name_packet_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
381 static int dns_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
382 static int dns_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
383 static int dns_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
384 static int dns_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
385 static int dns_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
386 static int dns_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
387 static int dns_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
388 static int dns_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
389 static int dns_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
390 static int dns_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
391 static int dns_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
392 static int dns_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
393 static int dns_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
394 static int dns_dissect_element_decode_dns_name_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
398 /* IDL: DNS_RCODE = 0x000F , */
399 /* IDL: DNS_FLAG_BROADCAST = 0x0010 , */
400 /* IDL: DNS_FLAG_RECURSION_AVAIL = 0x0080 , */
401 /* IDL: DNS_FLAG_RECURSION_DESIRED = 0x0100 , */
402 /* IDL: DNS_FLAG_TRUNCATION = 0x0200 , */
403 /* IDL: DNS_FLAG_AUTHORITATIVE = 0x0400 , */
404 /* IDL: DNS_OPCODE = 0x7800 , */
405 /* IDL: DNS_FLAG_REPLY = 0x8000 , */
409 dns_dissect_bitmap_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
411 proto_item *item = NULL;
412 proto_tree *tree = NULL;
418 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
419 tree = proto_item_add_subtree(item,ett_dns_dns_operation);
422 offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
423 proto_item_append_text(item, ": ");
426 proto_item_append_text(item, "(No values set)");
428 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_RCODE, tvb, offset-2, 2, flags);
429 if (flags&( 0x000F )){
430 proto_item_append_text(item, "DNS_RCODE");
431 if (flags & (~( 0x000F )))
432 proto_item_append_text(item, ", ");
434 flags&=(~( 0x000F ));
436 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_BROADCAST, tvb, offset-2, 2, flags);
437 if (flags&( 0x0010 )){
438 proto_item_append_text(item, "DNS_FLAG_BROADCAST");
439 if (flags & (~( 0x0010 )))
440 proto_item_append_text(item, ", ");
442 flags&=(~( 0x0010 ));
444 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL, tvb, offset-2, 2, flags);
445 if (flags&( 0x0080 )){
446 proto_item_append_text(item, "DNS_FLAG_RECURSION_AVAIL");
447 if (flags & (~( 0x0080 )))
448 proto_item_append_text(item, ", ");
450 flags&=(~( 0x0080 ));
452 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED, tvb, offset-2, 2, flags);
453 if (flags&( 0x0100 )){
454 proto_item_append_text(item, "DNS_FLAG_RECURSION_DESIRED");
455 if (flags & (~( 0x0100 )))
456 proto_item_append_text(item, ", ");
458 flags&=(~( 0x0100 ));
460 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_TRUNCATION, tvb, offset-2, 2, flags);
461 if (flags&( 0x0200 )){
462 proto_item_append_text(item, "DNS_FLAG_TRUNCATION");
463 if (flags & (~( 0x0200 )))
464 proto_item_append_text(item, ", ");
466 flags&=(~( 0x0200 ));
468 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE, tvb, offset-2, 2, flags);
469 if (flags&( 0x0400 )){
470 proto_item_append_text(item, "DNS_FLAG_AUTHORITATIVE");
471 if (flags & (~( 0x0400 )))
472 proto_item_append_text(item, ", ");
474 flags&=(~( 0x0400 ));
476 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_OPCODE, tvb, offset-2, 2, flags);
477 if (flags&( 0x7800 )){
478 proto_item_append_text(item, "DNS_OPCODE");
479 if (flags & (~( 0x7800 )))
480 proto_item_append_text(item, ", ");
482 flags&=(~( 0x7800 ));
484 proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_REPLY, tvb, offset-2, 2, flags);
485 if (flags&( 0x8000 )){
486 proto_item_append_text(item, "DNS_FLAG_REPLY");
487 if (flags & (~( 0x8000 )))
488 proto_item_append_text(item, ", ");
490 flags&=(~( 0x8000 ));
493 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
501 /* IDL: DNS_OPCODE_QUERY=(0x0<<11), */
502 /* IDL: DNS_OPCODE_IQUERY=(0x1<<11), */
503 /* IDL: DNS_OPCODE_STATUS=(0x2<<11), */
504 /* IDL: DNS_OPCODE_UPDATE=(0x5<<11), */
505 /* IDL: DNS_OPCODE_RELEASE=(0x6<<11), */
506 /* IDL: DNS_OPCODE_WACK=(0x7<<11), */
507 /* IDL: DNS_OPCODE_REFRESH=(0x8<<11), */
508 /* IDL: DNS_OPCODE_REFRESH2=(0x9<<11), */
509 /* IDL: DNS_OPCODE_MULTI_HOME_REG=(0xf<<11), */
513 dns_dissect_enum_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
515 guint1632 parameter=0;
517 parameter=(guint1632)*param;
519 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
521 *param=(guint32)parameter;
528 /* IDL: DNS_RCODE_OK=0x00, */
529 /* IDL: DNS_RCODE_FORMERR=0x01, */
530 /* IDL: DNS_RCODE_SERVFAIL=0x02, */
531 /* IDL: DNS_RCODE_NXDOMAIN=0x03, */
532 /* IDL: DNS_RCODE_NOTIMP=0x04, */
533 /* IDL: DNS_RCODE_REFUSED=0x05, */
534 /* IDL: DNS_RCODE_YXDOMAIN=0x06, */
535 /* IDL: DNS_RCODE_YXRRSET=0x07, */
536 /* IDL: DNS_RCODE_NXRRSET=0x08, */
537 /* IDL: DNS_RCODE_NOTAUTH=0x09, */
538 /* IDL: DNS_RCODE_NOTZONE=0x0A, */
539 /* IDL: DNS_RCODE_BADSIG=0x10, */
540 /* IDL: DNS_RCODE_BADKEY=0x11, */
541 /* IDL: DNS_RCODE_BADTIME=0x12, */
542 /* IDL: DNS_RCODE_BADMODE=0x13, */
543 /* IDL: DNS_RCODE_BADNAME=0x14, */
544 /* IDL: DNS_RCODE_BADALG=0x15, */
548 dns_dissect_enum_rcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
550 guint1632 parameter=0;
552 parameter=(guint1632)*param;
554 offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
556 *param=(guint32)parameter;
563 /* IDL: DNS_QCLASS_IN=0x0001, */
564 /* IDL: DNS_QCLASS_NONE=0x00FE, */
565 /* IDL: DNS_QCLASS_ANY=0x00FF, */
569 dns_dissect_enum_qclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
573 parameter=(guint16)*param;
575 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
577 *param=(guint32)parameter;
584 /* IDL: DNS_QTYPE_ZERO=0x0000, */
585 /* IDL: DNS_QTYPE_A=0x0001, */
586 /* IDL: DNS_QTYPE_NS=0x0002, */
587 /* IDL: DNS_QTYPE_MD=0x0003, */
588 /* IDL: DNS_QTYPE_MF=0x0004, */
589 /* IDL: DNS_QTYPE_CNAME=0x0005, */
590 /* IDL: DNS_QTYPE_SOA=0x0006, */
591 /* IDL: DNS_QTYPE_MB=0x0007, */
592 /* IDL: DNS_QTYPE_MG=0x0008, */
593 /* IDL: DNS_QTYPE_MR=0x0009, */
594 /* IDL: DNS_QTYPE_NULL=0x000A, */
595 /* IDL: DNS_QTYPE_WKS=0x000B, */
596 /* IDL: DNS_QTYPE_PTR=0x000C, */
597 /* IDL: DNS_QTYPE_HINFO=0x000D, */
598 /* IDL: DNS_QTYPE_MINFO=0x000E, */
599 /* IDL: DNS_QTYPE_MX=0x000F, */
600 /* IDL: DNS_QTYPE_TXT=0x0010, */
601 /* IDL: DNS_QTYPE_RP=0x0011, */
602 /* IDL: DNS_QTYPE_AFSDB=0x0012, */
603 /* IDL: DNS_QTYPE_X25=0x0013, */
604 /* IDL: DNS_QTYPE_ISDN=0x0014, */
605 /* IDL: DNS_QTYPE_RT=0x0015, */
606 /* IDL: DNS_QTYPE_SIG=0x0018, */
607 /* IDL: DNS_QTYPE_KEY=0x0019, */
608 /* IDL: DNS_QTYPE_AAAA=0x001C, */
609 /* IDL: DNS_QTYPE_LOC=0x001D, */
610 /* IDL: DNS_QTYPE_NXT=0x001E, */
611 /* IDL: DNS_QTYPE_NETBIOS=0x0020, */
612 /* IDL: DNS_QTYPE_SRV=0x0021, */
613 /* IDL: DNS_QTYPE_ATMA=0x0022, */
614 /* IDL: DNS_QTYPE_NAPTR=0x0023, */
615 /* IDL: DNS_QTYPE_DNAME=0x0027, */
616 /* IDL: DNS_QTYPE_OPT=0x0029, */
617 /* IDL: DNS_QTYPE_DS=0x002B, */
618 /* IDL: DNS_QTYPE_RRSIG=0x002E, */
619 /* IDL: DNS_QTYPE_NSEC=0x002F, */
620 /* IDL: DNS_QTYPE_DNSKEY=0x0030, */
621 /* IDL: DNS_QTYPE_DHCID=0x0031, */
622 /* IDL: DNS_QTYPE_TKEY=0x00F9, */
623 /* IDL: DNS_QTYPE_TSIG=0x00FA, */
624 /* IDL: DNS_QTYPE_AXFR=0x00FC, */
625 /* IDL: DNS_QTYPE_MAILB=0x00FD, */
626 /* IDL: DNS_QTYPE_MAILA=0x00FE, */
627 /* IDL: DNS_QTYPE_ALL=0x00FF, */
631 dns_dissect_enum_qtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
635 parameter=(guint16)*param;
637 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
639 *param=(guint32)parameter;
646 /* IDL: DNS_TKEY_MODE_NULL=0x0000, */
647 /* IDL: DNS_TKEY_MODE_SERVER=0x0001, */
648 /* IDL: DNS_TKEY_MODE_DH=0x0002, */
649 /* IDL: DNS_TKEY_MODE_GSSAPI=0x0003, */
650 /* IDL: DNS_TKEY_MODE_CLIENT=0x0004, */
651 /* IDL: DNS_TKEY_MODE_DELETE=0x0005, */
652 /* IDL: DNS_TKEY_MODE_LAST=0xFFFF, */
656 dns_dissect_enum_tkey_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
660 parameter=(guint16)*param;
662 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);
664 *param=(guint32)parameter;
671 /* IDL: dns_string name; */
672 /* IDL: dns_qtype question_type; */
673 /* IDL: dns_qclass question_class; */
677 dns_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
679 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_question_name,0);
685 dns_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
687 offset = dns_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_question_question_type, 0);
693 dns_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
695 offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_question_question_class, 0);
701 dns_dissect_struct_name_question(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
703 proto_item *item = NULL;
704 proto_tree *tree = NULL;
705 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
713 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
714 tree = proto_item_add_subtree(item, ett_dns_dns_name_question);
717 offset = dns_dissect_element_name_question_name(tvb, offset, pinfo, tree, drep);
719 offset = dns_dissect_element_name_question_question_type(tvb, offset, pinfo, tree, drep);
721 offset = dns_dissect_element_name_question_question_class(tvb, offset, pinfo, tree, drep);
724 proto_item_set_len(item, offset-old_offset);
727 if (di->call_data->flags & DCERPC_IS_NDR64) {
736 /* IDL: uint16 length; */
737 /* IDL: uint8 data[length]; */
741 dns_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
743 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_rdata_data_length, 0);
749 dns_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
756 dns_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
758 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_rdata_data_data, 0);
764 dns_dissect_struct_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
766 proto_item *item = NULL;
767 proto_tree *tree = NULL;
768 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
776 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
777 tree = proto_item_add_subtree(item, ett_dns_dns_rdata_data);
780 offset = dns_dissect_element_rdata_data_length(tvb, offset, pinfo, tree, drep);
782 offset = dns_dissect_element_rdata_data_data(tvb, offset, pinfo, tree, drep);
785 proto_item_set_len(item, offset-old_offset);
788 if (di->call_data->flags & DCERPC_IS_NDR64) {
797 /* IDL: dns_string mname; */
798 /* IDL: dns_string rname; */
799 /* IDL: uint32 serial; */
800 /* IDL: uint32 refresh; */
801 /* IDL: uint32 retry; */
802 /* IDL: uint32 expire; */
803 /* IDL: uint32 minimum; */
807 dns_dissect_element_soa_record_mname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
809 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_soa_record_mname,0);
815 dns_dissect_element_soa_record_rname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
817 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_soa_record_rname,0);
823 dns_dissect_element_soa_record_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
825 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_serial, 0);
831 dns_dissect_element_soa_record_refresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
833 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_refresh, 0);
839 dns_dissect_element_soa_record_retry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
841 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_retry, 0);
847 dns_dissect_element_soa_record_expire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
849 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_expire, 0);
855 dns_dissect_element_soa_record_minimum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
857 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_minimum, 0);
863 dns_dissect_struct_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
865 proto_item *item = NULL;
866 proto_tree *tree = NULL;
867 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
875 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
876 tree = proto_item_add_subtree(item, ett_dns_dns_soa_record);
879 offset = dns_dissect_element_soa_record_mname(tvb, offset, pinfo, tree, drep);
881 offset = dns_dissect_element_soa_record_rname(tvb, offset, pinfo, tree, drep);
883 offset = dns_dissect_element_soa_record_serial(tvb, offset, pinfo, tree, drep);
885 offset = dns_dissect_element_soa_record_refresh(tvb, offset, pinfo, tree, drep);
887 offset = dns_dissect_element_soa_record_retry(tvb, offset, pinfo, tree, drep);
889 offset = dns_dissect_element_soa_record_expire(tvb, offset, pinfo, tree, drep);
891 offset = dns_dissect_element_soa_record_minimum(tvb, offset, pinfo, tree, drep);
894 proto_item_set_len(item, offset-old_offset);
897 if (di->call_data->flags & DCERPC_IS_NDR64) {
906 /* IDL: [value(strlen(cpu))] uint8 cpu_length; */
907 /* IDL: [charset(DOS)] uint8 cpu[cpu_length]; */
908 /* IDL: [value(strlen(os))] uint8 os_length; */
909 /* IDL: [charset(DOS)] uint8 os[os_length]; */
913 dns_dissect_element_hinfo_record_cpu_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
915 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_cpu_length, 0);
921 dns_dissect_element_hinfo_record_cpu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
928 dns_dissect_element_hinfo_record_cpu_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
930 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_cpu, 0);
936 dns_dissect_element_hinfo_record_os_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
938 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_os_length, 0);
944 dns_dissect_element_hinfo_record_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
951 dns_dissect_element_hinfo_record_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
953 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_os, 0);
959 dns_dissect_struct_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
961 proto_item *item = NULL;
962 proto_tree *tree = NULL;
969 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
970 tree = proto_item_add_subtree(item, ett_dns_dns_hinfo_record);
973 offset = dns_dissect_element_hinfo_record_cpu_length(tvb, offset, pinfo, tree, drep);
975 offset = dns_dissect_element_hinfo_record_cpu(tvb, offset, pinfo, tree, drep);
977 offset = dns_dissect_element_hinfo_record_os_length(tvb, offset, pinfo, tree, drep);
979 offset = dns_dissect_element_hinfo_record_os(tvb, offset, pinfo, tree, drep);
982 proto_item_set_len(item, offset-old_offset);
990 /* IDL: uint16 preference; */
991 /* IDL: dns_string exchange; */
995 dns_dissect_element_mx_record_preference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
997 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_mx_record_preference, 0);
1003 dns_dissect_element_mx_record_exchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1005 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_mx_record_exchange,0);
1011 dns_dissect_struct_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1013 proto_item *item = NULL;
1014 proto_tree *tree = NULL;
1015 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1020 old_offset = offset;
1023 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1024 tree = proto_item_add_subtree(item, ett_dns_dns_mx_record);
1027 offset = dns_dissect_element_mx_record_preference(tvb, offset, pinfo, tree, drep);
1029 offset = dns_dissect_element_mx_record_exchange(tvb, offset, pinfo, tree, drep);
1032 proto_item_set_len(item, offset-old_offset);
1035 if (di->call_data->flags & DCERPC_IS_NDR64) {
1044 /* IDL: [value(strlen(txt))] uint8 length; */
1045 /* IDL: [charset(DOS)] uint8 txt[length]; */
1049 dns_dissect_element_txt_record_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1051 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_txt_record_length, 0);
1057 dns_dissect_element_txt_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1064 dns_dissect_element_txt_record_txt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1066 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_txt_record_txt, 0);
1072 dns_dissect_struct_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1074 proto_item *item = NULL;
1075 proto_tree *tree = NULL;
1079 old_offset = offset;
1082 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1083 tree = proto_item_add_subtree(item, ett_dns_dns_txt_record);
1086 offset = dns_dissect_element_txt_record_length(tvb, offset, pinfo, tree, drep);
1088 offset = dns_dissect_element_txt_record_txt(tvb, offset, pinfo, tree, drep);
1091 proto_item_set_len(item, offset-old_offset);
1099 /* IDL: dns_string mbox; */
1100 /* IDL: dns_string txt; */
1104 dns_dissect_element_rp_record_mbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1106 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rp_record_mbox,0);
1112 dns_dissect_element_rp_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1114 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rp_record_txt,0);
1120 dns_dissect_struct_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1122 proto_item *item = NULL;
1123 proto_tree *tree = NULL;
1124 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1129 old_offset = offset;
1132 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1133 tree = proto_item_add_subtree(item, ett_dns_dns_rp_record);
1136 offset = dns_dissect_element_rp_record_mbox(tvb, offset, pinfo, tree, drep);
1138 offset = dns_dissect_element_rp_record_txt(tvb, offset, pinfo, tree, drep);
1141 proto_item_set_len(item, offset-old_offset);
1144 if (di->call_data->flags & DCERPC_IS_NDR64) {
1153 /* IDL: uint16 priority; */
1154 /* IDL: uint16 weight; */
1155 /* IDL: uint16 port; */
1156 /* IDL: dns_string target; */
1160 dns_dissect_element_srv_record_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1162 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_priority, 0);
1168 dns_dissect_element_srv_record_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1170 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_weight, 0);
1176 dns_dissect_element_srv_record_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1178 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_port, 0);
1184 dns_dissect_element_srv_record_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1186 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_srv_record_target,0);
1192 dns_dissect_struct_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1194 proto_item *item = NULL;
1195 proto_tree *tree = NULL;
1196 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1201 old_offset = offset;
1204 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1205 tree = proto_item_add_subtree(item, ett_dns_dns_srv_record);
1208 offset = dns_dissect_element_srv_record_priority(tvb, offset, pinfo, tree, drep);
1210 offset = dns_dissect_element_srv_record_weight(tvb, offset, pinfo, tree, drep);
1212 offset = dns_dissect_element_srv_record_port(tvb, offset, pinfo, tree, drep);
1214 offset = dns_dissect_element_srv_record_target(tvb, offset, pinfo, tree, drep);
1217 proto_item_set_len(item, offset-old_offset);
1220 if (di->call_data->flags & DCERPC_IS_NDR64) {
1229 /* IDL: uint16 option_code; */
1230 /* IDL: uint16 option_length; */
1231 /* IDL: uint8 option_data[option_length]; */
1235 dns_dissect_element_opt_record_option_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1237 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_code, 0);
1243 dns_dissect_element_opt_record_option_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1245 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_length, 0);
1251 dns_dissect_element_opt_record_option_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1258 dns_dissect_element_opt_record_option_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1260 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_data, 0);
1266 dns_dissect_struct_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1268 proto_item *item = NULL;
1269 proto_tree *tree = NULL;
1270 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1275 old_offset = offset;
1278 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1279 tree = proto_item_add_subtree(item, ett_dns_dns_opt_record);
1282 offset = dns_dissect_element_opt_record_option_code(tvb, offset, pinfo, tree, drep);
1284 offset = dns_dissect_element_opt_record_option_length(tvb, offset, pinfo, tree, drep);
1286 offset = dns_dissect_element_opt_record_option_data(tvb, offset, pinfo, tree, drep);
1289 proto_item_set_len(item, offset-old_offset);
1292 if (di->call_data->flags & DCERPC_IS_NDR64) {
1301 /* IDL: dns_string algorithm; */
1302 /* IDL: uint32 inception; */
1303 /* IDL: uint32 expiration; */
1304 /* IDL: dns_tkey_mode mode; */
1305 /* IDL: uint16 error; */
1306 /* IDL: uint16 key_size; */
1307 /* IDL: uint8 key_data[key_size]; */
1308 /* IDL: uint16 other_size; */
1309 /* IDL: uint8 other_data[other_size]; */
1313 dns_dissect_element_tkey_record_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1315 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_tkey_record_algorithm,0);
1321 dns_dissect_element_tkey_record_inception(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1323 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_inception, 0);
1329 dns_dissect_element_tkey_record_expiration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1331 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_expiration, 0);
1337 dns_dissect_element_tkey_record_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1339 offset = dns_dissect_enum_tkey_mode(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_mode, 0);
1345 dns_dissect_element_tkey_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1347 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_error, 0);
1353 dns_dissect_element_tkey_record_key_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1355 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_key_size, 0);
1361 dns_dissect_element_tkey_record_key_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1368 dns_dissect_element_tkey_record_key_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1370 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_key_data, 0);
1376 dns_dissect_element_tkey_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1378 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_other_size, 0);
1384 dns_dissect_element_tkey_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1391 dns_dissect_element_tkey_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1393 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_other_data, 0);
1399 dns_dissect_struct_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1401 proto_item *item = NULL;
1402 proto_tree *tree = NULL;
1403 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1408 old_offset = offset;
1411 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1412 tree = proto_item_add_subtree(item, ett_dns_dns_tkey_record);
1415 offset = dns_dissect_element_tkey_record_algorithm(tvb, offset, pinfo, tree, drep);
1417 offset = dns_dissect_element_tkey_record_inception(tvb, offset, pinfo, tree, drep);
1419 offset = dns_dissect_element_tkey_record_expiration(tvb, offset, pinfo, tree, drep);
1421 offset = dns_dissect_element_tkey_record_mode(tvb, offset, pinfo, tree, drep);
1423 offset = dns_dissect_element_tkey_record_error(tvb, offset, pinfo, tree, drep);
1425 offset = dns_dissect_element_tkey_record_key_size(tvb, offset, pinfo, tree, drep);
1427 offset = dns_dissect_element_tkey_record_key_data(tvb, offset, pinfo, tree, drep);
1429 offset = dns_dissect_element_tkey_record_other_size(tvb, offset, pinfo, tree, drep);
1431 offset = dns_dissect_element_tkey_record_other_data(tvb, offset, pinfo, tree, drep);
1434 proto_item_set_len(item, offset-old_offset);
1437 if (di->call_data->flags & DCERPC_IS_NDR64) {
1446 /* IDL: dns_string algorithm_name; */
1447 /* IDL: uint16 time_prefix; */
1448 /* IDL: uint32 time; */
1449 /* IDL: uint16 fudge; */
1450 /* IDL: uint16 mac_size; */
1451 /* IDL: uint8 mac[mac_size]; */
1452 /* IDL: uint16 original_id; */
1453 /* IDL: uint16 error; */
1454 /* IDL: uint16 other_size; */
1455 /* IDL: uint8 other_data[other_size]; */
1459 dns_dissect_element_tsig_record_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1461 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_tsig_record_algorithm_name,0);
1467 dns_dissect_element_tsig_record_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1469 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_time_prefix, 0);
1475 dns_dissect_element_tsig_record_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1477 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_time, 0);
1483 dns_dissect_element_tsig_record_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1485 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_fudge, 0);
1491 dns_dissect_element_tsig_record_mac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1493 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_mac_size, 0);
1499 dns_dissect_element_tsig_record_mac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1506 dns_dissect_element_tsig_record_mac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1508 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_mac, 0);
1514 dns_dissect_element_tsig_record_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1516 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_original_id, 0);
1522 dns_dissect_element_tsig_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1524 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_error, 0);
1530 dns_dissect_element_tsig_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1532 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_other_size, 0);
1538 dns_dissect_element_tsig_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1545 dns_dissect_element_tsig_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1547 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_other_data, 0);
1553 dns_dissect_struct_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1555 proto_item *item = NULL;
1556 proto_tree *tree = NULL;
1557 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1562 old_offset = offset;
1565 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1566 tree = proto_item_add_subtree(item, ett_dns_dns_tsig_record);
1569 offset = dns_dissect_element_tsig_record_algorithm_name(tvb, offset, pinfo, tree, drep);
1571 offset = dns_dissect_element_tsig_record_time_prefix(tvb, offset, pinfo, tree, drep);
1573 offset = dns_dissect_element_tsig_record_time(tvb, offset, pinfo, tree, drep);
1575 offset = dns_dissect_element_tsig_record_fudge(tvb, offset, pinfo, tree, drep);
1577 offset = dns_dissect_element_tsig_record_mac_size(tvb, offset, pinfo, tree, drep);
1579 offset = dns_dissect_element_tsig_record_mac(tvb, offset, pinfo, tree, drep);
1581 offset = dns_dissect_element_tsig_record_original_id(tvb, offset, pinfo, tree, drep);
1583 offset = dns_dissect_element_tsig_record_error(tvb, offset, pinfo, tree, drep);
1585 offset = dns_dissect_element_tsig_record_other_size(tvb, offset, pinfo, tree, drep);
1587 offset = dns_dissect_element_tsig_record_other_data(tvb, offset, pinfo, tree, drep);
1590 proto_item_set_len(item, offset-old_offset);
1593 if (di->call_data->flags & DCERPC_IS_NDR64) {
1602 /* IDL: dns_string name; */
1603 /* IDL: dns_qclass rr_class; */
1604 /* IDL: uint32 ttl; */
1605 /* IDL: dns_string algorithm_name; */
1606 /* IDL: uint16 time_prefix; */
1607 /* IDL: uint32 time; */
1608 /* IDL: uint16 fudge; */
1609 /* IDL: uint16 original_id; */
1610 /* IDL: uint16 error; */
1611 /* IDL: uint16 other_size; */
1612 /* IDL: uint8 other_data[other_size]; */
1616 dns_dissect_element_fake_tsig_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1618 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_fake_tsig_rec_name,0);
1624 dns_dissect_element_fake_tsig_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1626 offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_rr_class, 0);
1632 dns_dissect_element_fake_tsig_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1634 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_ttl, 0);
1640 dns_dissect_element_fake_tsig_rec_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1642 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_fake_tsig_rec_algorithm_name,0);
1648 dns_dissect_element_fake_tsig_rec_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1650 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_time_prefix, 0);
1656 dns_dissect_element_fake_tsig_rec_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1658 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_time, 0);
1664 dns_dissect_element_fake_tsig_rec_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1666 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_fudge, 0);
1672 dns_dissect_element_fake_tsig_rec_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1674 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_original_id, 0);
1680 dns_dissect_element_fake_tsig_rec_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1682 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_error, 0);
1688 dns_dissect_element_fake_tsig_rec_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1690 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_other_size, 0);
1696 dns_dissect_element_fake_tsig_rec_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1703 dns_dissect_element_fake_tsig_rec_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1705 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_other_data, 0);
1711 dns_dissect_struct_fake_tsig_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1713 proto_item *item = NULL;
1714 proto_tree *tree = NULL;
1715 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
1719 old_offset = offset;
1722 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1723 tree = proto_item_add_subtree(item, ett_dns_dns_fake_tsig_rec);
1726 offset = dns_dissect_element_fake_tsig_rec_name(tvb, offset, pinfo, tree, drep);
1728 offset = dns_dissect_element_fake_tsig_rec_rr_class(tvb, offset, pinfo, tree, drep);
1730 offset = dns_dissect_element_fake_tsig_rec_ttl(tvb, offset, pinfo, tree, drep);
1732 offset = dns_dissect_element_fake_tsig_rec_algorithm_name(tvb, offset, pinfo, tree, drep);
1734 offset = dns_dissect_element_fake_tsig_rec_time_prefix(tvb, offset, pinfo, tree, drep);
1736 offset = dns_dissect_element_fake_tsig_rec_time(tvb, offset, pinfo, tree, drep);
1738 offset = dns_dissect_element_fake_tsig_rec_fudge(tvb, offset, pinfo, tree, drep);
1740 offset = dns_dissect_element_fake_tsig_rec_original_id(tvb, offset, pinfo, tree, drep);
1742 offset = dns_dissect_element_fake_tsig_rec_error(tvb, offset, pinfo, tree, drep);
1744 offset = dns_dissect_element_fake_tsig_rec_other_size(tvb, offset, pinfo, tree, drep);
1746 offset = dns_dissect_element_fake_tsig_rec_other_data(tvb, offset, pinfo, tree, drep);
1749 proto_item_set_len(item, offset-old_offset);
1752 if (di->call_data->flags & DCERPC_IS_NDR64) {
1760 /* IDL: [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
1761 /* IDL: [case(DNS_QTYPE_A)] [case(DNS_QTYPE_A)] ipv4address ipv4_record; */
1762 /* IDL: [case(DNS_QTYPE_NS)] [case(DNS_QTYPE_NS)] dns_string ns_record; */
1763 /* IDL: [case(DNS_QTYPE_CNAME)] [case(DNS_QTYPE_CNAME)] dns_string cname_record; */
1764 /* IDL: [case(DNS_QTYPE_SOA)] [case(DNS_QTYPE_SOA)] dns_soa_record soa_record; */
1765 /* IDL: [case(DNS_QTYPE_PTR)] [case(DNS_QTYPE_PTR)] dns_string ptr_record; */
1766 /* IDL: [case(DNS_QTYPE_HINFO)] [case(DNS_QTYPE_HINFO)] dns_hinfo_record hinfo_record; */
1767 /* IDL: [case(DNS_QTYPE_MX)] [case(DNS_QTYPE_MX)] dns_mx_record mx_record; */
1768 /* IDL: [case(DNS_QTYPE_TXT)] [case(DNS_QTYPE_TXT)] dns_txt_record txt_record; */
1769 /* IDL: [case(DNS_QTYPE_RP)] [case(DNS_QTYPE_RP)] dns_rp_record rp_record; */
1770 /* IDL: [case(DNS_QTYPE_AAAA)] [case(DNS_QTYPE_AAAA)] ipv6address ipv6_record; */
1771 /* IDL: [case(DNS_QTYPE_SRV)] [case(DNS_QTYPE_SRV)] dns_srv_record srv_record; */
1772 /* IDL: [case(DNS_QTYPE_OPT)] [case(DNS_QTYPE_OPT)] dns_opt_record opt_record; */
1773 /* IDL: [case(DNS_QTYPE_TSIG)] [case(DNS_QTYPE_TSIG)] dns_tsig_record tsig_record; */
1774 /* IDL: [case(DNS_QTYPE_TKEY)] [case(DNS_QTYPE_TKEY)] dns_tkey_record tkey_record; */
1775 /* IDL: [default] ; */
1779 dns_dissect_element_rdata_ipv4_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1781 offset = dns_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ipv4_record,0);
1787 dns_dissect_element_rdata_ns_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1789 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ns_record,0);
1795 dns_dissect_element_rdata_cname_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1797 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_cname_record,0);
1803 dns_dissect_element_rdata_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1805 offset = dns_dissect_struct_soa_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_soa_record,0);
1811 dns_dissect_element_rdata_ptr_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1813 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ptr_record,0);
1819 dns_dissect_element_rdata_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1821 offset = dns_dissect_struct_hinfo_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_hinfo_record,0);
1827 dns_dissect_element_rdata_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1829 offset = dns_dissect_struct_mx_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_mx_record,0);
1835 dns_dissect_element_rdata_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1837 offset = dns_dissect_struct_txt_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_txt_record,0);
1843 dns_dissect_element_rdata_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1845 offset = dns_dissect_struct_rp_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_rp_record,0);
1851 dns_dissect_element_rdata_ipv6_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1853 offset = dns_dissect_struct_ipv6address(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ipv6_record,0);
1859 dns_dissect_element_rdata_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1861 offset = dns_dissect_struct_srv_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_srv_record,0);
1867 dns_dissect_element_rdata_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1869 offset = dns_dissect_struct_opt_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_opt_record,0);
1875 dns_dissect_element_rdata_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1877 offset = dns_dissect_struct_tsig_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_tsig_record,0);
1883 dns_dissect_element_rdata_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1885 offset = dns_dissect_struct_tkey_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_tkey_record,0);
1891 dns_dissect_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
1893 proto_item *item = NULL;
1894 proto_tree *tree = NULL;
1896 guint32 level = param;
1898 old_offset = offset;
1900 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dns_rdata");
1901 tree = proto_item_add_subtree(item, ett_dns_dns_rdata);
1906 offset = dns_dissect_element_rdata_ipv4_record(tvb, offset, pinfo, tree, drep);
1910 offset = dns_dissect_element_rdata_ns_record(tvb, offset, pinfo, tree, drep);
1913 case DNS_QTYPE_CNAME:
1914 offset = dns_dissect_element_rdata_cname_record(tvb, offset, pinfo, tree, drep);
1918 offset = dns_dissect_element_rdata_soa_record(tvb, offset, pinfo, tree, drep);
1922 offset = dns_dissect_element_rdata_ptr_record(tvb, offset, pinfo, tree, drep);
1925 case DNS_QTYPE_HINFO:
1926 offset = dns_dissect_element_rdata_hinfo_record(tvb, offset, pinfo, tree, drep);
1930 offset = dns_dissect_element_rdata_mx_record(tvb, offset, pinfo, tree, drep);
1934 offset = dns_dissect_element_rdata_txt_record(tvb, offset, pinfo, tree, drep);
1938 offset = dns_dissect_element_rdata_rp_record(tvb, offset, pinfo, tree, drep);
1941 case DNS_QTYPE_AAAA:
1942 offset = dns_dissect_element_rdata_ipv6_record(tvb, offset, pinfo, tree, drep);
1946 offset = dns_dissect_element_rdata_srv_record(tvb, offset, pinfo, tree, drep);
1950 offset = dns_dissect_element_rdata_opt_record(tvb, offset, pinfo, tree, drep);
1953 case DNS_QTYPE_TSIG:
1954 offset = dns_dissect_element_rdata_tsig_record(tvb, offset, pinfo, tree, drep);
1957 case DNS_QTYPE_TKEY:
1958 offset = dns_dissect_element_rdata_tkey_record(tvb, offset, pinfo, tree, drep);
1964 proto_item_set_len(item, offset-old_offset);
1971 /* IDL: dns_string name; */
1972 /* IDL: dns_qtype rr_type; */
1973 /* IDL: dns_qclass rr_class; */
1974 /* IDL: uint32 ttl; */
1975 /* IDL: uint16 length; */
1976 /* IDL: [switch_is(rr_type)] dns_rdata rdata; */
1977 /* IDL: DATA_BLOB unexpected; */
1981 dns_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1983 offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_res_rec_name,0);
1989 dns_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
1991 offset = dns_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rr_type, rr_type);
1997 dns_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
1999 offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rr_class, 0);
2005 dns_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2007 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_ttl, 0);
2013 dns_dissect_element_res_rec_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2015 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_length, 0);
2021 dns_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
2023 offset = dns_dissect_rdata(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rdata, *rr_type);
2029 dns_dissect_element_res_rec_unexpected(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2031 offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_unexpected, 0);
2037 dns_dissect_struct_res_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2040 proto_item *item = NULL;
2041 proto_tree *tree = NULL;
2042 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2046 old_offset = offset;
2049 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2050 tree = proto_item_add_subtree(item, ett_dns_dns_res_rec);
2053 offset = dns_dissect_element_res_rec_name(tvb, offset, pinfo, tree, drep);
2055 offset = dns_dissect_element_res_rec_rr_type(tvb, offset, pinfo, tree, drep, &rr_type);
2057 offset = dns_dissect_element_res_rec_rr_class(tvb, offset, pinfo, tree, drep);
2059 offset = dns_dissect_element_res_rec_ttl(tvb, offset, pinfo, tree, drep);
2061 offset = dns_dissect_element_res_rec_length(tvb, offset, pinfo, tree, drep);
2063 offset = dns_dissect_element_res_rec_rdata(tvb, offset, pinfo, tree, drep, &rr_type);
2065 offset = dns_dissect_element_res_rec_unexpected(tvb, offset, pinfo, tree, drep);
2068 proto_item_set_len(item, offset-old_offset);
2071 if (di->call_data->flags & DCERPC_IS_NDR64) {
2080 /* IDL: uint16 id; */
2081 /* IDL: dns_operation operation; */
2082 /* IDL: uint16 qdcount; */
2083 /* IDL: uint16 ancount; */
2084 /* IDL: uint16 nscount; */
2085 /* IDL: uint16 arcount; */
2086 /* IDL: dns_name_question questions[qdcount]; */
2087 /* IDL: dns_res_rec answers[ancount]; */
2088 /* IDL: dns_res_rec nsrecs[nscount]; */
2089 /* IDL: dns_res_rec additional[arcount]; */
2093 dns_dissect_element_name_packet_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2095 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_id, 0);
2101 dns_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2103 offset = dns_dissect_bitmap_operation(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_operation, 0);
2109 dns_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2111 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_qdcount, 0);
2117 dns_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2119 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_ancount, 0);
2125 dns_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2127 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_nscount, 0);
2133 dns_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2135 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_arcount, 0);
2141 dns_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2148 dns_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2150 offset = dns_dissect_struct_name_question(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_questions,0);
2156 dns_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2163 dns_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2165 offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_answers,0);
2171 dns_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2178 dns_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2180 offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_nsrecs,0);
2186 dns_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2193 dns_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2195 offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_additional,0);
2201 dns_dissect_struct_name_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
2203 proto_item *item = NULL;
2204 proto_tree *tree = NULL;
2205 dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
2209 old_offset = offset;
2212 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2213 tree = proto_item_add_subtree(item, ett_dns_dns_name_packet);
2216 offset = dns_dissect_element_name_packet_id(tvb, offset, pinfo, tree, drep);
2218 offset = dns_dissect_element_name_packet_operation(tvb, offset, pinfo, tree, drep);
2220 offset = dns_dissect_element_name_packet_qdcount(tvb, offset, pinfo, tree, drep);
2222 offset = dns_dissect_element_name_packet_ancount(tvb, offset, pinfo, tree, drep);
2224 offset = dns_dissect_element_name_packet_nscount(tvb, offset, pinfo, tree, drep);
2226 offset = dns_dissect_element_name_packet_arcount(tvb, offset, pinfo, tree, drep);
2228 offset = dns_dissect_element_name_packet_questions(tvb, offset, pinfo, tree, drep);
2230 offset = dns_dissect_element_name_packet_answers(tvb, offset, pinfo, tree, drep);
2232 offset = dns_dissect_element_name_packet_nsrecs(tvb, offset, pinfo, tree, drep);
2234 offset = dns_dissect_element_name_packet_additional(tvb, offset, pinfo, tree, drep);
2237 proto_item_set_len(item, offset-old_offset);
2240 if (di->call_data->flags & DCERPC_IS_NDR64) {
2248 dns_dissect_element_decode_dns_name_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2250 offset = dns_dissect_struct_name_packet(tvb,offset,pinfo,tree,drep,hf_dns_decode_dns_name_packet_packet,0);
2255 /* IDL: void decode_dns_name_packet( */
2256 /* IDL: [in] dns_name_packet packet */
2260 dns_dissect_decode_dns_name_packet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2262 pinfo->dcerpc_procedure_name="decode_dns_name_packet";
2267 dns_dissect_decode_dns_name_packet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
2269 pinfo->dcerpc_procedure_name="decode_dns_name_packet";
2270 offset = dns_dissect_element_decode_dns_name_packet_packet(tvb, offset, pinfo, tree, drep);
2271 offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
2276 static dcerpc_sub_dissector dns_dissectors[] = {
2277 { 0, "decode_dns_name_packet",
2278 dns_dissect_decode_dns_name_packet_request, dns_dissect_decode_dns_name_packet_response},
2279 { 0, NULL, NULL, NULL }
2282 void proto_register_dcerpc_dns(void)
2284 static hf_register_info hf[] = {
2285 { &hf_dns_dns_hinfo_record_cpu,
2286 { "Cpu", "dns.dns_hinfo_record.cpu", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2287 { &hf_dns_decode_dns_name_packet_packet,
2288 { "Packet", "dns.decode_dns_name_packet.packet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2289 { &hf_dns_dns_srv_record_target,
2290 { "Target", "dns.dns_srv_record.target", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2291 { &hf_dns_dns_soa_record_minimum,
2292 { "Minimum", "dns.dns_soa_record.minimum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2293 { &hf_dns_dns_srv_record_priority,
2294 { "Priority", "dns.dns_srv_record.priority", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2295 { &hf_dns_dns_operation_DNS_FLAG_REPLY,
2296 { "Dns Flag Reply", "dns.dns_operation.DNS_FLAG_REPLY", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_REPLY_tfs), ( 0x8000 ), NULL, HFILL }},
2298 { "Operation", "dns.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2299 { &hf_dns_dns_srv_record_weight,
2300 { "Weight", "dns.dns_srv_record.weight", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2301 { &hf_dns_dns_operation_DNS_FLAG_BROADCAST,
2302 { "Dns Flag Broadcast", "dns.dns_operation.DNS_FLAG_BROADCAST", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_BROADCAST_tfs), ( 0x0010 ), NULL, HFILL }},
2303 { &hf_dns_dns_tsig_record_algorithm_name,
2304 { "Algorithm Name", "dns.dns_tsig_record.algorithm_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2305 { &hf_dns_dns_tkey_record_inception,
2306 { "Inception", "dns.dns_tkey_record.inception", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2307 { &hf_dns_dns_res_rec_rdata,
2308 { "Rdata", "dns.dns_res_rec.rdata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2309 { &hf_dns_dns_tsig_record_error,
2310 { "Error", "dns.dns_tsig_record.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2311 { &hf_dns_dns_rdata_tkey_record,
2312 { "Tkey Record", "dns.dns_rdata.tkey_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2313 { &hf_dns_dns_tsig_record_original_id,
2314 { "Original Id", "dns.dns_tsig_record.original_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2315 { &hf_dns_dns_name_packet_arcount,
2316 { "Arcount", "dns.dns_name_packet.arcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2317 { &hf_dns_dns_fake_tsig_rec_original_id,
2318 { "Original Id", "dns.dns_fake_tsig_rec.original_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2319 { &hf_dns_dns_fake_tsig_rec_time,
2320 { "Time", "dns.dns_fake_tsig_rec.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2321 { &hf_dns_dns_rdata_mx_record,
2322 { "Mx Record", "dns.dns_rdata.mx_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2323 { &hf_dns_dns_tsig_record_mac,
2324 { "Mac", "dns.dns_tsig_record.mac", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2325 { &hf_dns_dns_tsig_record_time_prefix,
2326 { "Time Prefix", "dns.dns_tsig_record.time_prefix", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2327 { &hf_dns_dns_res_rec_length,
2328 { "Length", "dns.dns_res_rec.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2329 { &hf_dns_dns_rdata_soa_record,
2330 { "Soa Record", "dns.dns_rdata.soa_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2331 { &hf_dns_dns_fake_tsig_rec_error,
2332 { "Error", "dns.dns_fake_tsig_rec.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2333 { &hf_dns_dns_mx_record_preference,
2334 { "Preference", "dns.dns_mx_record.preference", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2335 { &hf_dns_dns_soa_record_retry,
2336 { "Retry", "dns.dns_soa_record.retry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2337 { &hf_dns_dns_rp_record_mbox,
2338 { "Mbox", "dns.dns_rp_record.mbox", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2339 { &hf_dns_dns_fake_tsig_rec_ttl,
2340 { "Ttl", "dns.dns_fake_tsig_rec.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2341 { &hf_dns_dns_fake_tsig_rec_name,
2342 { "Name", "dns.dns_fake_tsig_rec.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2343 { &hf_dns_dns_tsig_record_fudge,
2344 { "Fudge", "dns.dns_tsig_record.fudge", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2345 { &hf_dns_dns_res_rec_rr_type,
2346 { "Rr Type", "dns.dns_res_rec.rr_type", FT_UINT16, BASE_DEC, VALS(dns_dns_qtype_vals), 0, NULL, HFILL }},
2347 { &hf_dns_dns_operation_DNS_RCODE,
2348 { "Dns Rcode", "dns.dns_operation.DNS_RCODE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_RCODE_tfs), ( 0x000F ), NULL, HFILL }},
2349 { &hf_dns_dns_rdata_ipv4_record,
2350 { "Ipv4 Record", "dns.dns_rdata.ipv4_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2351 { &hf_dns_dns_fake_tsig_rec_other_data,
2352 { "Other Data", "dns.dns_fake_tsig_rec.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2353 { &hf_dns_dns_fake_tsig_rec_rr_class,
2354 { "Rr Class", "dns.dns_fake_tsig_rec.rr_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
2355 { &hf_dns_dns_hinfo_record_os,
2356 { "Os", "dns.dns_hinfo_record.os", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2357 { &hf_dns_dns_name_packet_additional,
2358 { "Additional", "dns.dns_name_packet.additional", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2359 { &hf_dns_dns_srv_record_port,
2360 { "Port", "dns.dns_srv_record.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2361 { &hf_dns_dns_name_packet_qdcount,
2362 { "Qdcount", "dns.dns_name_packet.qdcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2363 { &hf_dns_dns_rdata_data_data,
2364 { "Data", "dns.dns_rdata_data.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2365 { &hf_dns_dns_rdata_ptr_record,
2366 { "Ptr Record", "dns.dns_rdata.ptr_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2367 { &hf_dns_dns_fake_tsig_rec_algorithm_name,
2368 { "Algorithm Name", "dns.dns_fake_tsig_rec.algorithm_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2369 { &hf_dns_dns_rdata_rp_record,
2370 { "Rp Record", "dns.dns_rdata.rp_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2371 { &hf_dns_dns_soa_record_mname,
2372 { "Mname", "dns.dns_soa_record.mname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2373 { &hf_dns_dns_tsig_record_mac_size,
2374 { "Mac Size", "dns.dns_tsig_record.mac_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2375 { &hf_dns_dns_fake_tsig_rec_time_prefix,
2376 { "Time Prefix", "dns.dns_fake_tsig_rec.time_prefix", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2377 { &hf_dns_dns_res_rec_ttl,
2378 { "Ttl", "dns.dns_res_rec.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2379 { &hf_dns_dns_soa_record_serial,
2380 { "Serial", "dns.dns_soa_record.serial", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2381 { &hf_dns_dns_tsig_record_time,
2382 { "Time", "dns.dns_tsig_record.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2383 { &hf_dns_dns_soa_record_rname,
2384 { "Rname", "dns.dns_soa_record.rname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2385 { &hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED,
2386 { "Dns Flag Recursion Desired", "dns.dns_operation.DNS_FLAG_RECURSION_DESIRED", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_RECURSION_DESIRED_tfs), ( 0x0100 ), NULL, HFILL }},
2387 { &hf_dns_dns_tkey_record_error,
2388 { "Error", "dns.dns_tkey_record.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2389 { &hf_dns_dns_hinfo_record_os_length,
2390 { "Os Length", "dns.dns_hinfo_record.os_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2391 { &hf_dns_dns_tsig_record_other_data,
2392 { "Other Data", "dns.dns_tsig_record.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2393 { &hf_dns_dns_txt_record_length,
2394 { "Length", "dns.dns_txt_record.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2395 { &hf_dns_dns_operation_DNS_OPCODE,
2396 { "Dns Opcode", "dns.dns_operation.DNS_OPCODE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_OPCODE_tfs), ( 0x7800 ), NULL, HFILL }},
2397 { &hf_dns_dns_soa_record_refresh,
2398 { "Refresh", "dns.dns_soa_record.refresh", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2399 { &hf_dns_dns_rdata_ipv6_record,
2400 { "Ipv6 Record", "dns.dns_rdata.ipv6_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2401 { &hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE,
2402 { "Dns Flag Authoritative", "dns.dns_operation.DNS_FLAG_AUTHORITATIVE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_AUTHORITATIVE_tfs), ( 0x0400 ), NULL, HFILL }},
2403 { &hf_dns_dns_fake_tsig_rec_fudge,
2404 { "Fudge", "dns.dns_fake_tsig_rec.fudge", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2405 { &hf_dns_dns_rdata_opt_record,
2406 { "Opt Record", "dns.dns_rdata.opt_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2407 { &hf_dns_dns_rdata_tsig_record,
2408 { "Tsig Record", "dns.dns_rdata.tsig_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2409 { &hf_dns_dns_tkey_record_other_size,
2410 { "Other Size", "dns.dns_tkey_record.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2411 { &hf_dns_dns_name_packet_nscount,
2412 { "Nscount", "dns.dns_name_packet.nscount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2413 { &hf_dns_dns_res_rec_name,
2414 { "Name", "dns.dns_res_rec.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2415 { &hf_dns_dns_name_packet_nsrecs,
2416 { "Nsrecs", "dns.dns_name_packet.nsrecs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2417 { &hf_dns_dns_tkey_record_expiration,
2418 { "Expiration", "dns.dns_tkey_record.expiration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2419 { &hf_dns_dns_hinfo_record_cpu_length,
2420 { "Cpu Length", "dns.dns_hinfo_record.cpu_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2421 { &hf_dns_dns_name_question_question_type,
2422 { "Question Type", "dns.dns_name_question.question_type", FT_UINT16, BASE_DEC, VALS(dns_dns_qtype_vals), 0, NULL, HFILL }},
2423 { &hf_dns_dns_txt_record_txt,
2424 { "Txt", "dns.dns_txt_record.txt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2425 { &hf_dns_dns_tkey_record_other_data,
2426 { "Other Data", "dns.dns_tkey_record.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2427 { &hf_dns_dns_tkey_record_algorithm,
2428 { "Algorithm", "dns.dns_tkey_record.algorithm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2429 { &hf_dns_dns_rdata_srv_record,
2430 { "Srv Record", "dns.dns_rdata.srv_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2431 { &hf_dns_dns_tkey_record_key_size,
2432 { "Key Size", "dns.dns_tkey_record.key_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2433 { &hf_dns_dns_tkey_record_key_data,
2434 { "Key Data", "dns.dns_tkey_record.key_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2435 { &hf_dns_dns_rdata_data_length,
2436 { "Length", "dns.dns_rdata_data.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2437 { &hf_dns_dns_name_packet_questions,
2438 { "Questions", "dns.dns_name_packet.questions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2439 { &hf_dns_dns_fake_tsig_rec_other_size,
2440 { "Other Size", "dns.dns_fake_tsig_rec.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2441 { &hf_dns_dns_rdata_hinfo_record,
2442 { "Hinfo Record", "dns.dns_rdata.hinfo_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2443 { &hf_dns_dns_name_packet_answers,
2444 { "Answers", "dns.dns_name_packet.answers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2445 { &hf_dns_dns_res_rec_unexpected,
2446 { "Unexpected", "dns.dns_res_rec.unexpected", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2447 { &hf_dns_dns_soa_record_expire,
2448 { "Expire", "dns.dns_soa_record.expire", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
2449 { &hf_dns_dns_mx_record_exchange,
2450 { "Exchange", "dns.dns_mx_record.exchange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2451 { &hf_dns_dns_rdata_ns_record,
2452 { "Ns Record", "dns.dns_rdata.ns_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2453 { &hf_dns_dns_name_question_question_class,
2454 { "Question Class", "dns.dns_name_question.question_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
2455 { &hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL,
2456 { "Dns Flag Recursion Avail", "dns.dns_operation.DNS_FLAG_RECURSION_AVAIL", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_RECURSION_AVAIL_tfs), ( 0x0080 ), NULL, HFILL }},
2457 { &hf_dns_dns_opt_record_option_code,
2458 { "Option Code", "dns.dns_opt_record.option_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2459 { &hf_dns_dns_tsig_record_other_size,
2460 { "Other Size", "dns.dns_tsig_record.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2461 { &hf_dns_dns_rdata_cname_record,
2462 { "Cname Record", "dns.dns_rdata.cname_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2463 { &hf_dns_dns_operation_DNS_FLAG_TRUNCATION,
2464 { "Dns Flag Truncation", "dns.dns_operation.DNS_FLAG_TRUNCATION", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_TRUNCATION_tfs), ( 0x0200 ), NULL, HFILL }},
2465 { &hf_dns_dns_name_question_name,
2466 { "Name", "dns.dns_name_question.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2467 { &hf_dns_dns_rdata_txt_record,
2468 { "Txt Record", "dns.dns_rdata.txt_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2469 { &hf_dns_dns_name_packet_operation,
2470 { "Operation", "dns.dns_name_packet.operation", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
2471 { &hf_dns_dns_name_packet_id,
2472 { "Id", "dns.dns_name_packet.id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2473 { &hf_dns_dns_res_rec_rr_class,
2474 { "Rr Class", "dns.dns_res_rec.rr_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
2475 { &hf_dns_dns_rp_record_txt,
2476 { "Txt", "dns.dns_rp_record.txt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
2477 { &hf_dns_dns_opt_record_option_length,
2478 { "Option Length", "dns.dns_opt_record.option_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2479 { &hf_dns_dns_opt_record_option_data,
2480 { "Option Data", "dns.dns_opt_record.option_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
2481 { &hf_dns_dns_name_packet_ancount,
2482 { "Ancount", "dns.dns_name_packet.ancount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
2483 { &hf_dns_dns_tkey_record_mode,
2484 { "Mode", "dns.dns_tkey_record.mode", FT_UINT16, BASE_DEC, VALS(dns_dns_tkey_mode_vals), 0, NULL, HFILL }},
2488 static gint *ett[] = {
2490 &ett_dns_dns_operation,
2491 &ett_dns_dns_name_question,
2492 &ett_dns_dns_rdata_data,
2493 &ett_dns_dns_soa_record,
2494 &ett_dns_dns_hinfo_record,
2495 &ett_dns_dns_mx_record,
2496 &ett_dns_dns_txt_record,
2497 &ett_dns_dns_rp_record,
2498 &ett_dns_dns_srv_record,
2499 &ett_dns_dns_opt_record,
2500 &ett_dns_dns_tkey_record,
2501 &ett_dns_dns_tsig_record,
2502 &ett_dns_dns_fake_tsig_rec,
2504 &ett_dns_dns_res_rec,
2505 &ett_dns_dns_name_packet,
2508 proto_dcerpc_dns = proto_register_protocol("DNS records", "DNS", "dns");
2509 proto_register_field_array(proto_dcerpc_dns, hf, array_length (hf));
2510 proto_register_subtree_array(ett, array_length(ett));
2513 void proto_reg_handoff_dcerpc_dns(void)
2515 dcerpc_init_uuid(proto_dcerpc_dns, ett_dcerpc_dns,
2516 &uuid_dcerpc_dns, ver_dcerpc_dns,
2517 dns_dissectors, hf_dns_opnum);