diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-12-26 00:22:16 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-12-26 00:22:16 +0000 |
commit | 98738d8fd0a1a010a3da5105e473e6da18a200ba (patch) | |
tree | 4ceaf8c1480728d2e87320cadd9a29603bc4ddfc /epan/dissectors/packet-nbns.c | |
parent | b965ca1c91f726402f659ad7927d8e8a92daff82 (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.c | 39 |
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; |