diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2003-09-20 03:31:25 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2003-09-20 03:31:25 +0000 |
commit | 208fe3e5a7d36325083e191ef696b2f37292d049 (patch) | |
tree | f7eca4024fdbf19efe47ab82372881465c4945ca /packet-osi.c | |
parent | b2f60bb4d08cec3f9e968e16de7bc0e81f567eed (diff) |
From Akira Endoh: handle the NLPID for PPP.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@8500 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-osi.c')
-rw-r--r-- | packet-osi.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/packet-osi.c b/packet-osi.c index 8bd85d59d0..afc00cafb0 100644 --- a/packet-osi.c +++ b/packet-osi.c @@ -2,7 +2,7 @@ * Routines for ISO/OSI network and transport protocol packet disassembly * Main entrance point and common functions * - * $Id: packet-osi.c,v 1.62 2003/06/10 05:38:52 guy Exp $ + * $Id: packet-osi.c,v 1.63 2003/09/20 03:31:25 guy Exp $ * Laurent Deniel <laurent.deniel@free.fr> * Ralf Schneider <Ralf.Schneider@t-online.de> * @@ -224,11 +224,12 @@ const value_string nlpid_vals[] = { }; static dissector_table_t osinl_subdissector_table; -static dissector_handle_t data_handle; +static dissector_handle_t data_handle, ppp_handle; static void dissect_osi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint8 nlpid; + tvbuff_t *new_tvb; pinfo->current_proto = "OSI"; @@ -254,6 +255,14 @@ static void dissect_osi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } call_dissector(data_handle,tvb, pinfo, tree); break; + case NLPID_PPP: + /* XXX - we should put the NLPID into the protocol tree. + We should also probably have a subdissector table for + those protocols whose PDUs *aren't* defined to begin + with an NLPID. */ + new_tvb = tvb_new_subset(tvb, 1, -1, -1); + call_dissector(ppp_handle, new_tvb, pinfo, tree); + break; default: if (check_col(pinfo->cinfo, COL_PROTOCOL)) { col_set_str(pinfo->cinfo, COL_PROTOCOL, "ISO"); @@ -292,4 +301,5 @@ proto_reg_handoff_osi(void) dissector_add("null.type", BSD_AF_ISO, osi_handle); dissector_add("gre.proto", SAP_OSINL5, osi_handle); data_handle = find_dissector("data"); + ppp_handle = find_dissector("ppp"); } |