diff options
62 files changed, 197 insertions, 93 deletions
diff --git a/epan/dissectors/asn1/dop/packet-dop-template.c b/epan/dissectors/asn1/dop/packet-dop-template.c index 3b7b1362db..0a6b726b2d 100644 --- a/epan/dissectors/asn1/dop/packet-dop-template.c +++ b/epan/dissectors/asn1/dop/packet-dop-template.c @@ -249,7 +249,7 @@ void proto_register_dop(void) { dop_handle = register_dissector("dop", dissect_dop, proto_dop); - dop_dissector_table = register_dissector_table("dop.oid", "DOP OID", proto_dop, FT_STRING, BASE_NONE); + dop_dissector_table = register_dissector_table("dop.oid", "DOP OID", proto_dop, FT_STRING, STRING_CASE_SENSITIVE); /* Register fields and subtrees */ proto_register_field_array(proto_dop, hf, array_length(hf)); diff --git a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c index 7f9c83691a..f7b111116f 100644 --- a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c +++ b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c @@ -572,7 +572,7 @@ void proto_register_e2ap(void) { e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC); e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC); e2ap_proc_uout_dissector_table = register_dissector_table("e2ap.proc.uout", "E2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC); - e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE); + e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(&e2ap_init_protocol); } diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c index fc556da02a..ab85ddbf0d 100644 --- a/epan/dissectors/asn1/h225/packet-h225-template.c +++ b/epan/dissectors/asn1/h225/packet-h225-template.c @@ -889,11 +889,11 @@ void proto_register_h225(void) { register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225); h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225); - nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, BASE_NONE); + nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter h221", proto_h225, FT_UINT32, BASE_HEX); - tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, BASE_NONE); - gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, BASE_NONE); - gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, BASE_NONE); + tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); + gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); + gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); for(i=0;i<7;i++) { ras_calls[i] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), h225ras_call_hash, h225ras_call_equal); diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c index 1569b88d3a..dc9c2285be 100644 --- a/epan/dissectors/asn1/h245/packet-h245-template.c +++ b/epan/dissectors/asn1/h245/packet-h245-template.c @@ -512,10 +512,10 @@ void proto_register_h245(void) { MultimediaSystemControlMessage_handle = register_dissector("h245dg", dissect_h245_h245, proto_h245); h245_handle = register_dissector("h245", dissect_h245, proto_h245); - nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, BASE_NONE); + nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", proto_h245, FT_UINT32, BASE_HEX); - gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework Name", proto_h245, FT_STRING, BASE_NONE); - gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework Content", proto_h245, FT_STRING, BASE_NONE); + gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework Name", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); + gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework Content", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); h245_tap = register_tap("h245"); h245dg_tap = register_tap("h245dg"); diff --git a/epan/dissectors/asn1/h450/packet-h450-template.c b/epan/dissectors/asn1/h450/packet-h450-template.c index d19a732246..b9a72714b6 100644 --- a/epan/dissectors/asn1/h450/packet-h450-template.c +++ b/epan/dissectors/asn1/h450/packet-h450-template.c @@ -285,11 +285,11 @@ void proto_register_h450(void) { h450_err_handle = register_dissector("h4501_err", dissect_h450_err, proto_h450); /* Register dissector tables */ - h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, BASE_NONE); - h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, BASE_NONE); + h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); + h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", proto_h450, FT_UINT32, BASE_HEX); h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", proto_h450, FT_UINT32, BASE_HEX); - h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, BASE_NONE); + h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", proto_h450, FT_UINT32, BASE_HEX); } diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c index 8ee3508d23..3c8743e369 100644 --- a/epan/dissectors/asn1/ldap/packet-ldap-template.c +++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c @@ -2257,7 +2257,7 @@ void proto_register_ldap(void) { ldap_tap=register_tap("ldap"); - ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, BASE_NONE); + ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, STRING_CASE_SENSITIVE); register_srt_table(proto_ldap, NULL, 1, ldapstat_packet, ldapstat_init, NULL); } diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c index 6b5c84f572..4e62365f8f 100644 --- a/epan/dissectors/asn1/nbap/packet-nbap-template.c +++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c @@ -798,9 +798,9 @@ void proto_register_nbap(void) /* Register dissector tables */ nbap_ies_dissector_table = register_dissector_table("nbap.ies", "NBAP-PROTOCOL-IES", proto_nbap, FT_UINT32, BASE_DEC); nbap_extension_dissector_table = register_dissector_table("nbap.extension", "NBAP-PROTOCOL-EXTENSION", proto_nbap, FT_UINT32, BASE_DEC); - nbap_proc_imsg_dissector_table = register_dissector_table("nbap.proc.imsg", "NBAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nbap, FT_STRING, BASE_NONE); - nbap_proc_sout_dissector_table = register_dissector_table("nbap.proc.sout", "NBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nbap, FT_STRING, BASE_NONE); - nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nbap, FT_STRING, BASE_NONE); + nbap_proc_imsg_dissector_table = register_dissector_table("nbap.proc.imsg", "NBAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); + nbap_proc_sout_dissector_table = register_dissector_table("nbap.proc.sout", "NBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); + nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(nbap_init); } diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.c b/epan/dissectors/asn1/ngap/packet-ngap-template.c index 7f7ee3964f..5c9e0f426f 100644 --- a/epan/dissectors/asn1/ngap/packet-ngap-template.c +++ b/epan/dissectors/asn1/ngap/packet-ngap-template.c @@ -1431,7 +1431,7 @@ void proto_register_ngap(void) { ngap_proc_imsg_dissector_table = register_dissector_table("ngap.proc.imsg", "NGAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_ngap, FT_UINT32, BASE_DEC); ngap_proc_sout_dissector_table = register_dissector_table("ngap.proc.sout", "NGAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_ngap, FT_UINT32, BASE_DEC); ngap_proc_uout_dissector_table = register_dissector_table("ngap.proc.uout", "NGAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_ngap, FT_UINT32, BASE_DEC); - ngap_n2_ie_type_dissector_table = register_dissector_table("ngap.n2_ie_type", "NGAP N2 IE Type", proto_ngap, FT_STRING, FALSE); + ngap_n2_ie_type_dissector_table = register_dissector_table("ngap.n2_ie_type", "NGAP N2 IE Type", proto_ngap, FT_STRING, STRING_CASE_SENSITIVE); /* Register configuration options for ports */ ngap_module = prefs_register_protocol(proto_ngap, apply_ngap_prefs); diff --git a/epan/dissectors/asn1/q932/packet-q932-template.c b/epan/dissectors/asn1/q932/packet-q932-template.c index 8fb9467a9e..f47762d804 100644 --- a/epan/dissectors/asn1/q932/packet-q932-template.c +++ b/epan/dissectors/asn1/q932/packet-q932-template.c @@ -340,9 +340,9 @@ void proto_register_q932(void) { rose_ctx_init(&q932_rose_ctx); /* Register dissector tables */ - q932_rose_ctx.arg_global_dissector_table = register_dissector_table("q932.ros.global.arg", "Q.932 Operation Argument (global opcode)", proto_q932, FT_STRING, BASE_NONE); - q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", proto_q932, FT_STRING, BASE_NONE); - q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", proto_q932, FT_STRING, BASE_NONE); + q932_rose_ctx.arg_global_dissector_table = register_dissector_table("q932.ros.global.arg", "Q.932 Operation Argument (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); + q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); + q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); qsig_arg_local_dissector_table = register_dissector_table("q932.ros.local.arg", "Q.932 Operation Argument (local opcode)", proto_q932, FT_UINT32, BASE_HEX); qsig_res_local_dissector_table = register_dissector_table("q932.ros.local.res", "Q.932 Operation Result (local opcode)", proto_q932, FT_UINT32, BASE_HEX); diff --git a/epan/dissectors/asn1/qsig/packet-qsig-template.c b/epan/dissectors/asn1/qsig/packet-qsig-template.c index 578a9c6cfd..b7d3fb4a4d 100644 --- a/epan/dissectors/asn1/qsig/packet-qsig-template.c +++ b/epan/dissectors/asn1/qsig/packet-qsig-template.c @@ -674,7 +674,7 @@ void proto_register_qsig(void) { qsig_ie5_handle = register_dissector(PFNAME "_ie_cs5", dissect_qsig_ie_cs5, proto_qsig); /* Register dissector tables */ - extension_dissector_table = register_dissector_table("qsig.ext", "QSIG Extension", proto_qsig, FT_STRING, BASE_NONE); + extension_dissector_table = register_dissector_table("qsig.ext", "QSIG Extension", proto_qsig, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c index 82cf856c6b..fc08e17b4b 100644 --- a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c +++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c @@ -277,9 +277,9 @@ void proto_register_rnsap(void) { /* Register dissector tables */ rnsap_ies_dissector_table = register_dissector_table("rnsap.ies", "RNSAP-PROTOCOL-IES", proto_rnsap, FT_UINT32, BASE_DEC); rnsap_extension_dissector_table = register_dissector_table("rnsap.extension", "RNSAP-PROTOCOL-EXTENSION", proto_rnsap, FT_UINT32, BASE_DEC); - rnsap_proc_imsg_dissector_table = register_dissector_table("rnsap.proc.imsg", "RNSAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_rnsap, FT_STRING, BASE_NONE); - rnsap_proc_sout_dissector_table = register_dissector_table("rnsap.proc.sout", "RNSAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_rnsap, FT_STRING, BASE_NONE); - rnsap_proc_uout_dissector_table = register_dissector_table("rnsap.proc.uout", "RNSAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_rnsap, FT_STRING, BASE_NONE); + rnsap_proc_imsg_dissector_table = register_dissector_table("rnsap.proc.imsg", "RNSAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); + rnsap_proc_sout_dissector_table = register_dissector_table("rnsap.proc.sout", "RNSAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); + rnsap_proc_uout_dissector_table = register_dissector_table("rnsap.proc.uout", "RNSAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/asn1/ros/packet-ros-template.c b/epan/dissectors/asn1/ros/packet-ros-template.c index f8921dbb0f..e7519cdac3 100644 --- a/epan/dissectors/asn1/ros/packet-ros-template.c +++ b/epan/dissectors/asn1/ros/packet-ros-template.c @@ -477,7 +477,7 @@ void proto_register_ros(void) { expert_ros = expert_register_protocol(proto_ros); expert_register_field_array(expert_ros, ei, array_length(ei)); - ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", proto_ros, FT_STRING, BASE_NONE); + ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", proto_ros, FT_STRING, STRING_CASE_SENSITIVE); protocol_table = wmem_map_new(wmem_epan_scope(), wmem_str_hash, g_str_equal); } diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.c b/epan/dissectors/asn1/rtse/packet-rtse-template.c index 920fac87b7..47820e6ffb 100644 --- a/epan/dissectors/asn1/rtse/packet-rtse-template.c +++ b/epan/dissectors/asn1/rtse/packet-rtse-template.c @@ -373,7 +373,7 @@ void proto_register_rtse(void) { " \"Allow subdissectors to reassemble TCP streams\"" " in the TCP protocol settings.", &rtse_reassemble); - rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", proto_rtse, FT_STRING, BASE_NONE); + rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", proto_rtse, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c index 4595a2a290..b2800d1c75 100644 --- a/epan/dissectors/asn1/snmp/packet-snmp-template.c +++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c @@ -2604,7 +2604,7 @@ void proto_register_snmp(void) { "MIB settings can be changed in the Name Resolution preferences"); #endif - value_sub_dissectors_table = register_dissector_table("snmp.variable_oid","SNMP Variable OID", proto_snmp, FT_STRING, BASE_NONE); + value_sub_dissectors_table = register_dissector_table("snmp.variable_oid","SNMP Variable OID", proto_snmp, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(init_ue_cache); register_cleanup_routine(cleanup_ue_cache); diff --git a/epan/dissectors/asn1/t124/packet-t124-template.c b/epan/dissectors/asn1/t124/packet-t124-template.c index e54076d697..fa29e3a80d 100644 --- a/epan/dissectors/asn1/t124/packet-t124-template.c +++ b/epan/dissectors/asn1/t124/packet-t124-template.c @@ -191,7 +191,7 @@ void proto_register_t124(void) { proto_register_field_array(proto_t124, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); - t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124, FT_STRING, BASE_NONE); + t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124, FT_STRING, STRING_CASE_SENSITIVE); t124_sd_dissector_table = register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", proto_t124, FT_UINT32, BASE_HEX); register_dissector("t124", dissect_t124, proto_t124); diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c index bda5fb0781..53bb6b04aa 100644 --- a/epan/dissectors/packet-ber.c +++ b/epan/dissectors/packet-ber.c @@ -4563,8 +4563,8 @@ proto_register_ber(void) " and the syntax of any associated values", users_uat); - ber_oid_dissector_table = register_dissector_table("ber.oid", "BER OID", proto_ber, FT_STRING, BASE_NONE); - ber_syntax_dissector_table = register_dissector_table("ber.syntax", "BER syntax", proto_ber, FT_STRING, BASE_NONE); + ber_oid_dissector_table = register_dissector_table("ber.oid", "BER OID", proto_ber, FT_STRING, STRING_CASE_SENSITIVE); + ber_syntax_dissector_table = register_dissector_table("ber.syntax", "BER syntax", proto_ber, FT_STRING, STRING_CASE_SENSITIVE); syntax_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); /* oid to syntax */ register_ber_syntax_dissector("ASN.1", proto_ber, dissect_ber_syntax); diff --git a/epan/dissectors/packet-bitcoin.c b/epan/dissectors/packet-bitcoin.c index 878e6f2902..7bab5e912f 100644 --- a/epan/dissectors/packet-bitcoin.c +++ b/epan/dissectors/packet-bitcoin.c @@ -2077,7 +2077,7 @@ proto_register_bitcoin(void) expert_bitcoin = expert_register_protocol(proto_bitcoin); expert_register_field_array(expert_bitcoin, ei, array_length(ei)); - bitcoin_command_table = register_dissector_table("bitcoin.command", "Bitcoin Command", proto_bitcoin, FT_STRING, BASE_NONE); + bitcoin_command_table = register_dissector_table("bitcoin.command", "Bitcoin Command", proto_bitcoin, FT_STRING, STRING_CASE_SENSITIVE); bitcoin_handle = register_dissector("bitcoin", dissect_bitcoin, proto_bitcoin); diff --git a/epan/dissectors/packet-bluetooth.c b/epan/dissectors/packet-bluetooth.c index e97f1320bf..4b6242789b 100644 --- a/epan/dissectors/packet-bluetooth.c +++ b/epan/dissectors/packet-bluetooth.c @@ -5002,7 +5002,7 @@ proto_register_bluetooth(void) bluetooth_device_tap = register_tap("bluetooth.device"); bluetooth_hci_summary_tap = register_tap("bluetooth.hci_summary"); - bluetooth_uuid_table = register_dissector_table("bluetooth.uuid", "BT Service UUID", proto_bluetooth, FT_STRING, BASE_NONE); + bluetooth_uuid_table = register_dissector_table("bluetooth.uuid", "BT Service UUID", proto_bluetooth, FT_STRING, STRING_CASE_SENSITIVE); llc_add_oui(OUI_BLUETOOTH, "llc.bluetooth_pid", "LLC Bluetooth OUI PID", oui_hf, proto_bluetooth); register_conversation_table(proto_bluetooth, TRUE, bluetooth_conversation_packet, bluetooth_endpoint_packet); diff --git a/epan/dissectors/packet-bpv7.c b/epan/dissectors/packet-bpv7.c index ecd3ef4e63..3037dc9c19 100644 --- a/epan/dissectors/packet-bpv7.c +++ b/epan/dissectors/packet-bpv7.c @@ -2296,9 +2296,9 @@ void proto_register_bpv7(void) { proto_blocktype = proto_register_protocol_in_name_only("BPv7 Block Type", "Block Type", "bpv7.block_type", proto_bp, FT_PROTOCOL); // case-sensitive string matching - payload_dissectors_dtn_wkssp = register_dissector_table("bpv7.payload.dtn_wkssp", "BPv7 DTN-scheme well-known SSP", proto_bp, FT_STRING, FALSE); + payload_dissectors_dtn_wkssp = register_dissector_table("bpv7.payload.dtn_wkssp", "BPv7 DTN-scheme well-known SSP", proto_bp, FT_STRING, STRING_CASE_SENSITIVE); - payload_dissectors_dtn_serv = register_dissector_table("bpv7.payload.dtn_serv", "BPv7 DTN-scheme service", proto_bp, FT_STRING, FALSE); + payload_dissectors_dtn_serv = register_dissector_table("bpv7.payload.dtn_serv", "BPv7 DTN-scheme service", proto_bp, FT_STRING, STRING_CASE_SENSITIVE); dissector_table_allow_decode_as(payload_dissectors_dtn_serv); static build_valid_func dtn_serv_da_build_value[1] = {dtn_serv_value}; diff --git a/epan/dissectors/packet-bthci_cmd.c b/epan/dissectors/packet-bthci_cmd.c index 3bb17d1408..033363d498 100644 --- a/epan/dissectors/packet-bthci_cmd.c +++ b/epan/dissectors/packet-bthci_cmd.c @@ -11174,7 +11174,7 @@ proto_register_btcommon(void) // Key for this table is the lower-case hex-representation of the service UUID. 16-bit UUIDs will have 4 characters, 32-bit UUIDs will have 8 characters. // 128-bit UUIDs have 4 dashes in them, and therefore have 36 characters. - bluetooth_eir_ad_service_uuid = register_dissector_table("btcommon.eir_ad.entry.uuid", "BT EIR/AD Service UUID", proto_btcommon, FT_STRING, BASE_NONE); + bluetooth_eir_ad_service_uuid = register_dissector_table("btcommon.eir_ad.entry.uuid", "BT EIR/AD Service UUID", proto_btcommon, FT_STRING, STRING_CASE_SENSITIVE); register_decode_as(&bluetooth_eir_ad_manufacturer_company_id_da); register_decode_as(&bluetooth_eir_ad_tds_organization_id_da); diff --git a/epan/dissectors/packet-coap.c b/epan/dissectors/packet-coap.c index 216eba8da4..acbaa27682 100644 --- a/epan/dissectors/packet-coap.c +++ b/epan/dissectors/packet-coap.c @@ -1843,7 +1843,7 @@ proto_register_coap(void) */ coap_tmf_media_type_dissector_table = register_dissector_table("coap_tmf_media_type", - "Internet media type for CoAP-TMF", proto_coap, FT_STRING, BASE_NONE); + "Internet media type for CoAP-TMF", proto_coap, FT_STRING, STRING_CASE_SENSITIVE); } void diff --git a/epan/dissectors/packet-dcp-etsi.c b/epan/dissectors/packet-dcp-etsi.c index bd734d0a99..259a3edf3a 100644 --- a/epan/dissectors/packet-dcp-etsi.c +++ b/epan/dissectors/packet-dcp-etsi.c @@ -901,12 +901,12 @@ proto_register_dcp_etsi (void) /* subdissector code */ dcp_dissector_table = register_dissector_table("dcp-etsi.sync", - "DCP Sync", proto_dcp_etsi, FT_STRING, BASE_NONE); + "DCP Sync", proto_dcp_etsi, FT_STRING, STRING_CASE_SENSITIVE); af_dissector_table = register_dissector_table("dcp-af.pt", "DCP-AF Payload Type", proto_dcp_etsi, FT_UINT8, BASE_DEC); tpl_dissector_table = register_dissector_table("dcp-tpl.ptr", - "DCP-TPL Protocol Type & Revision", proto_dcp_etsi, FT_STRING, BASE_NONE); + "DCP-TPL Protocol Type & Revision", proto_dcp_etsi, FT_STRING, STRING_CASE_SENSITIVE); reassembly_table_register (&dcp_reassembly_table, &addresses_reassembly_table_functions); diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c index 8b0de5cf2c..a305b8ebd1 100644 --- a/epan/dissectors/packet-dns.c +++ b/epan/dissectors/packet-dns.c @@ -6554,7 +6554,7 @@ proto_register_dns(void) "DNS address resolution settings can be changed in the Name Resolution preferences", "DNS address resolution settings can be changed in the Name Resolution preferences"); - dns_tsig_dissector_table = register_dissector_table("dns.tsig.mac", "DNS TSIG MAC", proto_dns, FT_STRING, BASE_NONE); + dns_tsig_dissector_table = register_dissector_table("dns.tsig.mac", "DNS TSIG MAC", proto_dns, FT_STRING, STRING_CASE_SENSITIVE); dns_handle = register_dissector("dns", dissect_dns, proto_dns); mdns_udp_handle = register_dissector("mdns", dissect_mdns_udp, proto_mdns); diff --git a/epan/dissectors/packet-dop.c b/epan/dissectors/packet-dop.c index 581317b15b..6914292837 100644 --- a/epan/dissectors/packet-dop.c +++ b/epan/dissectors/packet-dop.c @@ -2975,7 +2975,7 @@ void proto_register_dop(void) { dop_handle = register_dissector("dop", dissect_dop, proto_dop); - dop_dissector_table = register_dissector_table("dop.oid", "DOP OID", proto_dop, FT_STRING, BASE_NONE); + dop_dissector_table = register_dissector_table("dop.oid", "DOP OID", proto_dop, FT_STRING, STRING_CASE_SENSITIVE); /* Register fields and subtrees */ proto_register_field_array(proto_dop, hf, array_length(hf)); diff --git a/epan/dissectors/packet-dvbci.c b/epan/dissectors/packet-dvbci.c index dc279722e6..371e2b4096 100644 --- a/epan/dissectors/packet-dvbci.c +++ b/epan/dissectors/packet-dvbci.c @@ -6448,7 +6448,7 @@ proto_register_dvbci(void) &dvbci_dissect_lsc_msg); sas_msg_dissector_table = register_dissector_table("dvb-ci.sas.app_id_str", - "SAS application id", proto_dvbci, FT_STRING, BASE_NONE); + "SAS application id", proto_dvbci, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(dvbci_init); reassembly_table_register(&tpdu_reassembly_table, diff --git a/epan/dissectors/packet-e2ap.c b/epan/dissectors/packet-e2ap.c index 70d9fdea9b..8925c8148a 100644 --- a/epan/dissectors/packet-e2ap.c +++ b/epan/dissectors/packet-e2ap.c @@ -14566,7 +14566,7 @@ void proto_register_e2ap(void) { e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC); e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC); e2ap_proc_uout_dissector_table = register_dissector_table("e2ap.proc.uout", "E2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC); - e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE); + e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(&e2ap_init_protocol); } diff --git a/epan/dissectors/packet-grpc.c b/epan/dissectors/packet-grpc.c index 77792c6c83..6d618d709d 100644 --- a/epan/dissectors/packet-grpc.c +++ b/epan/dissectors/packet-grpc.c @@ -539,7 +539,7 @@ proto_register_grpc(void) */ grpc_message_type_subdissector_table = register_dissector_table("grpc_message_type", - "GRPC message type", proto_grpc, FT_STRING, BASE_NONE); + "GRPC message type", proto_grpc, FT_STRING, STRING_CASE_SENSITIVE); } void diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c index c62f1528d3..4bdacb727d 100644 --- a/epan/dissectors/packet-h225.c +++ b/epan/dissectors/packet-h225.c @@ -11641,11 +11641,11 @@ void proto_register_h225(void) { register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225); h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225); - nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, BASE_NONE); + nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter h221", proto_h225, FT_UINT32, BASE_HEX); - tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, BASE_NONE); - gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, BASE_NONE); - gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, BASE_NONE); + tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); + gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); + gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, STRING_CASE_SENSITIVE); for(i=0;i<7;i++) { ras_calls[i] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), h225ras_call_hash, h225ras_call_equal); diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c index eebc74607b..c2630156af 100644 --- a/epan/dissectors/packet-h245.c +++ b/epan/dissectors/packet-h245.c @@ -20494,10 +20494,10 @@ void proto_register_h245(void) { MultimediaSystemControlMessage_handle = register_dissector("h245dg", dissect_h245_h245, proto_h245); h245_handle = register_dissector("h245", dissect_h245, proto_h245); - nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, BASE_NONE); + nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", proto_h245, FT_UINT32, BASE_HEX); - gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework Name", proto_h245, FT_STRING, BASE_NONE); - gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework Content", proto_h245, FT_STRING, BASE_NONE); + gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework Name", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); + gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework Content", proto_h245, FT_STRING, STRING_CASE_SENSITIVE); h245_tap = register_tap("h245"); h245dg_tap = register_tap("h245dg"); diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c index 94c91d9abc..9901f80c1d 100644 --- a/epan/dissectors/packet-h450.c +++ b/epan/dissectors/packet-h450.c @@ -6429,11 +6429,11 @@ void proto_register_h450(void) { h450_err_handle = register_dissector("h4501_err", dissect_h450_err, proto_h450); /* Register dissector tables */ - h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, BASE_NONE); - h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, BASE_NONE); + h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); + h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", proto_h450, FT_UINT32, BASE_HEX); h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", proto_h450, FT_UINT32, BASE_HEX); - h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, BASE_NONE); + h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE); h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", proto_h450, FT_UINT32, BASE_HEX); } diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c index 53e805f3d0..7e83c35691 100644 --- a/epan/dissectors/packet-http.c +++ b/epan/dissectors/packet-http.c @@ -4805,7 +4805,7 @@ proto_register_http(void) * Maps the lowercase Upgrade header value. * https://tools.ietf.org/html/rfc7230#section-8.6 */ - upgrade_subdissector_table = register_dissector_table("http.upgrade", "HTTP Upgrade", proto_http, FT_STRING, BASE_NONE); + upgrade_subdissector_table = register_dissector_table("http.upgrade", "HTTP Upgrade", proto_http, FT_STRING, STRING_CASE_SENSITIVE); /* * Heuristic dissectors SHOULD register themselves in diff --git a/epan/dissectors/packet-http2.c b/epan/dissectors/packet-http2.c index 60bd2ed2b9..4ca18b8862 100644 --- a/epan/dissectors/packet-http2.c +++ b/epan/dissectors/packet-http2.c @@ -4872,7 +4872,7 @@ proto_register_http2(void) streaming_content_type_dissector_table = register_dissector_table("streaming_content_type", - "Data Transmitted over HTTP2 in Streaming Mode", proto_http2, FT_STRING, BASE_NONE); + "Data Transmitted over HTTP2 in Streaming Mode", proto_http2, FT_STRING, STRING_CASE_SENSITIVE); stream_id_content_type_dissector_table = register_dissector_table("http2.streamid", "HTTP2 content type in stream", proto_http2, FT_UINT32, BASE_DEC); diff --git a/epan/dissectors/packet-ieee17221.c b/epan/dissectors/packet-ieee17221.c index 991c44ac89..023febe072 100644 --- a/epan/dissectors/packet-ieee17221.c +++ b/epan/dissectors/packet-ieee17221.c @@ -7022,7 +7022,7 @@ proto_register_17221(void) proto_register_subtree_array(ett, array_length(ett)); /* Register the custom handler for vendor specific messages */ - vendor_unique_protocol_dissector_table = register_dissector_table("ieee17221.protocol_id", "Vendor Unique Protocol ID", proto_17221, FT_STRING, BASE_NONE); + vendor_unique_protocol_dissector_table = register_dissector_table("ieee17221.protocol_id", "Vendor Unique Protocol ID", proto_17221, FT_STRING, STRING_CASE_SENSITIVE); } void diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c index 1ded5910b1..7bec861cea 100644 --- a/epan/dissectors/packet-ldap.c +++ b/epan/dissectors/packet-ldap.c @@ -5671,7 +5671,7 @@ void proto_register_ldap(void) { ldap_tap=register_tap("ldap"); - ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, BASE_NONE); + ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, STRING_CASE_SENSITIVE); register_srt_table(proto_ldap, NULL, 1, ldapstat_packet, ldapstat_init, NULL); } diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c index bb4cdc5100..d62780918a 100644 --- a/epan/dissectors/packet-mbtcp.c +++ b/epan/dissectors/packet-mbtcp.c @@ -2170,7 +2170,7 @@ proto_register_modbus(void) mbudp_handle = register_dissector("mbudp", dissect_mbudp, proto_mbudp); /* Registering subdissectors table */ - modbus_data_dissector_table = register_dissector_table("modbus.data", "Modbus Data", proto_modbus, FT_STRING, BASE_NONE); + modbus_data_dissector_table = register_dissector_table("modbus.data", "Modbus Data", proto_modbus, FT_STRING, STRING_CASE_SENSITIVE); modbus_dissector_table = register_dissector_table("mbtcp.prot_id", "Modbus/TCP protocol identifier", proto_mbtcp, FT_UINT16, BASE_DEC); /* Required function calls to register the header fields and subtrees used */ diff --git a/epan/dissectors/packet-media-type.c b/epan/dissectors/packet-media-type.c index ff676e8968..8261309a86 100644 --- a/epan/dissectors/packet-media-type.c +++ b/epan/dissectors/packet-media-type.c @@ -24,5 +24,5 @@ proto_register_media_type(void) * "Both top-level type and subtype names are case-insensitive." */ register_dissector_table("media_type", "Internet media type", - -1 /* no protocol */, FT_STRING, TRUE); + -1 /* no protocol */, FT_STRING, STRING_CASE_INSENSITIVE); } diff --git a/epan/dissectors/packet-multipart.c b/epan/dissectors/packet-multipart.c index f48861c768..2b16103dac 100644 --- a/epan/dissectors/packet-multipart.c +++ b/epan/dissectors/packet-multipart.c @@ -1108,7 +1108,7 @@ proto_register_multipart(void) multipart_media_subdissector_table = register_dissector_table( "multipart_media_type", "Internet media type (for multipart processing)", - proto_multipart, FT_STRING, BASE_NONE); + proto_multipart, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c index dbe332017c..2cfb3fdafc 100644 --- a/epan/dissectors/packet-nbap.c +++ b/epan/dissectors/packet-nbap.c @@ -70590,9 +70590,9 @@ void proto_register_nbap(void) /* Register dissector tables */ nbap_ies_dissector_table = register_dissector_table("nbap.ies", "NBAP-PROTOCOL-IES", proto_nbap, FT_UINT32, BASE_DEC); nbap_extension_dissector_table = register_dissector_table("nbap.extension", "NBAP-PROTOCOL-EXTENSION", proto_nbap, FT_UINT32, BASE_DEC); - nbap_proc_imsg_dissector_table = register_dissector_table("nbap.proc.imsg", "NBAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nbap, FT_STRING, BASE_NONE); - nbap_proc_sout_dissector_table = register_dissector_table("nbap.proc.sout", "NBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nbap, FT_STRING, BASE_NONE); - nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nbap, FT_STRING, BASE_NONE); + nbap_proc_imsg_dissector_table = register_dissector_table("nbap.proc.imsg", "NBAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); + nbap_proc_sout_dissector_table = register_dissector_table("nbap.proc.sout", "NBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); + nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(nbap_init); } diff --git a/epan/dissectors/packet-netlink-generic.c b/epan/dissectors/packet-netlink-generic.c index 90b85956b9..64713fd2a0 100644 --- a/epan/dissectors/packet-netlink-generic.c +++ b/epan/dissectors/packet-netlink-generic.c @@ -543,7 +543,7 @@ proto_register_netlink_generic(void) "genl.family", "Linux Generic Netlink family name", proto_netlink_generic, FT_STRING, - BASE_NONE + STRING_CASE_SENSITIVE ); genl_family_map = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); diff --git a/epan/dissectors/packet-ngap.c b/epan/dissectors/packet-ngap.c index 60b1ce8111..d3ea5688a8 100644 --- a/epan/dissectors/packet-ngap.c +++ b/epan/dissectors/packet-ngap.c @@ -34415,7 +34415,7 @@ void proto_register_ngap(void) { ngap_proc_imsg_dissector_table = register_dissector_table("ngap.proc.imsg", "NGAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_ngap, FT_UINT32, BASE_DEC); ngap_proc_sout_dissector_table = register_dissector_table("ngap.proc.sout", "NGAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_ngap, FT_UINT32, BASE_DEC); ngap_proc_uout_dissector_table = register_dissector_table("ngap.proc.uout", "NGAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_ngap, FT_UINT32, BASE_DEC); - ngap_n2_ie_type_dissector_table = register_dissector_table("ngap.n2_ie_type", "NGAP N2 IE Type", proto_ngap, FT_STRING, FALSE); + ngap_n2_ie_type_dissector_table = register_dissector_table("ngap.n2_ie_type", "NGAP N2 IE Type", proto_ngap, FT_STRING, STRING_CASE_SENSITIVE); /* Register configuration options for ports */ ngap_module = prefs_register_protocol(proto_ngap, apply_ngap_prefs); diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c index 15ecffad3e..660ad08bf1 100644 --- a/epan/dissectors/packet-per.c +++ b/epan/dissectors/packet-per.c @@ -2976,7 +2976,7 @@ proto_register_per(void) "Whether the dissector should put the internal PER data in the tree or if it should hide it", &display_internal_per_fields); - per_oid_dissector_table = register_dissector_table("per.oid", "PER OID", proto_per, FT_STRING, BASE_NONE); + per_oid_dissector_table = register_dissector_table("per.oid", "PER OID", proto_per, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/packet-protobuf.c b/epan/dissectors/packet-protobuf.c index a89e6cd7da..4626f4cf01 100644 --- a/epan/dissectors/packet-protobuf.c +++ b/epan/dissectors/packet-protobuf.c @@ -2309,7 +2309,7 @@ proto_register_protobuf(void) protobuf_field_subdissector_table = register_dissector_table("protobuf_field", "Protobuf field subdissector table", - proto_protobuf, FT_STRING, BASE_NONE); + proto_protobuf, FT_STRING, STRING_CASE_SENSITIVE); expert_protobuf = expert_register_protocol(proto_protobuf); expert_register_field_array(expert_protobuf, ei, array_length(ei)); diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c index 7ddd6f429f..4d1313b70d 100644 --- a/epan/dissectors/packet-q932.c +++ b/epan/dissectors/packet-q932.c @@ -1055,9 +1055,9 @@ void proto_register_q932(void) { rose_ctx_init(&q932_rose_ctx); /* Register dissector tables */ - q932_rose_ctx.arg_global_dissector_table = register_dissector_table("q932.ros.global.arg", "Q.932 Operation Argument (global opcode)", proto_q932, FT_STRING, BASE_NONE); - q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", proto_q932, FT_STRING, BASE_NONE); - q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", proto_q932, FT_STRING, BASE_NONE); + q932_rose_ctx.arg_global_dissector_table = register_dissector_table("q932.ros.global.arg", "Q.932 Operation Argument (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); + q932_rose_ctx.res_global_dissector_table = register_dissector_table("q932.ros.global.res", "Q.932 Operation Result (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); + q932_rose_ctx.err_global_dissector_table = register_dissector_table("q932.ros.global.err", "Q.932 Error (global opcode)", proto_q932, FT_STRING, STRING_CASE_SENSITIVE); qsig_arg_local_dissector_table = register_dissector_table("q932.ros.local.arg", "Q.932 Operation Argument (local opcode)", proto_q932, FT_UINT32, BASE_HEX); qsig_res_local_dissector_table = register_dissector_table("q932.ros.local.res", "Q.932 Operation Result (local opcode)", proto_q932, FT_UINT32, BASE_HEX); diff --git a/epan/dissectors/packet-qsig.c b/epan/dissectors/packet-qsig.c index 622463bce7..9dc43bde99 100644 --- a/epan/dissectors/packet-qsig.c +++ b/epan/dissectors/packet-qsig.c @@ -16336,7 +16336,7 @@ void proto_register_qsig(void) { qsig_ie5_handle = register_dissector(PFNAME "_ie_cs5", dissect_qsig_ie_cs5, proto_qsig); /* Register dissector tables */ - extension_dissector_table = register_dissector_table("qsig.ext", "QSIG Extension", proto_qsig, FT_STRING, BASE_NONE); + extension_dissector_table = register_dissector_table("qsig.ext", "QSIG Extension", proto_qsig, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/packet-quic.c b/epan/dissectors/packet-quic.c index 834e01a5a4..dcf7cb0cc6 100644 --- a/epan/dissectors/packet-quic.c +++ b/epan/dissectors/packet-quic.c @@ -5467,7 +5467,7 @@ proto_register_quic(void) * This could in theory be an arbitrary octet string with embedded NUL * bytes, but in practice these do not exist yet. */ - quic_proto_dissector_table = register_dissector_table("quic.proto", "QUIC Protocol", proto_quic, FT_STRING, FALSE); + quic_proto_dissector_table = register_dissector_table("quic.proto", "QUIC Protocol", proto_quic, FT_STRING, STRING_CASE_SENSITIVE); } void diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c index 4f82194207..d5b7b2c418 100644 --- a/epan/dissectors/packet-rnsap.c +++ b/epan/dissectors/packet-rnsap.c @@ -63115,9 +63115,9 @@ void proto_register_rnsap(void) { /* Register dissector tables */ rnsap_ies_dissector_table = register_dissector_table("rnsap.ies", "RNSAP-PROTOCOL-IES", proto_rnsap, FT_UINT32, BASE_DEC); rnsap_extension_dissector_table = register_dissector_table("rnsap.extension", "RNSAP-PROTOCOL-EXTENSION", proto_rnsap, FT_UINT32, BASE_DEC); - rnsap_proc_imsg_dissector_table = register_dissector_table("rnsap.proc.imsg", "RNSAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_rnsap, FT_STRING, BASE_NONE); - rnsap_proc_sout_dissector_table = register_dissector_table("rnsap.proc.sout", "RNSAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_rnsap, FT_STRING, BASE_NONE); - rnsap_proc_uout_dissector_table = register_dissector_table("rnsap.proc.uout", "RNSAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_rnsap, FT_STRING, BASE_NONE); + rnsap_proc_imsg_dissector_table = register_dissector_table("rnsap.proc.imsg", "RNSAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); + rnsap_proc_sout_dissector_table = register_dissector_table("rnsap.proc.sout", "RNSAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); + rnsap_proc_uout_dissector_table = register_dissector_table("rnsap.proc.uout", "RNSAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_rnsap, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/packet-ros.c b/epan/dissectors/packet-ros.c index 00f67e922a..b933711dab 100644 --- a/epan/dissectors/packet-ros.c +++ b/epan/dissectors/packet-ros.c @@ -1182,7 +1182,7 @@ void proto_register_ros(void) { expert_ros = expert_register_protocol(proto_ros); expert_register_field_array(expert_ros, ei, array_length(ei)); - ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", proto_ros, FT_STRING, BASE_NONE); + ros_oid_dissector_table = register_dissector_table("ros.oid", "ROS OID Dissectors", proto_ros, FT_STRING, STRING_CASE_SENSITIVE); protocol_table = wmem_map_new(wmem_epan_scope(), wmem_str_hash, g_str_equal); } diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c index e689b3cc7b..44eefa24aa 100644 --- a/epan/dissectors/packet-rtcp.c +++ b/epan/dissectors/packet-rtcp.c @@ -8121,7 +8121,7 @@ proto_register_rtcp(void) &preferences_application_specific_encoding, rtcp_application_specific_encoding_vals, FALSE); /* Register table for sub-dissetors */ - rtcp_dissector_table = register_dissector_table("rtcp.app.name", "RTCP Application Name", proto_rtcp, FT_STRING, BASE_NONE); + rtcp_dissector_table = register_dissector_table("rtcp.app.name", "RTCP Application Name", proto_rtcp, FT_STRING, STRING_CASE_SENSITIVE); rtcp_psfb_dissector_table = register_dissector_table("rtcp.psfb.fmt", "RTCP Payload Specific Feedback Message Format", proto_rtcp, FT_UINT8, BASE_DEC); rtcp_rtpfb_dissector_table = register_dissector_table("rtcp.rtpfb.fmt", "RTCP Generic RTP Feedback Message Format", proto_rtcp, FT_UINT8, BASE_DEC); } diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c index 0bdbf2011f..a85d80cc90 100644 --- a/epan/dissectors/packet-rtp.c +++ b/epan/dissectors/packet-rtp.c @@ -3390,7 +3390,7 @@ proto_register_rtp(void) rtp_pt_dissector_table = register_dissector_table("rtp.pt", "RTP payload type", proto_rtp, FT_UINT8, BASE_DEC); rtp_dyn_pt_dissector_table = register_dissector_table("rtp_dyn_payload_type", - "Dynamic RTP payload type", proto_rtp, FT_STRING, TRUE); + "Dynamic RTP payload type", proto_rtp, FT_STRING, STRING_CASE_INSENSITIVE); rtp_hdr_ext_dissector_table = register_dissector_table("rtp.hdr_ext", diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c index d3e16913e0..2884e86faa 100644 --- a/epan/dissectors/packet-rtps.c +++ b/epan/dissectors/packet-rtps.c @@ -17105,7 +17105,7 @@ void proto_register_rtps(void) { &enable_rtps_reassembly); rtps_type_name_table = register_dissector_table("rtps.type_name", "RTPS Type Name", - proto_rtps, FT_STRING, BASE_NONE); + proto_rtps, FT_STRING, STRING_CASE_SENSITIVE); registry = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), hash_by_guid, compare_by_guid); dissection_infos = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_int64_hash, g_int64_equal); diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c index 08ecf5f38c..07368dc265 100644 --- a/epan/dissectors/packet-rtse.c +++ b/epan/dissectors/packet-rtse.c @@ -970,7 +970,7 @@ void proto_register_rtse(void) { " \"Allow subdissectors to reassemble TCP streams\"" " in the TCP protocol settings.", &rtse_reassemble); - rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", proto_rtse, FT_STRING, BASE_NONE); + rtse_oid_dissector_table = register_dissector_table("rtse.oid", "RTSE OID Dissectors", proto_rtse, FT_STRING, STRING_CASE_SENSITIVE); } diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c index 56c3882279..356ebf41bd 100644 --- a/epan/dissectors/packet-sdp.c +++ b/epan/dissectors/packet-sdp.c @@ -3433,7 +3433,7 @@ proto_register_sdp(void) expert_register_field_array(expert_sdp, ei, array_length(ei)); key_mgmt_dissector_table = register_dissector_table("key_mgmt", - "Key Management", proto_sdp, FT_STRING, BASE_NONE); + "Key Management", proto_sdp, FT_STRING, STRING_CASE_SENSITIVE); /* * Preferences registration */ diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c index 2edc26f0a6..9dc52a79e6 100644 --- a/epan/dissectors/packet-sip.c +++ b/epan/dissectors/packet-sip.c @@ -7822,7 +7822,7 @@ void proto_register_sip(void) sip_tap = register_tap("sip"); sip_follow_tap = register_tap("sip_follow"); - ext_hdr_subdissector_table = register_dissector_table("sip.hdr", "SIP Extension header", proto_sip, FT_STRING, BASE_NONE); + ext_hdr_subdissector_table = register_dissector_table("sip.hdr", "SIP Extension header", proto_sip, FT_STRING, STRING_CASE_SENSITIVE); register_stat_tap_table_ui(&sip_stat_table); diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c index 9be7c127aa..1f823e5107 100644 --- a/epan/dissectors/packet-snmp.c +++ b/epan/dissectors/packet-snmp.c @@ -4074,7 +4074,7 @@ void proto_register_snmp(void) { "MIB settings can be changed in the Name Resolution preferences"); #endif - value_sub_dissectors_table = register_dissector_table("snmp.variable_oid","SNMP Variable OID", proto_snmp, FT_STRING, BASE_NONE); + value_sub_dissectors_table = register_dissector_table("snmp.variable_oid","SNMP Variable OID", proto_snmp, FT_STRING, STRING_CASE_SENSITIVE); register_init_routine(init_ue_cache); register_cleanup_routine(cleanup_ue_cache); diff --git a/epan/dissectors/packet-t124.c b/epan/dissectors/packet-t124.c index 97a09a6a1e..a6e812ccb0 100644 --- a/epan/dissectors/packet-t124.c +++ b/epan/dissectors/packet-t124.c @@ -3958,7 +3958,7 @@ void proto_register_t124(void) { proto_register_field_array(proto_t124, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); - t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124, FT_STRING, BASE_NONE); + t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124, FT_STRING, STRING_CASE_SENSITIVE); t124_sd_dissector_table = register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", proto_t124, FT_UINT32, BASE_HEX); register_dissector("t124", dissect_t124, proto_t124); diff --git a/epan/dissectors/packet-tali.c b/epan/dissectors/packet-tali.c index aa43280d64..8450703660 100644 --- a/epan/dissectors/packet-tali.c +++ b/epan/dissectors/packet-tali.c @@ -196,7 +196,7 @@ proto_register_tali(void) register_dissector("tali", dissect_tali, proto_tali); - tali_dissector_table = register_dissector_table("tali.opcode", "Tali OPCODE", proto_tali, FT_STRING, BASE_NONE); + tali_dissector_table = register_dissector_table("tali.opcode", "Tali OPCODE", proto_tali, FT_STRING, STRING_CASE_SENSITIVE); tali_module = prefs_register_protocol(proto_tali, NULL); prefs_register_bool_preference(tali_module, "reassemble", diff --git a/epan/dissectors/packet-thread.c b/epan/dissectors/packet-thread.c index efa08351b1..dfed394d40 100644 --- a/epan/dissectors/packet-thread.c +++ b/epan/dissectors/packet-thread.c @@ -3392,7 +3392,7 @@ proto_register_thread_coap(void) thread_coap_handle = register_dissector("thread_coap", dissect_thread_coap, proto_thread_coap); dissector_add_string("coap_tmf_media_type", "application/octet-stream", thread_coap_handle); - thread_coap_namespace = register_dissector_table("thread.coap_namespace", "Thread CoAP namespace", proto_thread_coap, FT_STRING, BASE_NONE); + thread_coap_namespace = register_dissector_table("thread.coap_namespace", "Thread CoAP namespace", proto_thread_coap, FT_STRING, STRING_CASE_SENSITIVE); } void diff --git a/epan/dissectors/packet-thrift.c b/epan/dissectors/packet-thrift.c index 1d485b3424..c282006746 100644 --- a/epan/dissectors/packet-thrift.c +++ b/epan/dissectors/packet-thrift.c @@ -3502,7 +3502,7 @@ proto_register_thrift(void) thrift_module = prefs_register_protocol(proto_thrift, proto_reg_handoff_thrift); thrift_method_name_dissector_table = register_dissector_table("thrift.method_names", "Thrift Method names", - proto_thrift, FT_STRING, FALSE); /* FALSE because Thrift is case-sensitive */ + proto_thrift, FT_STRING, STRING_CASE_SENSITIVE); /* FALSE because Thrift is case-sensitive */ prefs_register_enum_preference(thrift_module, "decode_binary", "Display binary as bytes or strings", diff --git a/epan/dissectors/packet-tls-utils.c b/epan/dissectors/packet-tls-utils.c index f4aeeb9e83..2e09fad3d1 100644 --- a/epan/dissectors/packet-tls-utils.c +++ b/epan/dissectors/packet-tls-utils.c @@ -10720,7 +10720,7 @@ ssl_common_register_ssl_alpn_dissector_table(const char *name, const char *ui_name, const int proto) { ssl_alpn_dissector_table = register_dissector_table(name, ui_name, - proto, FT_STRING, FALSE); + proto, FT_STRING, STRING_CASE_SENSITIVE); register_dissector_table_alias(ssl_alpn_dissector_table, "ssl.handshake.extensions_alpn_str"); } @@ -10729,7 +10729,7 @@ ssl_common_register_dtls_alpn_dissector_table(const char *name, const char *ui_name, const int proto) { dtls_alpn_dissector_table = register_dissector_table(name, ui_name, - proto, FT_STRING, FALSE); + proto, FT_STRING, STRING_CASE_SENSITIVE); register_dissector_table_alias(ssl_alpn_dissector_table, "dtls.handshake.extensions_alpn_str"); } diff --git a/epan/dissectors/packet-websocket.c b/epan/dissectors/packet-websocket.c index 74ab98be67..e106dd3a31 100644 --- a/epan/dissectors/packet-websocket.c +++ b/epan/dissectors/packet-websocket.c @@ -982,7 +982,7 @@ proto_register_websocket(void) "TCP port for protocols using WebSocket", proto_websocket, FT_UINT16, BASE_DEC); protocol_subdissector_table = register_dissector_table("ws.protocol", - "Negotiated WebSocket protocol", proto_websocket, FT_STRING, BASE_NONE); + "Negotiated WebSocket protocol", proto_websocket, FT_STRING, STRING_CASE_SENSITIVE); reassembly_table_register(&ws_reassembly_table, &addresses_reassembly_table_functions); diff --git a/epan/packet.h b/epan/packet.h index 92eadbb2c6..b7bdbde13e 100644 --- a/epan/packet.h +++ b/epan/packet.h @@ -47,6 +47,12 @@ struct epan_range; ((guint)(offset) + (guint)(len) > (guint)(offset) && \ (guint)(offset) + (guint)(len) <= (guint)(captured_len)) +/* 0 is case insenstive for backwards compatibility with tables that + * used FALSE or BASE_NONE for case sensitive, which was the default. + */ +#define STRING_CASE_SENSITIVE 0 +#define STRING_CASE_INSENSITIVE 1 + extern void packet_init(void); extern void packet_cache_proto_handles(void); extern void packet_cleanup(void); @@ -166,9 +172,9 @@ WS_DLL_PUBLIC void dissector_all_tables_foreach_table (DATFunc_table func, /* a protocol uses the function to register a sub-dissector table * - * 'param' is the display base for integer tables, and TRUE/FALSE for - * string tables (true indicating case-insensitive, false indicating - * case-sensitive) + * 'param' is the display base for integer tables, STRING_CASE_SENSITIVE + * or STRING_CASE_INSENSITIVE for string tables, and ignored for other + * table types. */ WS_DLL_PUBLIC dissector_table_t register_dissector_table(const char *name, const char *ui_name, const int proto, const ftenum_t type, const int param); diff --git a/tools/fix-encoding-args.pl b/tools/fix-encoding-args.pl index 8c6635e0a3..04151a27d6 100755 --- a/tools/fix-encoding-args.pl +++ b/tools/fix-encoding-args.pl @@ -55,6 +55,15 @@ my $searchReplaceEncNAHRef = "ENC_ASCII | ENC_NA" => "ENC_NA" }; +my $searchReplaceDissectorTable = + { + "FALSE" => "STRING_CASE_SENSITIVE", + "0" => "STRING_CASE_SENSITIVE", + "BASE_NONE" => "STRING_CASE_SENSITIVE", + "TRUE" => "STRING_CASE_INSENSITIVE", + "1" => "STRING_CASE_INSENSITIVE" + }; + # --------------------------------------------------------------------- # Conversion "request" structure # ( @@ -144,6 +153,7 @@ my @findAllFunctionList = tvb_get_bits64 ptvcursor_add ptvcursor_add_no_advance + register_dissector_table ); # --------------------------------------------------------------------- @@ -244,6 +254,8 @@ while (my $fileName = $ARGV[0]) { $found += fix_encoding_args(1, $searchReplaceFalseTrueHRef, "tvb_get_bits(?:16|24|32|64)?", \$fileContents, $fileName); $found += fix_encoding_args(1, $searchReplaceFalseTrueHRef, "tvb_get_(?:ephemeral_)?unicode_string[z]?", \$fileContents, $fileName); + $found += fix_dissector_table_args(1, $searchReplaceDissectorTable, "register_dissector_table", \$fileContents, $fileName); + # If desired and if any changes, write out the changed version to a file if (($writeFlag) && ($found > 0)) { open(FCO, ">", $fileName . ".encoding-arg-fixes"); @@ -564,6 +576,92 @@ sub find_hf_array_entries { } # block end # --------------------------------------------------------------------- +# fix_dissector_table_args +# Substitute new values for the specified <fcn_name>() encoding arg values +# when the encoding arg is the *last* arg of the call to fcn_name +# args: +# substitute_flag: 1: replace specified encoding arg values by a new value (keys/values in search hash); +# ref to hash containing search (keys) and replacement (values) for encoding arg +# fcn_name string +# ref to string containing file contents +# filename string +# +{ # block begin + + # shared variables + my $fileName; + my $searchReplaceHRef; + my $found; + + sub fix_dissector_table_args { + (my $subFlag, $searchReplaceHRef, my $fcn_name, my $fileContentsRef, $fileName) = @_; + + my $encArgPat; + + if ($subFlag == 1) { + # just match for <fcn_name>() statements which have an encoding arg matching one of the + # keys in the searchReplace hash. + # Escape any "|" characters in the keys + # and then create "alternatives" string containing all the resulting key strings. Ex: "(A|B|C\|D|..." + $encArgPat = join "|", map { my $copy = $_; $copy =~ s{ ( \| ) }{\\$1}gx; $copy } keys %$searchReplaceHRef; + } elsif ($subFlag == 3) { + # match for <fcn_name>() statements for any value of the encoding parameter + # IOW: find all the <fcn_name> statements + $encArgPat = qr / [^,)]+? /x; + } + + # build the complete pattern + my $patRegEx = qr / + # part 1: $1 + ( + (?:^|=) # don't try to handle fcn_name call when arg of another fcn call + \s* + $fcn_name \s* \( + [^;]+? # a bit dangerous + ,\s* + FT_STRING[A-Z]* + ,\s* + ) + + # part 2: $2 + # exact match of pattern (including spaces) + ((?-x)$encArgPat) + + # part 3: $3 + ( + \s* \) + \s* ; + ) + /xms; # m for ^ above + + ##print "$patRegEx\n"; + + ## Match and substitute as specified + $found = 0; + + $$fileContentsRef =~ s/ $patRegEx /patsuby($1,$2,$3)/xges; + + return $found; + } + + # Called from fix_encoding_args to determine replacement string when a regex match is encountered + # $_[0]: part 1 + # $_[1]: part 2: encoding arg + # $_[2]: part 3 + # lookup the desired replacement value for the encoding arg + # print match string showing and highlighting the encoding arg replacement + # return "replacement" string + sub patsuby { + $found += 1; + my $substr = exists $$searchReplaceHRef{$_[1]} ? $$searchReplaceHRef{$_[1]} : "???"; + my $str = sprintf("%s[[%s]-->[%s]]%s", $_[0], $_[1], $substr, $_[2]); + $str =~ tr/\t\n\r/ /d; + printf "%s: $str\n", $fileName; + return $_[0] . $substr . $_[2]; + } +} # block end + +# --------------------------------------------------------------------- # Find all <fcnList> statements # and output same highlighting the encoding arg # Currently: encoding arg is matched as the *last* arg of the function call |