aboutsummaryrefslogtreecommitdiffstats
path: root/epan/prefs.c
diff options
context:
space:
mode:
authorrbalint <rbalint@f5534014-38df-0310-8fa8-9805f1628bb7>2010-03-03 17:19:30 +0000
committerrbalint <rbalint@f5534014-38df-0310-8fa8-9805f1628bb7>2010-03-03 17:19:30 +0000
commitb381a8d348ace0382b283a9a51156f42698025b1 (patch)
treef14716c4cb399258dd58ff596e4913e43a7f6b9a /epan/prefs.c
parentaf9ff2690195463ffdc8af890716e80bebd03356 (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.c30
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");