diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-06-21 11:53:33 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-06-21 11:53:33 +0000 |
commit | e9e32d78444c7cde6754b6795c67c6ad229b404e (patch) | |
tree | b7fe41c6afafdd454cfb61ef08565eed1780dbf9 /epan/dissectors/packet-diameter.c | |
parent | 84cef97505eaf280867e52ac194dc34d32ff2513 (diff) |
We need to start reassembly on a segment boundary.
svn path=/trunk/; revision=37740
Diffstat (limited to 'epan/dissectors/packet-diameter.c')
-rw-r--r-- | epan/dissectors/packet-diameter.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c index c0c2e18ece..a4bb07fc18 100644 --- a/epan/dissectors/packet-diameter.c +++ b/epan/dissectors/packet-diameter.c @@ -1062,8 +1062,15 @@ dissect_diameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) static void dissect_diameter_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - tcp_dissect_pdus(tvb, pinfo, tree, gbl_diameter_desegment, 4, - get_diameter_pdu_len, dissect_diameter_common); + /* Check if we have the start of a PDU or if this is segment */ + if (!check_diameter(tvb)){ + col_set_str(pinfo->cinfo, COL_PROTOCOL, "DIAMETER"); + col_set_str(pinfo->cinfo, COL_INFO, "Continuation"); + call_dissector(data_handle, tvb, pinfo, tree); + }else{ + tcp_dissect_pdus(tvb, pinfo, tree, gbl_diameter_desegment, 4, + get_diameter_pdu_len, dissect_diameter_common); + } } |