aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sflow.c
diff options
context:
space:
mode:
authorChris Maynard <Christopher.Maynard@GTECH.COM>2011-03-12 01:32:35 +0000
committerChris Maynard <Christopher.Maynard@GTECH.COM>2011-03-12 01:32:35 +0000
commitebe492525f4093aae5255aa061383dd66b77fc46 (patch)
tree9d05ec33fe2235fe6b13f1dda5991749c3f1bd07 /epan/dissectors/packet-sflow.c
parenta96eed7007096d5d2425b5eb442c951bfeb064f6 (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.c8
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;