diff options
Diffstat (limited to 'packet-ansi_a.c')
-rw-r--r-- | packet-ansi_a.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/packet-ansi_a.c b/packet-ansi_a.c index d87f9723bf..58100ea79a 100644 --- a/packet-ansi_a.c +++ b/packet-ansi_a.c @@ -10,7 +10,7 @@ * 2000 Access Network Interfaces * 3GPP2 A.S0001-1 TIA/EIA-2001 * - * $Id: packet-ansi_a.c,v 1.15 2003/12/21 04:31:56 jmayer Exp $ + * $Id: packet-ansi_a.c,v 1.16 2004/03/27 11:32:28 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -374,6 +374,7 @@ static dissector_handle_t bsmap_handle; static dissector_handle_t dtap_handle; static dissector_table_t is637_dissector_table; /* IS-637-A Transport Layer (SMS) */ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */ +static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */ static packet_info *g_pinfo; static proto_tree *g_tree; @@ -4172,7 +4173,15 @@ elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, (g_pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, g_pinfo, g_tree); break; - case ADDS_APP_PLD: str = "PLD"; break; + case ADDS_APP_PLD: + str = "PLD"; + + adds_tvb = tvb_new_subset(tvb, curr_offset + 1, len - 1, len - 1); + + dissector_try_port(is801_dissector_table, + (g_pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, g_pinfo, g_tree); + break; + default: str = "Unknown"; break; @@ -8400,6 +8409,10 @@ proto_register_ansi_a(void) register_dissector_table("ansi_a.ota", "IS-683-A (OTA)", FT_UINT8, BASE_DEC); + is801_dissector_table = + register_dissector_table("ansi_a.pld", "IS-801 (PLD)", + FT_UINT8, BASE_DEC); + proto_register_subtree_array(ett, ett_len / sizeof(gint *)); ansi_a_tap = register_tap("ansi_a"); |