diff options
author | Jörg Mayer <jmayer@loplof.de> | 2007-03-28 07:03:26 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2007-03-28 07:03:26 +0000 |
commit | 4b0b2c289446f1073dfc7fbac39a08e3942e3b02 (patch) | |
tree | f35f806affbe86046752769015d33791ece9b8f3 /epan | |
parent | 19716f2b6efc6ee7ed63a276d7dd7825b524bbb1 (diff) |
Fix for http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1437
It is sufficient to make tapa discovery packets a new style dissector,
don't handle them via an additional heuristic dissector.
svn path=/trunk/; revision=21243
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-tapa.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/epan/dissectors/packet-tapa.c b/epan/dissectors/packet-tapa.c index de6d560096..5ee2e601d0 100644 --- a/epan/dissectors/packet-tapa.c +++ b/epan/dissectors/packet-tapa.c @@ -79,6 +79,7 @@ static int hf_tapa_tunnel_smac = -1; static int hf_tapa_tunnel_seqno = -1; static int hf_tapa_tunnel_length = -1; static int hf_tapa_tunnel_0804 = -1; +static int hf_tapa_tunnel_tagsetc = -1; static int hf_tapa_tunnel_remaining = -1; @@ -392,6 +393,10 @@ dissect_tapa_tunnel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) FALSE); offset += 2; + proto_tree_add_item(tapa_tunnel_tree, hf_tapa_tunnel_tagsetc, tvb, offset, 6, + FALSE); + offset += 6; + break; case TAPA_TUNNEL_TYPE_1: proto_tree_add_item(tapa_tunnel_tree, hf_tapa_tunnel_seqno, tvb, offset, 2, @@ -457,19 +462,6 @@ test_tapa_tunnel(tvbuff_t *tvb) return TRUE; } -static gboolean -dissect_tapa_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) -{ - if (test_tapa_discover(tvb)) { - dissect_tapa_discover(tvb, pinfo, tree); - return TRUE; - } else if (test_tapa_tunnel(tvb)) { - dissect_tapa_tunnel(tvb, pinfo, tree); - return TRUE; - } else - return FALSE; -} - static int dissect_tapa_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -589,6 +581,10 @@ proto_register_tapa(void) { "Tapa tunnel 0804", "tapa.tunnel.0804", FT_UINT16, BASE_HEX, NULL, 0x0, "", HFILL }}, + { &hf_tapa_tunnel_tagsetc, + { "Tapa tunnel tags, seqno, pad", "tapa.tunnel.tags", FT_BYTES, BASE_NONE, NULL, + 0x0, "", HFILL }}, + /* TAPA tunnel type 1 */ { &hf_tapa_tunnel_seqno, { "Tapa tunnel seqno", "tapa.tunnel.seqno", FT_UINT16, BASE_DEC, NULL, @@ -627,7 +623,5 @@ proto_reg_handoff_tapa(void) tapa_handle = new_create_dissector_handle(dissect_tapa_static, proto_tapa); dissector_add("udp.port", PORT_TAPA, tapa_handle); - - heur_dissector_add("udp", dissect_tapa_heur, proto_tapa); } |