diff options
author | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2011-03-12 01:32:35 +0000 |
---|---|---|
committer | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2011-03-12 01:32:35 +0000 |
commit | ebe492525f4093aae5255aa061383dd66b77fc46 (patch) | |
tree | 9d05ec33fe2235fe6b13f1dda5991749c3f1bd07 /epan/dissectors/packet-sflow.c | |
parent | a96eed7007096d5d2425b5eb442c951bfeb064f6 (diff) |
Handle PPP in HDLC framing. Fixes bug 5746.
svn path=/trunk/; revision=36177
Diffstat (limited to 'epan/dissectors/packet-sflow.c')
-rw-r--r-- | epan/dissectors/packet-sflow.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dissectors/packet-sflow.c b/epan/dissectors/packet-sflow.c index 87588045e6..c433d803fb 100644 --- a/epan/dissectors/packet-sflow.c +++ b/epan/dissectors/packet-sflow.c @@ -683,6 +683,7 @@ static dissector_handle_t fddi_handle; static dissector_handle_t fr_handle; static dissector_handle_t x25_handle; static dissector_handle_t ppp_handle; +static dissector_handle_t ppp_hdlc_handle; static dissector_handle_t smds_handle; static dissector_handle_t aal5_handle; static dissector_handle_t ipv4_handle; @@ -801,7 +802,10 @@ dissect_sflow_245_sampled_header(tvbuff_t *tvb, packet_info *pinfo, call_dissector(x25_handle, next_tvb, pinfo, sflow_245_header_tree); break; case SFLOW_245_HEADER_PPP: - call_dissector(ppp_handle, next_tvb, pinfo, sflow_245_header_tree); + if (tvb_memeql(tvb, offset, "\xff\x03", 2) == 0) + call_dissector(ppp_hdlc_handle, next_tvb, pinfo, sflow_245_header_tree); + else + call_dissector(ppp_handle, next_tvb, pinfo, sflow_245_header_tree); break; case SFLOW_245_HEADER_SMDS: call_dissector(smds_handle, next_tvb, pinfo, sflow_245_header_tree); @@ -3405,6 +3409,7 @@ proto_reg_handoff_sflow_245(void) { fr_handle = find_dissector("fr"); x25_handle = find_dissector("x.25"); ppp_handle = find_dissector("ppp"); + ppp_hdlc_handle = find_dissector("ppp_hdlc"); #if 0 smds_handle = find_dissector("smds"); #else @@ -3452,6 +3457,7 @@ proto_reg_handoff_sflow_245(void) { fr_handle = data_handle; x25_handle = data_handle; ppp_handle = data_handle; + ppp_hdlc_handle = data_handle; smds_handle = data_handle; aal5_handle = data_handle; ipv4_handle = data_handle; |