From fdc980e79dc0fde8d1ccba19d32d8c93bddd65bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig=20Bj=C3=B8rlykke?= Date: Thu, 6 Mar 2008 22:13:24 +0000 Subject: [PATCH] Added an option to uat_new() to set if configuration shall be saved in the selected profile. Don't save SMI Paths and SMI Modules in the profiles because reloading currently doesn't work (bug 2309). svn path=/trunk/; revision=24580 --- asn1/snmp/packet-snmp-template.c | 1 + docbook/wsug_src/WSUG_chapter_customize.xml | 10 ---------- epan/dfilter/dfilter-macro.c | 1 + epan/dissectors/packet-k12.c | 1 + epan/dissectors/packet-sccp.c | 1 + epan/dissectors/packet-snmp.c | 1 + epan/dissectors/packet-user_encap.c | 1 + epan/oids.c | 2 ++ epan/uat-int.h | 1 + epan/uat.c | 11 ++++++++--- epan/uat.h | 1 + 11 files changed, 18 insertions(+), 13 deletions(-) diff --git a/asn1/snmp/packet-snmp-template.c b/asn1/snmp/packet-snmp-template.c index 828bad9c3d..7291926552 100644 --- a/asn1/snmp/packet-snmp-template.c +++ b/asn1/snmp/packet-snmp-template.c @@ -1932,6 +1932,7 @@ void proto_register_snmp(void) { assocs_uat = uat_new("SNMP Users", sizeof(snmp_ue_assoc_t), "snmp_users", + TRUE, (void**)&ueas, &num_ueas, UAT_CAT_CRYPTO, diff --git a/docbook/wsug_src/WSUG_chapter_customize.xml b/docbook/wsug_src/WSUG_chapter_customize.xml index eb67d7a769..5304693657 100644 --- a/docbook/wsug_src/WSUG_chapter_customize.xml +++ b/docbook/wsug_src/WSUG_chapter_customize.xml @@ -995,16 +995,6 @@ standard libpcap format. SCCP Users Table (sccp_users) - - - SMI Modules (smi_modules) - - - - - SMI Paths (smi_paths) - - SNMP Users (snmp_users) diff --git a/epan/dfilter/dfilter-macro.c b/epan/dfilter/dfilter-macro.c index c27baf4864..179a5f00a3 100644 --- a/epan/dfilter/dfilter-macro.c +++ b/epan/dfilter/dfilter-macro.c @@ -603,6 +603,7 @@ void dfilter_macro_init(void) { dfilter_macro_uat = uat_new("Display Filter Macros", sizeof(dfilter_macro_t), DFILTER_MACRO_FILENAME, + TRUE, (void*) ¯os, &num_macros, NULL, diff --git a/epan/dissectors/packet-k12.c b/epan/dissectors/packet-k12.c index e46ea0d482..c0c0a0f583 100644 --- a/epan/dissectors/packet-k12.c +++ b/epan/dissectors/packet-k12.c @@ -452,6 +452,7 @@ proto_register_k12(void) k12_uat = uat_new("K12 Protocols", sizeof(k12_handles_t), "k12_protos", + TRUE, (void**) &k12_handles, &nk12_handles, UAT_CAT_FFMT, diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c index 5b2f00a2cc..c6e9f9b40d 100644 --- a/epan/dissectors/packet-sccp.c +++ b/epan/dissectors/packet-sccp.c @@ -3190,6 +3190,7 @@ 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, diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c index 91e250ae8e..1ea8a09fc6 100644 --- a/epan/dissectors/packet-snmp.c +++ b/epan/dissectors/packet-snmp.c @@ -3387,6 +3387,7 @@ void proto_register_snmp(void) { assocs_uat = uat_new("SNMP Users", sizeof(snmp_ue_assoc_t), "snmp_users", + TRUE, (void**)&ueas, &num_ueas, UAT_CAT_CRYPTO, diff --git a/epan/dissectors/packet-user_encap.c b/epan/dissectors/packet-user_encap.c index 00c4b9fe33..341584ad8b 100644 --- a/epan/dissectors/packet-user_encap.c +++ b/epan/dissectors/packet-user_encap.c @@ -173,6 +173,7 @@ void proto_register_user_encap(void) encaps_uat = uat_new("User DLTs Table", sizeof(user_encap_t), "user_dlts", + TRUE, (void**) &encaps, &num_encaps, UAT_CAT_FFMT, diff --git a/epan/oids.c b/epan/oids.c index b724e27796..2881096728 100644 --- a/epan/oids.c +++ b/epan/oids.c @@ -480,6 +480,7 @@ void register_mibs(void) { smi_modules_uat = uat_new("SMI Modules", sizeof(smi_module_t), "smi_modules", + FALSE, (void*)&smi_modules, &num_smi_modules, UAT_CAT_GENERAL, @@ -492,6 +493,7 @@ void register_mibs(void) { smi_paths_uat = uat_new("SMI Paths", sizeof(smi_module_t), "smi_paths", + FALSE, (void*)&smi_paths, &num_smi_paths, UAT_CAT_GENERAL, diff --git a/epan/uat-int.h b/epan/uat-int.h index 1dd8c947e6..bf6e9baaf3 100644 --- a/epan/uat-int.h +++ b/epan/uat-int.h @@ -49,6 +49,7 @@ struct _uat_t { const char* name; size_t record_size; const char* filename; + gboolean from_profile; const char* help; const char* category; void** user_ptr; diff --git a/epan/uat.c b/epan/uat.c index cf891685ae..1d97aa1fd1 100644 --- a/epan/uat.c +++ b/epan/uat.c @@ -56,6 +56,7 @@ void uat_init(void) { uat_t* uat_new(const char* name, size_t size, const char* filename, + gboolean from_profile, void** data_ptr, guint* numitems_ptr, const char* category, @@ -77,6 +78,7 @@ uat_t* uat_new(const char* name, uat->name = g_strdup(name); uat->record_size = size; uat->filename = g_strdup(filename); + uat->from_profile = from_profile; uat->user_ptr = data_ptr; uat->nrows_p = numitems_ptr; uat->copy_cb = copy_cb; @@ -157,7 +159,7 @@ void uat_remove_record_idx(uat_t* uat, guint idx) { /* The returned filename was g_malloc()'d so the caller must free it */ gchar* uat_get_actual_filename(uat_t* uat, gboolean for_writing) { - gchar* pers_fname = get_persconffile_path(uat->filename, TRUE, for_writing); + gchar* pers_fname = get_persconffile_path(uat->filename, uat->from_profile, for_writing); if (! for_writing ) { gchar* data_fname = get_datafile_path(uat->filename); @@ -322,8 +324,11 @@ void uat_unload_all(void) { for (i=0; i < all_uats->len; i++) { uat_t* u = g_ptr_array_index(all_uats,i); - uat_clear(u); - u->loaded = FALSE; + /* Do not unload if not in profile */ + if (u->from_profile) { + uat_clear(u); + u->loaded = FALSE; + } } } diff --git a/epan/uat.h b/epan/uat.h index bc4f5495e7..0b7f2f5ab0 100644 --- a/epan/uat.h +++ b/epan/uat.h @@ -223,6 +223,7 @@ typedef struct _uat_field_t { uat_t* uat_new(const char* name, size_t size, const char* filename, + gboolean from_profile, void** data_ptr, guint* num_items, const char* category,