diff options
author | rbalint <rbalint@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-03-03 17:19:30 +0000 |
---|---|---|
committer | rbalint <rbalint@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-03-03 17:19:30 +0000 |
commit | b381a8d348ace0382b283a9a51156f42698025b1 (patch) | |
tree | f14716c4cb399258dd58ff596e4913e43a7f6b9a /epan/prefs.c | |
parent | af9ff2690195463ffdc8af890716e80bebd03356 (diff) |
Disable OID resolution and loading SMI modules by default.
Add an option to enable OID resolution.
Add an option to suppress errors reported by libsmi.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@32096 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/prefs.c')
-rw-r--r-- | epan/prefs.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/epan/prefs.c b/epan/prefs.c index 81cf8a5f57..b99f1e268a 100644 --- a/epan/prefs.c +++ b/epan/prefs.c @@ -41,6 +41,7 @@ #include <epan/filesystem.h> #include <epan/address.h> #include <epan/addr_resolv.h> +#include <epan/oids.h> #include <epan/packet.h> #include <epan/prefs.h> #include <epan/proto.h> @@ -1206,6 +1207,8 @@ init_prefs(void) { /* set the default values for the name resolution dialog box */ prefs.name_resolve = RESOLV_ALL ^ RESOLV_NETWORK; prefs.name_resolve_concurrency = 500; + prefs.load_smi_modules = FALSE; + prefs.suppress_smi_errors = FALSE; /* set the default values for the tap/statistics dialog box */ prefs.tap_update_interval = TAP_UPDATE_DEFAULT_INTERVAL; @@ -1238,6 +1241,7 @@ prefs_reset(void) g_free(prefs.capture_devices_hide); uat_unload_all(); + oids_cleanup(); init_prefs(); } @@ -1261,6 +1265,11 @@ read_prefs(int *gpf_errno_return, int *gpf_read_errno_return, char *pf_path; FILE *pf; + /* clean up libsmi structures before reading prefs */ + if (prefs.load_smi_modules) { + oids_cleanup(); + } + init_prefs(); /* @@ -1359,6 +1368,11 @@ read_prefs(int *gpf_errno_return, int *gpf_read_errno_return, g_free(pf_path); } + /* load SMI modules if needed */ + if (prefs.load_smi_modules) { + oids_init(); + } + return &prefs; } @@ -1673,6 +1687,8 @@ prefs_is_capture_device_hidden(const char *name) */ #define PRS_NAME_RESOLVE "name_resolve" #define PRS_NAME_RESOLVE_CONCURRENCY "name_resolve_concurrency" +#define PRS_NAME_RESOLVE_LOAD_SMI_MODULES "name_resolve_load_smi_modules" +#define PRS_NAME_RESOLVE_SUPPRESS_SMI_ERRORS "name_resolve_suppress_smi_errors" #define PRS_CAP_NAME_RESOLVE "capture.name_resolve" /* values for the capture dialog box */ @@ -2177,6 +2193,10 @@ set_pref(gchar *pref_name, gchar *value, void *private_data _U_) } } else if (strcmp(pref_name, PRS_NAME_RESOLVE_CONCURRENCY) == 0) { prefs.name_resolve_concurrency = strtol(value, NULL, 10); + } else if (strcmp(pref_name, PRS_NAME_RESOLVE_LOAD_SMI_MODULES) == 0) { + prefs.load_smi_modules = ((g_ascii_strcasecmp(value, "true") == 0)?TRUE:FALSE); + } else if (strcmp(pref_name, PRS_NAME_RESOLVE_SUPPRESS_SMI_ERRORS) == 0) { + prefs.suppress_smi_errors = ((g_ascii_strcasecmp(value, "true") == 0)?TRUE:FALSE); } else if ((strcmp(pref_name, PRS_RTP_PLAYER_MAX_VISIBLE) == 0) || (strcmp(pref_name, "rtp_player.max_visible") == 0)) { /* ... also accepting old name for this preference */ @@ -3054,6 +3074,16 @@ write_prefs(char **pf_path_return) fprintf(pf, PRS_NAME_RESOLVE_CONCURRENCY ": %d\n", prefs.name_resolve_concurrency); + fprintf(pf, "\n# Load SMI modules?\n"); + fprintf(pf, "# TRUE or FALSE (case-insensitive).\n"); + fprintf(pf, PRS_NAME_RESOLVE_LOAD_SMI_MODULES ": %s\n", + prefs.load_smi_modules == TRUE ? "TRUE" : "FALSE"); + + fprintf(pf, "\n# Suppress SMI errors?\n"); + fprintf(pf, "# TRUE or FALSE (case-insensitive).\n"); + fprintf(pf, PRS_NAME_RESOLVE_SUPPRESS_SMI_ERRORS ": %s\n", + prefs.suppress_smi_errors == TRUE ? "TRUE" : "FALSE"); + fprintf(pf, "\n####### Taps/Statistics ########\n"); fprintf(pf, "\n# Tap update interval in ms.\n"); |