summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-ppp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-ppp.c')
-rw-r--r--epan/dissectors/packet-ppp.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/epan/dissectors/packet-ppp.c b/epan/dissectors/packet-ppp.c
index 08028e9562..351898c952 100644
--- a/epan/dissectors/packet-ppp.c
+++ b/epan/dissectors/packet-ppp.c
@@ -1968,16 +1968,7 @@ capture_ppp_hdlc(const guchar *pd, int offset, int len, packet_counts *ld, const
if (!BYTES_ARE_IN_FRAME(offset, len, 4))
return FALSE;
- switch (pntoh16(&pd[offset + 2])) {
- case PPP_IP:
- return capture_ip(pd, offset + 4, len, ld, pseudo_header);
- case PPP_IPX:
- return capture_ipx(pd, offset + 4, len, ld, pseudo_header);
- case PPP_VINES:
- return capture_vines(pd, offset + 4, len, ld, pseudo_header);
- }
-
- return FALSE;
+ return try_capture_dissector("ppp_hdlc", pntoh16(&pd[offset + 2]), pd, offset + 4, len, ld, pseudo_header);
}
static void
@@ -5625,6 +5616,8 @@ proto_register_ppp_raw_hdlc(void)
"PPP-HDLC", "ppp_hdlc");
proto_register_subtree_array(ett, array_length(ett));
proto_register_field_array(proto_ppp_hdlc, hf, array_length(hf));
+
+ register_capture_dissector_table("ppp_hdlc", "PPP-HDLC");
}
void
@@ -5639,6 +5632,7 @@ proto_reg_handoff_ppp_raw_hdlc(void)
heur_dissector_add("usb.bulk", dissect_ppp_usb, "PPP USB bulk endpoint", "ppp_usb_bulk", proto_ppp, HEURISTIC_ENABLE);
register_capture_dissector("wtap_encap", WTAP_ENCAP_PPP, capture_ppp_hdlc, proto_ppp_hdlc);
+ register_capture_dissector("sll.ltype", LINUX_SLL_P_PPPHDLC, capture_ppp_hdlc, proto_ppp_hdlc);
}
/*