forked from osmocom/wireshark
For DNS-over-TCP, put the length indicator into the tree for the DNS
request/response. svn path=/trunk/; revision=3633
This commit is contained in:
parent
c6266ee4d9
commit
0395944bf6
18
packet-dns.c
18
packet-dns.c
|
@ -1,7 +1,7 @@
|
||||||
/* packet-dns.c
|
/* packet-dns.c
|
||||||
* Routines for DNS packet disassembly
|
* Routines for DNS packet disassembly
|
||||||
*
|
*
|
||||||
* $Id: packet-dns.c,v 1.69 2001/07/02 07:11:38 guy Exp $
|
* $Id: packet-dns.c,v 1.70 2001/07/02 07:29:03 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@ethereal.com>
|
* By Gerald Combs <gerald@ethereal.com>
|
||||||
|
@ -41,6 +41,7 @@
|
||||||
#include "packet-dns.h"
|
#include "packet-dns.h"
|
||||||
|
|
||||||
static int proto_dns = -1;
|
static int proto_dns = -1;
|
||||||
|
static int hf_dns_length = -1;
|
||||||
static int hf_dns_response = -1;
|
static int hf_dns_response = -1;
|
||||||
static int hf_dns_query = -1;
|
static int hf_dns_query = -1;
|
||||||
static int hf_dns_flags = -1;
|
static int hf_dns_flags = -1;
|
||||||
|
@ -1799,7 +1800,7 @@ dissect_answer_records(tvbuff_t *tvb, int cur_off, int dns_data_offset,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dissect_dns_common(tvbuff_t *tvb, int offset, int cap_len, packet_info *pinfo,
|
dissect_dns_common(tvbuff_t *tvb, int offset, int cap_len, packet_info *pinfo,
|
||||||
proto_tree *tree)
|
proto_tree *tree, gboolean is_tcp)
|
||||||
{
|
{
|
||||||
int dns_data_offset;
|
int dns_data_offset;
|
||||||
frame_data *fd;
|
frame_data *fd;
|
||||||
|
@ -1858,6 +1859,11 @@ dissect_dns_common(tvbuff_t *tvb, int offset, int cap_len, packet_info *pinfo,
|
||||||
|
|
||||||
dns_tree = proto_item_add_subtree(ti, ett_dns);
|
dns_tree = proto_item_add_subtree(ti, ett_dns);
|
||||||
|
|
||||||
|
if (is_tcp) {
|
||||||
|
/* Put the length indication into the tree. */
|
||||||
|
proto_tree_add_uint(dns_tree, hf_dns_length, tvb, offset - 2, 2, cap_len);
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & F_RESPONSE)
|
if (flags & F_RESPONSE)
|
||||||
proto_tree_add_boolean_hidden(dns_tree, hf_dns_response, tvb, offset, 4, 1);
|
proto_tree_add_boolean_hidden(dns_tree, hf_dns_response, tvb, offset, 4, 1);
|
||||||
else
|
else
|
||||||
|
@ -1985,7 +1991,7 @@ dissect_dns_common(tvbuff_t *tvb, int offset, int cap_len, packet_info *pinfo,
|
||||||
static void
|
static void
|
||||||
dissect_dns_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
dissect_dns_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||||
{
|
{
|
||||||
dissect_dns_common(tvb, 0, tvb_length(tvb), pinfo, tree);
|
dissect_dns_common(tvb, 0, tvb_length(tvb), pinfo, tree, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2009,7 +2015,7 @@ dissect_dns_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||||
/*
|
/*
|
||||||
* Yes - dissect it.
|
* Yes - dissect it.
|
||||||
*/
|
*/
|
||||||
dissect_dns_common(tvb, offset, plen, pinfo, tree);
|
dissect_dns_common(tvb, offset, plen, pinfo, tree, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2017,6 +2023,10 @@ void
|
||||||
proto_register_dns(void)
|
proto_register_dns(void)
|
||||||
{
|
{
|
||||||
static hf_register_info hf[] = {
|
static hf_register_info hf[] = {
|
||||||
|
{ &hf_dns_length,
|
||||||
|
{ "Length", "dns.length",
|
||||||
|
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||||
|
"Length of DNS-over-TCP request or response", HFILL }},
|
||||||
{ &hf_dns_response,
|
{ &hf_dns_response,
|
||||||
{ "Response", "dns.response",
|
{ "Response", "dns.response",
|
||||||
FT_BOOLEAN, BASE_NONE, NULL, 0x0,
|
FT_BOOLEAN, BASE_NONE, NULL, 0x0,
|
||||||
|
|
Loading…
Reference in New Issue