aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ipv6.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-04-20 11:36:16 +0000
committerGuy Harris <guy@alum.mit.edu>2003-04-20 11:36:16 +0000
commitd359286841fb9221400bcc64bf8bbcc88e3127fd (patch)
tree7ed0620519b78e1ad0b8f6a83d488e1dd856bb3f /packet-ipv6.c
parent4af58d8967aecdaea73d618ea7d6310183e6ffd2 (diff)
Add a pointer to an hf_ value for a "reassembled_in" field (which can be
null) to the "fragment_items" structure, and don't pass that value into "process_reassembled_data()", just have it use the value in the "fragment_items" structure passed to it. Make "process_reassembled_data()" capable of handling reassembly done by "fragment_add_seq_check()", and use it in the ATP and 802.11 dissectors; give them "reassembled_in" fields. Make "process_reassembled_data()" handle only the case of a completed reassembly (fd_head != NULL) so that we can use it in those dissectors without gunking the code up too much. svn path=/trunk/; revision=7513
Diffstat (limited to 'packet-ipv6.c')
-rw-r--r--packet-ipv6.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/packet-ipv6.c b/packet-ipv6.c
index 95aceb9187..6ef5d2ebf0 100644
--- a/packet-ipv6.c
+++ b/packet-ipv6.c
@@ -1,7 +1,7 @@
/* packet-ipv6.c
* Routines for IPv6 packet disassembly
*
- * $Id: packet-ipv6.c,v 1.96 2003/04/20 08:06:01 guy Exp $
+ * $Id: packet-ipv6.c,v 1.97 2003/04/20 11:36:14 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -91,6 +91,7 @@ static const fragment_items ipv6_frag_items = {
&hf_ipv6_fragment_multiple_tails,
&hf_ipv6_fragment_too_long_fragment,
&hf_ipv6_fragment_error,
+ &hf_ipv6_reassembled_in,
"fragments"
};
@@ -645,9 +646,14 @@ again:
offlg & IP6F_OFF_MASK,
plen,
offlg & IP6F_MORE_FRAG);
- next_tvb = process_reassembled_data(tvb, pinfo, "Reassembled IPv6",
- ipfd_head, &ipv6_frag_items, hf_ipv6_reassembled_in, &update_col_info,
- ipv6_tree);
+
+ if (ipfd_head != NULL) {
+ next_tvb = process_reassembled_data(tvb, pinfo, "Reassembled IPv6",
+ ipfd_head, &ipv6_frag_items, &update_col_info, ipv6_tree);
+ } else {
+ /* We don't have the complete reassembled payload. */
+ next_tvb = NULL;
+ }
} else {
/* If this is the first fragment, dissect its contents, otherwise
just show it as a fragment.