diff --git a/asn1/c1222/packet-c1222-template.c b/asn1/c1222/packet-c1222-template.c index 4c3d91d9a8..f4765f244b 100644 --- a/asn1/c1222/packet-c1222-template.c +++ b/asn1/c1222/packet-c1222-template.c @@ -1314,7 +1314,7 @@ void proto_register_c1222(void) { TRUE, /* from_profile */ (void*)&c1222_uat_data, /* data_ptr */ &num_c1222_uat_data, /* numitems_ptr */ - UAT_CAT_CRYPTO, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* help */ NULL, /* copy callback */ c1222_uat_data_update_cb, /* update callback */ diff --git a/asn1/ess/packet-ess-template.c b/asn1/ess/packet-ess-template.c index e1cccfe3fb..68dbc76ad0 100644 --- a/asn1/ess/packet-ess-template.c +++ b/asn1/ess/packet-ess-template.c @@ -173,7 +173,7 @@ void proto_register_ess(void) { TRUE, (void*) &ess_category_attributes, &num_ess_category_attributes, - UAT_CAT_PORTS, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChEssCategoryAttributes", ess_copy_cb, NULL, diff --git a/asn1/ldap/packet-ldap-template.c b/asn1/ldap/packet-ldap-template.c index 66f7092559..983e9a1501 100644 --- a/asn1/ldap/packet-ldap-template.c +++ b/asn1/ldap/packet-ldap-template.c @@ -2283,7 +2283,9 @@ void proto_register_ldap(void) { TRUE, (void*) &attribute_types, &num_attribute_types, - UAT_CAT_FIELDS, + /* specifies named fields, so affects dissection + and the set of named fields */ + UAT_AFFECTS_DISSECTION|UAT_AFFECTS_FIELDS, NULL, attribute_types_copy_cb, attribute_types_update_cb, diff --git a/asn1/pres/packet-pres-template.c b/asn1/pres/packet-pres-template.c index b2be9b12f4..9ae69ddf7d 100644 --- a/asn1/pres/packet-pres-template.c +++ b/asn1/pres/packet-pres-template.c @@ -417,7 +417,7 @@ void proto_register_pres(void) { TRUE, (void*) &pres_users, &num_pres_users, - UAT_CAT_PORTS, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChPresContextList", pres_copy_cb, NULL, diff --git a/asn1/snmp/packet-snmp-template.c b/asn1/snmp/packet-snmp-template.c index 498e483374..7af883917a 100644 --- a/asn1/snmp/packet-snmp-template.c +++ b/asn1/snmp/packet-snmp-template.c @@ -2236,7 +2236,7 @@ void proto_register_snmp(void) { TRUE, (void*)&ueas, &num_ueas, - UAT_CAT_CRYPTO, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChSNMPUsersSection", snmp_users_copy_cb, snmp_users_update_cb, @@ -2257,7 +2257,7 @@ void proto_register_snmp(void) { TRUE, (void*) &specific_traps, &num_specific_traps, - UAT_CAT_GENERAL, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChSNMPEnterpriseSpecificTrapTypes", snmp_specific_trap_copy_cb, NULL, diff --git a/epan/dfilter/dfilter-macro.c b/epan/dfilter/dfilter-macro.c index 39b83fb127..78a9ad3e87 100644 --- a/epan/dfilter/dfilter-macro.c +++ b/epan/dfilter/dfilter-macro.c @@ -615,7 +615,7 @@ void dfilter_macro_init(void) { TRUE, (void*) ¯os, &num_macros, - NULL, + 0, /* doesn't affect anything that requires a GUI update */ "ChDisplayFilterMacrosSection", macro_copy, macro_update, diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c index b9dd02a349..b77b59d185 100644 --- a/epan/dissectors/packet-ber.c +++ b/epan/dissectors/packet-ber.c @@ -4937,7 +4937,7 @@ proto_register_ber(void) FALSE, (void*) &oid_users, &num_oid_users, - UAT_CAT_GENERAL, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChObjectIdentifiers", oid_copy_cb, NULL, diff --git a/epan/dissectors/packet-bootp.c b/epan/dissectors/packet-bootp.c index 247c1da9da..252f0cefd7 100644 --- a/epan/dissectors/packet-bootp.c +++ b/epan/dissectors/packet-bootp.c @@ -6440,7 +6440,7 @@ proto_register_bootp(void) TRUE, /* from_profile */ (void*) &uat_bootp_records, /* data_ptr */ &num_bootp_records_uat, /* numitems_ptr */ - UAT_CAT_GENERAL, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* help */ uat_bootp_record_copy_cb, /* copy callback */ uat_bootp_record_update_cb, /* update callback */ diff --git a/epan/dissectors/packet-c1222.c b/epan/dissectors/packet-c1222.c index 12f91bf0b5..8132b235f5 100644 --- a/epan/dissectors/packet-c1222.c +++ b/epan/dissectors/packet-c1222.c @@ -1887,7 +1887,7 @@ void proto_register_c1222(void) { TRUE, /* from_profile */ (void*)&c1222_uat_data, /* data_ptr */ &num_c1222_uat_data, /* numitems_ptr */ - UAT_CAT_CRYPTO, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* help */ NULL, /* copy callback */ c1222_uat_data_update_cb, /* update callback */ diff --git a/epan/dissectors/packet-dmp.c b/epan/dissectors/packet-dmp.c index 6485f69aba..a9c81642fd 100644 --- a/epan/dissectors/packet-dmp.c +++ b/epan/dissectors/packet-dmp.c @@ -4975,7 +4975,7 @@ void proto_register_dmp (void) TRUE, (void*) &dmp_security_classes, &num_dmp_security_classes, - UAT_CAT_FFMT, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChDMPSecurityClassifications", dmp_class_copy_cb, NULL, diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c index 108d5ea25a..81055996af 100644 --- a/epan/dissectors/packet-dtls.c +++ b/epan/dissectors/packet-dtls.c @@ -2695,7 +2695,7 @@ proto_register_dtls(void) TRUE, /* from_profile */ (void*) &dtlskeylist_uats, /* data_ptr */ &ndtlsdecrypt, /* numitems_ptr */ - UAT_CAT_FFMT, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChK12ProtocolsSection", /* TODO, need revision - help */ dtlsdecrypt_copy_cb, NULL, /* dtlsdecrypt_update_cb? */ diff --git a/epan/dissectors/packet-ess.c b/epan/dissectors/packet-ess.c index 51d5abc813..080a61833b 100644 --- a/epan/dissectors/packet-ess.c +++ b/epan/dissectors/packet-ess.c @@ -1482,7 +1482,7 @@ void proto_register_ess(void) { TRUE, (void*) &ess_category_attributes, &num_ess_category_attributes, - UAT_CAT_PORTS, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChEssCategoryAttributes", ess_copy_cb, NULL, diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c index f6a2dbf5c5..73b92323c0 100644 --- a/epan/dissectors/packet-http.c +++ b/epan/dissectors/packet-http.c @@ -2783,7 +2783,9 @@ proto_register_http(void) TRUE, (void*) &header_fields, &num_header_fields, - UAT_CAT_FIELDS, + /* specifies named fields, so affects dissection + and the set of named fields */ + UAT_AFFECTS_DISSECTION|UAT_AFFECTS_FIELDS, NULL, header_fields_copy_cb, header_fields_update_cb, diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index 22646707eb..0af4e5705b 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -16574,7 +16574,7 @@ proto_register_ieee80211 (void) TRUE, /* from_profile */ (void*) &uat_wep_key_records, /* data_ptr */ &num_wepkeys_uat, /* numitems_ptr */ - UAT_CAT_CRYPTO, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* help */ uat_wep_key_record_copy_cb, /* copy callback */ uat_wep_key_record_update_cb, /* update callback */ diff --git a/epan/dissectors/packet-ieee802154.c b/epan/dissectors/packet-ieee802154.c index f692000003..b3f29d8584 100644 --- a/epan/dissectors/packet-ieee802154.c +++ b/epan/dissectors/packet-ieee802154.c @@ -2726,7 +2726,7 @@ void proto_register_ieee802154(void) TRUE, /* from_profile */ (void*) &static_addrs, /* data_ptr */ &num_static_addrs, /* numitems_ptr */ - UAT_CAT_GENERAL, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* help */ NULL, /* copy callback */ addr_uat_update_cb, /* update callback */ diff --git a/epan/dissectors/packet-imf.c b/epan/dissectors/packet-imf.c index bbb9adb366..a166adda60 100644 --- a/epan/dissectors/packet-imf.c +++ b/epan/dissectors/packet-imf.c @@ -1216,7 +1216,9 @@ proto_register_imf(void) TRUE, (void*) &header_fields, &num_header_fields, - UAT_CAT_FIELDS, + /* specifies named fields, so affects dissection + and the set of named fields */ + UAT_AFFECTS_DISSECTION|UAT_AFFECTS_FIELDS, NULL, header_fields_copy_cb, header_fields_update_cb, diff --git a/epan/dissectors/packet-ipsec.c b/epan/dissectors/packet-ipsec.c index ba7600c1b8..a897a8938c 100644 --- a/epan/dissectors/packet-ipsec.c +++ b/epan/dissectors/packet-ipsec.c @@ -2112,25 +2112,25 @@ proto_register_ipsec(void) "Attempt to Check ESP Authentication based on the SAD described hereafter.", &g_esp_enable_authentication_check); - esp_uat = uat_new("ESP SAs", - sizeof(uat_esp_sa_record_t), /* record size */ - "esp_sa", /* filename */ - TRUE, /* from_profile */ - (void*) &uat_esp_sa_records, /* data_ptr */ - &num_sa_uat, /* numitems_ptr */ - UAT_CAT_CRYPTO, /* category */ - NULL, /* help */ + esp_uat = uat_new("ESP SAs", + sizeof(uat_esp_sa_record_t), /* record size */ + "esp_sa", /* filename */ + TRUE, /* from_profile */ + (void*) &uat_esp_sa_records, /* data_ptr */ + &num_sa_uat, /* numitems_ptr */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ + NULL, /* help */ uat_esp_sa_record_copy_cb, /* copy callback */ - NULL, /* update callback */ + NULL, /* update callback */ uat_esp_sa_record_free_cb, /* free callback */ - NULL, /* post update callback */ - esp_uat_flds); /* UAT field definitions */ + NULL, /* post update callback */ + esp_uat_flds); /* UAT field definitions */ - prefs_register_uat_preference(esp_module, - "sa_table", - "ESP SAs", - "Preconfigured ESP Security Associations", - esp_uat); + prefs_register_uat_preference(esp_module, + "sa_table", + "ESP SAs", + "Preconfigured ESP Security Associations", + esp_uat); #endif diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c index 36b19312ef..2beaa362b8 100644 --- a/epan/dissectors/packet-isakmp.c +++ b/epan/dissectors/packet-isakmp.c @@ -6104,7 +6104,7 @@ proto_register_isakmp(void) TRUE, (void*)&ikev1_uat_data, &num_ikev1_uat_data, - UAT_CAT_CRYPTO, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChIKEv1DecryptionSection", NULL, ikev1_uat_data_update_cb, @@ -6124,7 +6124,7 @@ proto_register_isakmp(void) TRUE, (void*)&ikev2_uat_data, &num_ikev2_uat_data, - UAT_CAT_CRYPTO, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChIKEv2DecryptionSection", NULL, ikev2_uat_data_update_cb, diff --git a/epan/dissectors/packet-k12.c b/epan/dissectors/packet-k12.c index 3aee1e594b..52037eaaab 100644 --- a/epan/dissectors/packet-k12.c +++ b/epan/dissectors/packet-k12.c @@ -455,9 +455,9 @@ proto_register_k12(void) sizeof(k12_handles_t), "k12_protos", /* filename */ TRUE, /* from_profile */ - (void*) &k12_handles, /* data_ptr */ + (void*) &k12_handles, /* data_ptr */ &nk12_handles, /* numitems_ptr */ - UAT_CAT_FFMT, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChK12ProtocolsSection", /* help */ k12_copy_cb, k12_update_cb, diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c index 35093ffe46..07c5860c3a 100644 --- a/epan/dissectors/packet-ldap.c +++ b/epan/dissectors/packet-ldap.c @@ -5889,7 +5889,9 @@ void proto_register_ldap(void) { TRUE, (void*) &attribute_types, &num_attribute_types, - UAT_CAT_FIELDS, + /* specifies named fields, so affects dissection + and the set of named fields */ + UAT_AFFECTS_DISSECTION|UAT_AFFECTS_FIELDS, NULL, attribute_types_copy_cb, attribute_types_update_cb, @@ -6004,7 +6006,7 @@ proto_reg_handoff_ldap(void) /*--- End of included file: packet-ldap-dis-tab.c ---*/ -#line 2385 "../../asn1/ldap/packet-ldap-template.c" +#line 2387 "../../asn1/ldap/packet-ldap-template.c" } diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c index 3d0ea73ada..2942ffb8b9 100644 --- a/epan/dissectors/packet-mac-lte.c +++ b/epan/dissectors/packet-mac-lte.c @@ -5692,7 +5692,7 @@ void proto_register_mac_lte(void) TRUE, (void*) &lcid_drb_mappings, &num_lcid_drb_mappings, - UAT_CAT_FFMT, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "", /* TODO: is this ref to help manual? */ lcid_drb_mapping_copy_cb, NULL, diff --git a/epan/dissectors/packet-pres.c b/epan/dissectors/packet-pres.c index 24de4f028b..2044ee652c 100644 --- a/epan/dissectors/packet-pres.c +++ b/epan/dissectors/packet-pres.c @@ -1928,7 +1928,7 @@ void proto_register_pres(void) { TRUE, (void*) &pres_users, &num_pres_users, - UAT_CAT_PORTS, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChPresContextList", pres_copy_cb, NULL, diff --git a/epan/dissectors/packet-reload.c b/epan/dissectors/packet-reload.c index 9e48fe7fa1..60d1a0c394 100644 --- a/epan/dissectors/packet-reload.c +++ b/epan/dissectors/packet-reload.c @@ -5886,11 +5886,11 @@ proto_register_reload(void) reloadkindids_uat = uat_new("Kind-ID Table", sizeof(kind_t), - "reload_kindids", /* filename */ + "reload_kindids", /* filename */ TRUE, /* from_profile */ (void*) &kindidlist_uats, /* data_ptr */ - &nreloadkinds, /* numitems_ptr */ - UAT_CAT_GENERAL, /* category */ + &nreloadkinds, /* numitems_ptr */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* Help section (currently a wiki page) */ uat_kindid_copy_cb, NULL, diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c index 005a55ee60..8bb9ec4aa3 100644 --- a/epan/dissectors/packet-sccp.c +++ b/epan/dissectors/packet-sccp.c @@ -4002,9 +4002,10 @@ proto_register_sccp(void) uat_t *users_uat = uat_new("SCCP Users Table", sizeof(sccp_user_t), "sccp_users", TRUE, (void*) &sccp_users, - &num_sccp_users, UAT_CAT_PORTS, "ChSccpUsers", - sccp_users_copy_cb, sccp_users_update_cb, - sccp_users_free_cb, NULL, users_flds ); + &num_sccp_users, UAT_AFFECTS_DISSECTION, + "ChSccpUsers", sccp_users_copy_cb, + sccp_users_update_cb, sccp_users_free_cb, + NULL, users_flds ); /* Register the protocol name and description */ proto_sccp = proto_register_protocol("Signalling Connection Control Part", diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c index 8d2fb1d23a..8cf7663acb 100644 --- a/epan/dissectors/packet-snmp.c +++ b/epan/dissectors/packet-snmp.c @@ -3749,7 +3749,7 @@ void proto_register_snmp(void) { TRUE, (void*)&ueas, &num_ueas, - UAT_CAT_CRYPTO, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChSNMPUsersSection", snmp_users_copy_cb, snmp_users_update_cb, @@ -3770,7 +3770,7 @@ void proto_register_snmp(void) { TRUE, (void*) &specific_traps, &num_specific_traps, - UAT_CAT_GENERAL, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChSNMPEnterpriseSpecificTrapTypes", snmp_specific_trap_copy_cb, NULL, diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c index fd41c32d04..5d7a4007a6 100644 --- a/epan/dissectors/packet-ssl.c +++ b/epan/dissectors/packet-ssl.c @@ -5683,7 +5683,7 @@ proto_register_ssl(void) TRUE, /* from_profile */ (void*) &sslkeylist_uats, /* data_ptr */ &nssldecrypt, /* numitems_ptr */ - UAT_CAT_FFMT, /* category */ + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* Help section (currently a wiki page) */ ssldecrypt_copy_cb, ssldecrypt_update_cb, diff --git a/epan/dissectors/packet-user_encap.c b/epan/dissectors/packet-user_encap.c index 4698686c2f..e4393108fa 100644 --- a/epan/dissectors/packet-user_encap.c +++ b/epan/dissectors/packet-user_encap.c @@ -223,12 +223,12 @@ void proto_register_user_encap(void) TRUE, (void*) &encaps, &num_encaps, - UAT_CAT_FFMT, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ "ChUserDLTsSection", user_copy_cb, NULL, user_free_cb, - NULL, + NULL, user_flds ); prefs_register_uat_preference(module, diff --git a/epan/dissectors/packet-vcdu.c b/epan/dissectors/packet-vcdu.c index eae1d0e2f1..93019288cb 100644 --- a/epan/dissectors/packet-vcdu.c +++ b/epan/dissectors/packet-vcdu.c @@ -616,7 +616,7 @@ proto_register_vcdu(void) TRUE, (void*)&uat_bitchannels, &num_channels_uat, - UAT_CAT_GENERAL, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, NULL, vcdu_uat_data_update_cb, diff --git a/epan/dissectors/packet-zbee-security.c b/epan/dissectors/packet-zbee-security.c index bb84f65d59..55838ecb68 100644 --- a/epan/dissectors/packet-zbee-security.c +++ b/epan/dissectors/packet-zbee-security.c @@ -274,7 +274,7 @@ void zbee_security_register(module_t *zbee_prefs, int proto) TRUE, (void*) &uat_key_records, &num_uat_key_records, - UAT_CAT_FFMT, + UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */ NULL, /* TODO: ptr to help manual? */ uat_key_record_copy_cb, uat_key_record_update_cb, diff --git a/epan/geoip_db.c b/epan/geoip_db.c index 98bca94dec..fd9fb4d89f 100644 --- a/epan/geoip_db.c +++ b/epan/geoip_db.c @@ -154,12 +154,14 @@ geoip_db_pref_init(module_t *nameres) FALSE, (void*)&geoip_db_paths, &num_geoip_db_paths, - UAT_CAT_GENERAL, + /* affects dissection of packets (as the GeoIP database is + used when dissecting), but not set of named fields */ + UAT_AFFECTS_DISSECTION, "ChGeoIPDbPaths", geoip_db_path_copy_cb, NULL, geoip_db_path_free_cb, - NULL, + NULL, geoip_db_paths_fields); prefs_register_uat_preference(nameres, diff --git a/epan/oids.c b/epan/oids.c index 058174b3a7..13b284398e 100644 --- a/epan/oids.c +++ b/epan/oids.c @@ -740,47 +740,61 @@ void oid_pref_init(module_t *nameres) "Some errors can be ignored. If unsure, set to false.", &suppress_smi_errors); - smi_paths_uat = uat_new("SMI Paths", - sizeof(smi_module_t), - "smi_paths", - FALSE, - (void*)&smi_paths, - &num_smi_paths, - UAT_CAT_GENERAL, - "ChSNMPSMIPaths", - smi_mod_copy_cb, - NULL, - smi_mod_free_cb, - restart_needed_warning, - smi_paths_fields); + smi_paths_uat = uat_new("SMI Paths", + sizeof(smi_module_t), + "smi_paths", + FALSE, + (void*)&smi_paths, + &num_smi_paths, + /* affects dissection of packets (as the MIBs and PIBs affect the + interpretation of e.g. SNMP variable bindings), but not set of + named fields - prefs_register_uat_preference(nameres, - "smi_paths", - "SMI (MIB and PIB) paths", - "Search paths for SMI (MIB and PIB) modules. You must\n" - "restart Wireshark for these changes to take effect.", - smi_paths_uat); + XXX - if named fields are generated from the MIBs and PIBs + for particular variable bindings, this *does* affect the set + of named fields! */ + UAT_AFFECTS_DISSECTION, + "ChSNMPSMIPaths", + smi_mod_copy_cb, + NULL, + smi_mod_free_cb, + restart_needed_warning, + smi_paths_fields); - smi_modules_uat = uat_new("SMI Modules", - sizeof(smi_module_t), - "smi_modules", - FALSE, - (void*)&smi_modules, - &num_smi_modules, - UAT_CAT_GENERAL, - "ChSNMPSMIModules", - smi_mod_copy_cb, - NULL, - smi_mod_free_cb, - restart_needed_warning, - smi_fields); + prefs_register_uat_preference(nameres, + "smi_paths", + "SMI (MIB and PIB) paths", + "Search paths for SMI (MIB and PIB) modules. You must\n" + "restart Wireshark for these changes to take effect.", + smi_paths_uat); - prefs_register_uat_preference(nameres, - "smi_modules", - "SMI (MIB and PIB) modules", - "List of enabled SMI (MIB and PIB) modules. You must\n" - "restart Wireshark for these changes to take effect.", - smi_modules_uat); + smi_modules_uat = uat_new("SMI Modules", + sizeof(smi_module_t), + "smi_modules", + FALSE, + (void*)&smi_modules, + &num_smi_modules, + /* affects dissection of packets (as the MIBs and PIBs affect the + interpretation of e.g. SNMP variable bindings), but not set of + named fields + + XXX - if named fields are generated from the MIBs and PIBs + for particular variable bindings, would this affect the set + of named fields? */ + UAT_AFFECTS_DISSECTION, + "ChSNMPSMIModules", + smi_mod_copy_cb, + NULL, + smi_mod_free_cb, + restart_needed_warning, + smi_fields); + + prefs_register_uat_preference(nameres, + "smi_modules", + "SMI (MIB and PIB) modules", + "List of enabled SMI (MIB and PIB) modules. You must\n" + "restart Wireshark for these changes to take effect.", + smi_modules_uat); #else prefs_register_static_text_preference(nameres, "load_smi_modules_static", diff --git a/epan/uat-int.h b/epan/uat-int.h index a1a95a122f..fb1ceab431 100644 --- a/epan/uat-int.h +++ b/epan/uat-int.h @@ -51,7 +51,7 @@ struct _uat_t { const char* filename; gboolean from_profile; const char* help; - const char* category; + guint flags; void** user_ptr; guint* nrows_p; uat_copy_cb_t copy_cb; diff --git a/epan/uat.c b/epan/uat.c index 689b7b0af1..2ecef502a0 100644 --- a/epan/uat.c +++ b/epan/uat.c @@ -62,7 +62,7 @@ uat_t* uat_new(const char* name, gboolean from_profile, void** data_ptr, guint* numitems_ptr, - const char* category, + guint flags, const char* help, uat_copy_cb_t copy_cb, uat_update_cb_t update_cb, @@ -101,7 +101,7 @@ uat_t* uat_new(const char* name, uat->rep = NULL; uat->free_rep = NULL; uat->help = help; - uat->category = category; + uat->flags = flags; for (i=0;flds_array[i].title;i++) { fld_data_t* f = g_malloc(sizeof(fld_data_t)); diff --git a/epan/uat.h b/epan/uat.h index 9d45f08cda..7488ca61be 100644 --- a/epan/uat.h +++ b/epan/uat.h @@ -221,12 +221,13 @@ typedef struct _uat_field_t { #define FLDFILL NULL #define UAT_END_FIELDS {NULL,NULL,PT_TXTMOD_NONE,{0,0,0},{0,0,0},0,0,FLDFILL} - -#define UAT_CAT_GENERAL "General" -#define UAT_CAT_PORTS "Port Assignments" -#define UAT_CAT_CRYPTO "Decryption" -#define UAT_CAT_FFMT "File Formats" -#define UAT_CAT_FIELDS "Header Fields" +/* + * Flags to indicate what the settings in this UAT affect. + * This is used when UATs are changed interactively, to indicate what needs + * to be redone when the UAT is changed. + */ +#define UAT_AFFECTS_DISSECTION 0x00000001 /* affects packet dissection */ +#define UAT_AFFECTS_FIELDS 0x00000002 /* affects what named fields exist */ /** Create a new uat * @@ -236,7 +237,7 @@ typedef struct _uat_field_t { * @param from_profile TRUE if profile directory to be used * @param data_ptr A pointer to a null terminated array of pointers to the data * @param num_items_ptr - * @param category + * @param flags flags indicating what this UAT affects * @param help A pointer to help text * @param copy_cb A function that copies the data in the struct * @param update_cb Will be called when a record is updated @@ -252,7 +253,7 @@ uat_t* uat_new(const char* name, gboolean from_profile, void** data_ptr, guint* num_items_ptr, - const char* category, + guint flags, const char* help, uat_copy_cb_t copy_cb, uat_update_cb_t update_cb, diff --git a/plugins/stats_tree/pinfo_stats_tree.c b/plugins/stats_tree/pinfo_stats_tree.c index 4d9aa351e3..853beb468d 100644 --- a/plugins/stats_tree/pinfo_stats_tree.c +++ b/plugins/stats_tree/pinfo_stats_tree.c @@ -221,7 +221,7 @@ void register_pinfo_stat_trees(void) { TRUE, /* from_profile */ (void*) &uat_plen_records, /* data_ptr */ &num_plen_uat, /* numitems_ptr */ - UAT_CAT_GENERAL, /* category */ + 0, /* not a dissector, so affects neither dissection nor fields */ NULL, /* help */ uat_plen_record_copy_cb, /* copy callback */ NULL, /* update callback */ diff --git a/ui/gtk/uat_gui.c b/ui/gtk/uat_gui.c index 4a2152d61f..0f8ff9729b 100644 --- a/ui/gtk/uat_gui.c +++ b/ui/gtk/uat_gui.c @@ -716,11 +716,16 @@ static void uat_down_cb(GtkButton *button _U_, gpointer u) { } static void uat_apply_changes(uat_t *uat) { - if(uat->category && strcmp(uat->category, UAT_CAT_FIELDS) == 0) { + if(uat->flags & UAT_AFFECTS_FIELDS) { /* Recreate list with new fields and redissect packets */ new_packet_list_recreate (); - } else if(cfile.state != FILE_CLOSED) { - redissect_packets (); + } else { + if(uat->flags & UAT_AFFECTS_DISSECTION) { + /* Just redissect packets if we have any */ + if(cfile.state != FILE_CLOSED) { + redissect_packets (); + } + } } }