diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2017-08-30 17:21:12 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2017-08-30 17:28:38 +0000 |
commit | 541817f63ca3e57bc8b8302602c42d6b745d73ef (patch) | |
tree | 0f45121ae7b44152e535dbdbc494d92c88014563 | |
parent | 63628636af9bf43291711d51e38dc6f5933291ef (diff) |
IPv6: Undo 'ipv6_ws' tap change
Previously tapping data did not depend on ipv6_pinfo.
Minor code cleanup.
Follow up to 71697c5dab92e5be15180c6fb4420fd847e1e539.
Change-Id: I2d8ef9603119ceada64a3c64d5f9d6dfffde399d
Reviewed-on: https://code.wireshark.org/review/23312
Petri-Dish: João Valverde <j@v6e.pt>
Reviewed-by: João Valverde <j@v6e.pt>
-rw-r--r-- | epan/dissectors/packet-ipv6.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c index 5252e73475..7d17ef73f1 100644 --- a/epan/dissectors/packet-ipv6.c +++ b/epan/dissectors/packet-ipv6.c @@ -2395,18 +2395,19 @@ ipv6_dissect_next(guint nxt, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree return; } - /* Done with extension header chain */ - if (pinfo->dst.type == AT_IPv6 && ipv6_pinfo != NULL) { - if (ipv6_pinfo->ipv6_tree != NULL) { - /* Set IPv6 Header length */ - proto_item_set_len(proto_tree_get_parent(ipv6_pinfo->ipv6_tree), ipv6_pinfo->ipv6_item_len); - ipv6_pinfo->ipv6_tree = NULL; - } + /* + * Done with extension header chain + */ - if (iph != NULL) { - iph->ip_nxt = nxt; /* upper-layer protocol more useful */ - tap_queue_packet(ipv6_ws_tap, pinfo, iph); - } + if (ipv6_pinfo != NULL && ipv6_pinfo->ipv6_tree != NULL) { + /* Set IPv6 Header length */ + proto_item_set_len(proto_tree_get_parent(ipv6_pinfo->ipv6_tree), ipv6_pinfo->ipv6_item_len); + ipv6_pinfo->ipv6_tree = NULL; + } + + if (iph != NULL && iph->ip_ver == 6) { + iph->ip_nxt = nxt; /* upper-layer protocol more useful */ + tap_queue_packet(ipv6_ws_tap, pinfo, iph); } if (nxt == IP_PROTO_NONE) { |