diff options
Diffstat (limited to 'epan/dissectors/packet-simple.c')
-rw-r--r-- | epan/dissectors/packet-simple.c | 149 |
1 files changed, 74 insertions, 75 deletions
diff --git a/epan/dissectors/packet-simple.c b/epan/dissectors/packet-simple.c index e4a19ccbff..d841b8fe5e 100644 --- a/epan/dissectors/packet-simple.c +++ b/epan/dissectors/packet-simple.c @@ -174,71 +174,72 @@ static const value_string Link11_Role[] = { { 0, NULL }, }; -static int proto_simple = -1; +static int proto_simple; +static dissector_handle_t simple_dissector_handle; static dissector_handle_t link16_handle; -static gint hf_simple_sync_byte_1 = -1; -static gint hf_simple_sync_byte_2 = -1; -static gint hf_simple_length = -1; -static gint hf_simple_sequence_number = -1; -static gint hf_simple_src_node = -1; -static gint hf_simple_src_subnode = -1; -static gint hf_simple_dst_node = -1; -static gint hf_simple_dst_subnode = -1; -static gint hf_simple_packet_size = -1; -static gint hf_simple_packet_type = -1; -static gint hf_simple_transit_time = -1; -static gint hf_simple_link16_subtype = -1; -static gint hf_simple_link16_rc = -1; -static gint hf_simple_link16_network = -1; -static gint hf_simple_link16_ssc2 = -1; -static gint hf_simple_link16_npg = -1; -static gint hf_simple_link16_ssc1 = -1; -static gint hf_simple_link16_stn = -1; -static gint hf_simple_link16_word_count = -1; -static gint hf_simple_link16_loopback_id = -1; -static gint hf_simple_status_subtype = -1; -static gint hf_simple_status_word_count = -1; -static gint hf_simple_status_name = -1; -static gint hf_simple_status_time_hours = -1; -static gint hf_simple_status_node_id = -1; -static gint hf_simple_status_time_seconds = -1; -static gint hf_simple_status_time_minutes = -1; -static gint hf_simple_status_security_level = -1; -static gint hf_simple_status_node_entry_flag = -1; -static gint hf_simple_status_relay_hop = -1; -static gint hf_simple_status_dx_flag_system_messages = -1; -static gint hf_simple_status_dx_flag_common_tims_bims = -1; -static gint hf_simple_status_dx_flag_common_toms_boms = -1; -static gint hf_simple_status_dx_flag_simple_receive = -1; -static gint hf_simple_status_dx_flag_simple_transmit = -1; -static gint hf_simple_status_dx_flag_all_tims_bims = -1; -static gint hf_simple_status_dx_flag_all_toms_boms = -1; -static gint hf_simple_status_dx_file_id = -1; -static gint hf_simple_status_spare_1 = -1; -static gint hf_simple_status_link16_terminal_type = -1; -static gint hf_simple_status_link16_role = -1; -static gint hf_simple_status_link16_sync_status = -1; -static gint hf_simple_status_link16_terminal_host_status = -1; -static gint hf_simple_status_link16_stn = -1; -static gint hf_simple_status_spare_2 = -1; -static gint hf_simple_status_link11_dts_type = -1; -static gint hf_simple_status_link11_role = -1; -static gint hf_simple_status_link11_pu = -1; -static gint hf_simple_status_link11_dts_host_status = -1; -static gint hf_simple_status_spare_3 = -1; -static gint hf_simple_checksum = -1; -static gint hf_simple_checksum_status = -1; - -static gint ett_simple = -1; -static gint ett_packet = -1; -static gint ett_simple_status_dx_flag = -1; - -static expert_field ei_simple_sync_bytes_bad = EI_INIT; -static expert_field ei_simple_length_bad = EI_INIT; -static expert_field ei_simple_packet_size_bad = EI_INIT; -static expert_field ei_simple_checksum_bad = EI_INIT; +static gint hf_simple_sync_byte_1; +static gint hf_simple_sync_byte_2; +static gint hf_simple_length; +static gint hf_simple_sequence_number; +static gint hf_simple_src_node; +static gint hf_simple_src_subnode; +static gint hf_simple_dst_node; +static gint hf_simple_dst_subnode; +static gint hf_simple_packet_size; +static gint hf_simple_packet_type; +static gint hf_simple_transit_time; +static gint hf_simple_link16_subtype; +static gint hf_simple_link16_rc; +static gint hf_simple_link16_network; +static gint hf_simple_link16_ssc2; +static gint hf_simple_link16_npg; +static gint hf_simple_link16_ssc1; +static gint hf_simple_link16_stn; +static gint hf_simple_link16_word_count; +static gint hf_simple_link16_loopback_id; +static gint hf_simple_status_subtype; +static gint hf_simple_status_word_count; +static gint hf_simple_status_name; +static gint hf_simple_status_time_hours; +static gint hf_simple_status_node_id; +static gint hf_simple_status_time_seconds; +static gint hf_simple_status_time_minutes; +static gint hf_simple_status_security_level; +static gint hf_simple_status_node_entry_flag; +static gint hf_simple_status_relay_hop; +static gint hf_simple_status_dx_flag_system_messages; +static gint hf_simple_status_dx_flag_common_tims_bims; +static gint hf_simple_status_dx_flag_common_toms_boms; +static gint hf_simple_status_dx_flag_simple_receive; +static gint hf_simple_status_dx_flag_simple_transmit; +static gint hf_simple_status_dx_flag_all_tims_bims; +static gint hf_simple_status_dx_flag_all_toms_boms; +static gint hf_simple_status_dx_file_id; +static gint hf_simple_status_spare_1; +static gint hf_simple_status_link16_terminal_type; +static gint hf_simple_status_link16_role; +static gint hf_simple_status_link16_sync_status; +static gint hf_simple_status_link16_terminal_host_status; +static gint hf_simple_status_link16_stn; +static gint hf_simple_status_spare_2; +static gint hf_simple_status_link11_dts_type; +static gint hf_simple_status_link11_role; +static gint hf_simple_status_link11_pu; +static gint hf_simple_status_link11_dts_host_status; +static gint hf_simple_status_spare_3; +static gint hf_simple_checksum; +static gint hf_simple_checksum_status; + +static gint ett_simple; +static gint ett_packet; +static gint ett_simple_status_dx_flag; + +static expert_field ei_simple_sync_bytes_bad; +static expert_field ei_simple_length_bad; +static expert_field ei_simple_packet_size_bad; +static expert_field ei_simple_checksum_bad; static void dissect_simple_link16(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset) { @@ -317,7 +318,7 @@ static void dissect_simple_status(tvbuff_t *tvb, packet_info *pinfo, proto_tree name = tvb_get_stringzpad(pinfo->pool, tvb, offset, SIMPLE_STATUS_NAME_LEN, ENC_ASCII|ENC_NA); col_append_fstr(pinfo->cinfo, COL_INFO, ", Name: %s", name); - proto_tree_add_item(tree, hf_simple_status_name, tvb, offset, SIMPLE_STATUS_NAME_LEN, ENC_ASCII|ENC_NA); + proto_tree_add_item(tree, hf_simple_status_name, tvb, offset, SIMPLE_STATUS_NAME_LEN, ENC_ASCII); offset += SIMPLE_STATUS_NAME_LEN; proto_tree_add_item(tree, hf_simple_status_time_hours, tvb, offset, 1, ENC_NA); @@ -344,7 +345,7 @@ static void dissect_simple_status(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree_add_bitmask_text(tree, tvb, offset, 2, "Data Extraction Flags", NULL, ett_simple_status_dx_flag, simple_status_dx_flag_fields, ENC_LITTLE_ENDIAN, 0); offset += 2; - proto_tree_add_item(tree, hf_simple_status_dx_file_id, tvb, offset, 8, ENC_ASCII|ENC_NA); + proto_tree_add_item(tree, hf_simple_status_dx_file_id, tvb, offset, 8, ENC_ASCII); offset += 8; proto_tree_add_item(tree, hf_simple_status_spare_1, tvb, offset, 2, ENC_NA); @@ -464,7 +465,7 @@ static int dissect_simple(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v proto_tree_add_item(simple_tree, hf_simple_transit_time, tvb, offset, 2, ENC_LITTLE_ENDIAN); offset += 2; - packet_type_string = val_to_str(packet_type, PacketType_Strings, "Unknown"); + packet_type_string = val_to_str_const(packet_type, PacketType_Strings, "Unknown"); col_add_fstr(pinfo->cinfo, COL_INFO, "%s", packet_type_string); packet_tree = proto_tree_add_subtree_format(simple_tree, tvb, offset, packet_size, ett_packet, NULL, "%s Packet", packet_type_string); @@ -522,7 +523,7 @@ void proto_register_simple(void) { "Subtype", "simple.link16.subtype", FT_UINT8, BASE_DEC, VALS(Link16_Subtype_Strings), 0x0, NULL, HFILL }}, { &hf_simple_link16_rc, - { "R/C Flag", "simple.link16.rc", FT_BOOLEAN, BASE_DEC, TFS(&tfs_required_not_required), 0x0, + { "R/C Flag", "simple.link16.rc", FT_BOOLEAN, BASE_NONE, TFS(&tfs_required_not_required), 0x0, NULL, HFILL }}, { &hf_simple_link16_network, { "Network", "simple.link16.network", FT_UINT8, BASE_DEC, NULL, 0x0, @@ -576,25 +577,25 @@ void proto_register_simple(void) { "Relay Hop", "simple.status.relay_hop", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_simple_status_dx_flag_system_messages, - { "DX System Messages", "simple.status.dx_flag.system_messages", FT_BOOLEAN, 16, NULL, 0x1, + { "DX System Messages", "simple.status.dx_flag.system_messages", FT_BOOLEAN, 16, NULL, 0x0001, NULL, HFILL }}, { &hf_simple_status_dx_flag_common_tims_bims, - { "DX Common TIMS/BIMS", "simple.status.dx_flag.common_tims_bims", FT_BOOLEAN, 16, NULL, 0x2, + { "DX Common TIMS/BIMS", "simple.status.dx_flag.common_tims_bims", FT_BOOLEAN, 16, NULL, 0x0002, NULL, HFILL }}, { &hf_simple_status_dx_flag_common_toms_boms, - { "DX Common TOMS/BOMS", "simple.status.dx_flag.common_toms_boms", FT_BOOLEAN, 16, NULL, 0x4, + { "DX Common TOMS/BOMS", "simple.status.dx_flag.common_toms_boms", FT_BOOLEAN, 16, NULL, 0x0004, NULL, HFILL }}, { &hf_simple_status_dx_flag_simple_receive, { "DX SIMPLE Receive", "simple.status.dx_flag.simple_receive", FT_BOOLEAN, 16, NULL, 0x8, NULL, HFILL }}, { &hf_simple_status_dx_flag_simple_transmit, - { "DX SIMPLE Transmit", "simple.status.dx_flag.simple_transmit", FT_BOOLEAN, 16, NULL, 0x10, + { "DX SIMPLE Transmit", "simple.status.dx_flag.simple_transmit", FT_BOOLEAN, 16, NULL, 0x0010, NULL, HFILL }}, { &hf_simple_status_dx_flag_all_tims_bims, - { "DX All TIMS/BIMS", "simple.status.dx_flag.all_tims_bims", FT_BOOLEAN, 16, NULL, 0x20, + { "DX All TIMS/BIMS", "simple.status.dx_flag.all_tims_bims", FT_BOOLEAN, 16, NULL, 0x0020, NULL, HFILL }}, { &hf_simple_status_dx_flag_all_toms_boms, - { "DX All TOMS/BOMS", "simple.status.dx_flag.all_toms_boms", FT_BOOLEAN, 16, NULL, 0x40, + { "DX All TOMS/BOMS", "simple.status.dx_flag.all_toms_boms", FT_BOOLEAN, 16, NULL, 0x0040, NULL, HFILL }}, { &hf_simple_status_dx_file_id, { "DX File Id", "simple.status.dx_file_id", FT_STRING, BASE_NONE, NULL, 0x0, @@ -660,13 +661,11 @@ void proto_register_simple(void) proto_register_subtree_array(ett, array_length(ett)); expert_simple = expert_register_protocol(proto_simple); expert_register_field_array(expert_simple, ei, array_length(ei)); - register_dissector("simple", dissect_simple, proto_simple); + simple_dissector_handle = register_dissector("simple", dissect_simple, proto_simple); } void proto_reg_handoff_simple(void) { - dissector_handle_t simple_dissector_handle; - simple_dissector_handle = create_dissector_handle(dissect_simple, proto_simple); dissector_add_for_decode_as_with_preference("udp.port", simple_dissector_handle); dissector_add_for_decode_as_with_preference("tcp.port", simple_dissector_handle); |