aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nbns.c
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-12-26 00:22:16 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-12-26 00:22:16 +0000
commit98738d8fd0a1a010a3da5105e473e6da18a200ba (patch)
tree4ceaf8c1480728d2e87320cadd9a29603bc4ddfc /epan/dissectors/packet-nbns.c
parentb965ca1c91f726402f659ad7927d8e8a92daff82 (diff)
From Luis Ontanon: add more filterable fields to DNS, PGM, GTP, and RADIUS.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12835 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-nbns.c')
-rw-r--r--epan/dissectors/packet-nbns.c39
1 files changed, 32 insertions, 7 deletions
diff --git a/epan/dissectors/packet-nbns.c b/epan/dissectors/packet-nbns.c
index c78e535e11..d80e09646f 100644
--- a/epan/dissectors/packet-nbns.c
+++ b/epan/dissectors/packet-nbns.c
@@ -245,6 +245,28 @@ nbns_type_name (int type)
#define NBNAME_BUF_LEN 128
+static proto_tree *
+add_rr_to_tree(proto_item *trr, int rr_type, tvbuff_t *tvb, int offset,
+ const char *name, int namelen,
+ const char *type_name, const char *class_description,
+ guint ttl, gushort data_len)
+{
+ proto_tree *rr_tree;
+
+ rr_tree = proto_item_add_subtree(trr, rr_type);
+ proto_tree_add_text(rr_tree, tvb, offset+1, namelen-1, "Name: %s", name);
+ offset += namelen;
+ proto_tree_add_text(rr_tree, tvb, offset, 2, "Type: %s", type_name);
+ offset += 2;
+ proto_tree_add_text(rr_tree, tvb, offset, 2, "Class: %s", class_description);
+ offset += 2;
+ proto_tree_add_text(rr_tree, tvb, offset, 4, "Time to live: %s",
+ time_secs_to_str(ttl));
+ offset += 4;
+ proto_tree_add_text(rr_tree, tvb, offset, 2, "Data length: %u", data_len);
+ return rr_tree;
+}
+
static int
get_nbns_name(tvbuff_t *tvb, int offset, int nbns_data_offset,
char *name_ret, int *name_type_ret)
@@ -386,7 +408,6 @@ dissect_nbns_query(tvbuff_t *tvb, int offset, int nbns_data_offset,
int name_type;
int type;
int class;
- char *class_name;
char *type_name;
int data_offset;
int data_start;
@@ -400,13 +421,13 @@ dissect_nbns_query(tvbuff_t *tvb, int offset, int nbns_data_offset,
data_offset += len;
type_name = nbns_type_name(type);
- class_name = dns_class_name(class);
if (cinfo != NULL)
col_append_fstr(cinfo, COL_INFO, " %s %s", type_name, name);
if (nbns_tree != NULL) {
tq = proto_tree_add_text(nbns_tree, tvb, offset, len,
- "%s: type %s, class %s", name, type_name, class_name);
+ "%s: type %s, class %s", name, type_name,
+ dns_class_name(class));
q_tree = proto_item_add_subtree(tq, ett_nbns_qd);
add_name_and_type(q_tree, tvb, offset, name_len, "Name", name,
@@ -416,7 +437,8 @@ dissect_nbns_query(tvbuff_t *tvb, int offset, int nbns_data_offset,
proto_tree_add_text(q_tree, tvb, offset, 2, "Type: %s", type_name);
offset += 2;
- proto_tree_add_text(q_tree, tvb, offset, 2, "Class: %s", class_name);
+ proto_tree_add_text(q_tree, tvb, offset, 2, "Class: %s",
+ dns_class_description(class));
offset += 2;
}
@@ -631,7 +653,8 @@ dissect_nbns_answer(tvbuff_t *tvb, int offset, int nbns_data_offset,
strcat(name, netbios_name_type_descr(name_type));
strcat(name, ")");
rr_tree = add_rr_to_tree(trr, ett_nbns_rr, tvb, offset, name,
- name_len, type_name, class_name, ttl, data_len);
+ name_len, type_name, dns_class_description(class),
+ ttl, data_len);
while (data_len > 0) {
if (opcode == OPCODE_WACK) {
/* WACK response. This doesn't contain the
@@ -683,7 +706,8 @@ dissect_nbns_answer(tvbuff_t *tvb, int offset, int nbns_data_offset,
"%s: type %s, class %s",
name, type_name, class_name);
rr_tree = add_rr_to_tree(trr, ett_nbns_rr, tvb, offset, name,
- name_len, type_name, class_name, ttl, data_len);
+ name_len, type_name, dns_class_description(class),
+ ttl, data_len);
if (data_len < 1) {
proto_tree_add_text(rr_tree, tvb, cur_offset,
data_len, "(incomplete entry)");
@@ -927,7 +951,8 @@ dissect_nbns_answer(tvbuff_t *tvb, int offset, int nbns_data_offset,
"%s: type %s, class %s",
name, type_name, class_name);
rr_tree = add_rr_to_tree(trr, ett_nbns_rr, tvb, offset, name,
- name_len, type_name, class_name, ttl, data_len);
+ name_len, type_name, dns_class_description(class),
+ ttl, data_len);
proto_tree_add_text(rr_tree, tvb, cur_offset, data_len, "Data");
cur_offset += data_len;
break;