aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/resolv.c36
-rw-r--r--epan/resolv.h3
-rw-r--r--gtk/capture_dlg.c6
-rw-r--r--gtk/display_opts.c6
-rw-r--r--gtk/file_dlg.c7
-rw-r--r--gtk/main.c10
-rw-r--r--gtk/menu.c4
-rw-r--r--ipproto.c5
-rw-r--r--prefs.c30
-rw-r--r--prefs.h4
-rw-r--r--tethereal.c4
11 files changed, 63 insertions, 52 deletions
diff --git a/epan/resolv.c b/epan/resolv.c
index 28f7434692..1e87c3508e 100644
--- a/epan/resolv.c
+++ b/epan/resolv.c
@@ -1,7 +1,7 @@
/* resolv.c
* Routines for network object lookup
*
- * $Id: resolv.c,v 1.8 2001/04/02 09:41:54 guy Exp $
+ * $Id: resolv.c,v 1.9 2001/04/15 03:37:15 guy Exp $
*
* Laurent Deniel <deniel@worldnet.fr>
*
@@ -82,6 +82,8 @@
#include "resolv.h"
#include "filesystem.h"
+#include "prefs.h"
+
#define EPATH_ETHERS "/etc/ethers"
#define EPATH_IPXNETS "/etc/ipxnets"
#define EPATH_MANUF DATAFILE_DIR "/manuf"
@@ -154,8 +156,6 @@ static int ipxnet_resolution_initialized = 0;
* Global variables (can be changed in GUI sections)
*/
-int g_resolving_actif = 1; /* routines are active by default */
-
gchar *g_ethers_path = EPATH_ETHERS;
gchar *g_pethers_path = NULL; /* "$HOME"/EPATH_PERSONAL_ETHERS */
gchar *g_ipxnets_path = EPATH_IPXNETS;
@@ -220,7 +220,7 @@ static guchar *serv_name_lookup(guint port, port_type proto)
tp->addr = port;
tp->next = NULL;
- if (!g_resolving_actif ||
+ if (!prefs.name_resolve ||
(servp = getservbyport(htons(port), serv_proto)) == NULL) {
/* unknown port */
sprintf(tp->name, "%d", port);
@@ -279,7 +279,7 @@ static guchar *host_name_lookup(guint addr, gboolean *found)
tp->addr = addr;
tp->next = NULL;
- if (g_resolving_actif) {
+ if (prefs.name_resolve) {
#ifdef AVOID_DNS_TIMEOUT
/* Quick hack to avoid DNS/YP timeout */
@@ -319,7 +319,7 @@ static guchar *host_name_lookup6(struct e_in6_addr *addr, gboolean *found)
#ifdef INET6
struct hostent *hostp;
- if (g_resolving_actif) {
+ if (prefs.name_resolve) {
#ifdef AVOID_DNS_TIMEOUT
/* Quick hack to avoid DNS/YP timeout */
@@ -1036,7 +1036,7 @@ extern guchar *get_hostname(guint addr)
{
gboolean found;
- if (!g_resolving_actif)
+ if (!prefs.name_resolve)
return ip_to_str((guint8 *)&addr);
return host_name_lookup(addr, &found);
@@ -1047,7 +1047,7 @@ extern const guchar *get_hostname6(struct e_in6_addr *addr)
gboolean found;
#ifdef INET6
- if (!g_resolving_actif)
+ if (!prefs.name_resolve)
return ip6_to_str(addr);
if (IN6_IS_ADDR_LINKLOCAL(addr) || IN6_IS_ADDR_MULTICAST(addr))
return ip6_to_str(addr);
@@ -1100,7 +1100,7 @@ extern guchar *get_udp_port(guint port)
static gchar str[3][MAXNAMELEN];
static gchar *cur;
- if (!g_resolving_actif) {
+ if (!prefs.name_resolve) {
if (cur == &str[0][0]) {
cur = &str[1][0];
} else if (cur == &str[1][0]) {
@@ -1121,7 +1121,7 @@ extern guchar *get_tcp_port(guint port)
static gchar str[3][MAXNAMELEN];
static gchar *cur;
- if (!g_resolving_actif) {
+ if (!prefs.name_resolve) {
if (cur == &str[0][0]) {
cur = &str[1][0];
} else if (cur == &str[1][0]) {
@@ -1142,7 +1142,7 @@ extern guchar *get_sctp_port(guint port)
static gchar str[3][MAXNAMELEN];
static gchar *cur;
- if (!g_resolving_actif) {
+ if (!prefs.name_resolve) {
if (cur == &str[0][0]) {
cur = &str[1][0];
} else if (cur == &str[1][0]) {
@@ -1160,7 +1160,7 @@ extern guchar *get_sctp_port(guint port)
extern guchar *get_ether_name(const guint8 *addr)
{
- if (!g_resolving_actif)
+ if (!prefs.name_resolve)
return ether_to_str((guint8 *)addr);
if (!eth_resolution_initialized) {
@@ -1184,7 +1184,7 @@ guchar *get_ether_name_if_known(const guint8 *addr)
/* Initialize ether structs if we're the first
* ether-related function called */
- if (!g_resolving_actif)
+ if (!prefs.name_resolve)
return NULL;
if (!eth_resolution_initialized) {
@@ -1236,7 +1236,7 @@ guchar *get_ether_name_if_known(const guint8 *addr)
extern guint8 *get_ether_addr(const guchar *name)
{
- /* force resolution (do not check g_resolving_actif) */
+ /* force resolution (do not check prefs.name_resolve) */
if (!eth_resolution_initialized) {
initialize_ethers();
@@ -1268,7 +1268,7 @@ extern void add_ether_byip(guint ip, const guint8 *eth)
extern const guchar *get_ipxnet_name(const guint32 addr)
{
- if (!g_resolving_actif) {
+ if (!prefs.name_resolve) {
return ipxnet_to_str_punct(addr, '\0');
}
@@ -1286,7 +1286,7 @@ extern guint32 get_ipxnet_addr(const guchar *name, gboolean *known)
guint32 addr;
gboolean success;
- /* force resolution (do not check g_resolving_actif) */
+ /* force resolution (do not check prefs.name_resolve) */
if (!ipxnet_resolution_initialized) {
initialize_ipxnets();
@@ -1306,12 +1306,12 @@ extern const guchar *get_manuf_name(const guint8 *addr)
static gchar *cur;
hashmanuf_t *manufp;
- if (g_resolving_actif && !eth_resolution_initialized) {
+ if (prefs.name_resolve && !eth_resolution_initialized) {
initialize_ethers();
eth_resolution_initialized = 1;
}
- if (!g_resolving_actif || ((manufp = manuf_name_lookup(addr)) == NULL)) {
+ if (!prefs.name_resolve || ((manufp = manuf_name_lookup(addr)) == NULL)) {
if (cur == &str[0][0]) {
cur = &str[1][0];
} else if (cur == &str[1][0]) {
diff --git a/epan/resolv.h b/epan/resolv.h
index 658b464b2f..f48e513296 100644
--- a/epan/resolv.h
+++ b/epan/resolv.h
@@ -1,7 +1,7 @@
/* resolv.h
* Definitions for network object lookup
*
- * $Id: resolv.h,v 1.5 2001/04/02 09:41:54 guy Exp $
+ * $Id: resolv.h,v 1.6 2001/04/15 03:37:15 guy Exp $
*
* Laurent Deniel <deniel@worldnet.fr>
*
@@ -34,7 +34,6 @@
/* global variables */
-extern int g_resolving_actif;
extern gchar *g_ethers_path;
extern gchar *g_ipxnets_path;
extern gchar *g_manuf_path;
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c
index 0cdc223de3..a004f27174 100644
--- a/gtk/capture_dlg.c
+++ b/gtk/capture_dlg.c
@@ -1,7 +1,7 @@
/* capture_dlg.c
* Routines for packet capture windows
*
- * $Id: capture_dlg.c,v 1.40 2001/04/13 14:59:30 jfoster Exp $
+ * $Id: capture_dlg.c,v 1.41 2001/04/15 03:37:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -278,7 +278,7 @@ capture_prep_cb(GtkWidget *w, gpointer d)
resolv_cb = dlg_check_button_new_with_label_with_mnemonic(
"Enable _name resolution", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(resolv_cb), prefs.capture_name_resolve);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(resolv_cb), prefs.name_resolve);
gtk_container_add(GTK_CONTAINER(main_vb), resolv_cb);
gtk_widget_show(resolv_cb);
@@ -502,7 +502,7 @@ capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w) {
prefs.capture_auto_scroll = GTK_TOGGLE_BUTTON (auto_scroll_cb)->active;
- prefs.capture_name_resolve = GTK_TOGGLE_BUTTON (resolv_cb)->active;
+ prefs.name_resolve = GTK_TOGGLE_BUTTON (resolv_cb)->active;
gtk_widget_destroy(GTK_WIDGET(parent_w));
diff --git a/gtk/display_opts.c b/gtk/display_opts.c
index 8a293543fd..d052f23b4e 100644
--- a/gtk/display_opts.c
+++ b/gtk/display_opts.c
@@ -1,7 +1,7 @@
/* display_opts.c
* Routines for packet display windows
*
- * $Id: display_opts.c,v 1.19 2001/04/13 14:59:30 jfoster Exp $
+ * $Id: display_opts.c,v 1.20 2001/04/15 03:37:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -179,7 +179,7 @@ display_opt_cb(GtkWidget *w, gpointer d) {
button = dlg_check_button_new_with_label_with_mnemonic(
"Enable _name resolution", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), prefs.capture_name_resolve);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), prefs.name_resolve);
gtk_object_set_data(GTK_OBJECT(display_opt_w), E_DISPLAY_NAME_RESOLUTION_KEY,
button);
gtk_box_pack_start(GTK_BOX(main_vb), button, TRUE, TRUE, 0);
@@ -269,7 +269,7 @@ get_display_options(GtkWidget *parent_w)
button = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w),
E_DISPLAY_NAME_RESOLUTION_KEY);
- prefs.capture_name_resolve = (GTK_TOGGLE_BUTTON (button)->active);
+ prefs.name_resolve = (GTK_TOGGLE_BUTTON (button)->active);
}
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c
index e6c2732dc4..ef82046999 100644
--- a/gtk/file_dlg.c
+++ b/gtk/file_dlg.c
@@ -1,7 +1,7 @@
/* file_dlg.c
* Dialog boxes for handling files
*
- * $Id: file_dlg.c,v 1.37 2001/04/09 22:35:23 gram Exp $
+ * $Id: file_dlg.c,v 1.38 2001/04/15 03:37:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -39,6 +39,7 @@
#include "globals.h"
#include "gtkglobals.h"
+#include "prefs.h"
#include "resolv.h"
#include "keys.h"
#include "filter_prefs.h"
@@ -97,7 +98,7 @@ file_open_cmd_cb(GtkWidget *w, gpointer data)
resolv_cb = dlg_check_button_new_with_label_with_mnemonic(
"Enable name resolution", NULL);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(resolv_cb), g_resolving_actif);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(resolv_cb), prefs.name_resolve);
gtk_box_pack_end(GTK_BOX(GTK_FILE_SELECTION(file_open_w)->main_vbox),
resolv_cb, FALSE, FALSE, 5);
gtk_widget_show(resolv_cb);
@@ -190,7 +191,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) {
/* Set the global resolving variable */
resolv_cb = gtk_object_get_data(GTK_OBJECT(w), E_FILE_RESOLVE_KEY);
- g_resolving_actif = GTK_TOGGLE_BUTTON (resolv_cb)->active;
+ prefs.name_resolve = GTK_TOGGLE_BUTTON (resolv_cb)->active;
/* We've crossed the Rubicon; get rid of the file selection box. */
gtk_widget_hide(GTK_WIDGET (fs));
diff --git a/gtk/main.c b/gtk/main.c
index a18182654a..b00d45cc93 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.192 2001/04/13 14:59:30 jfoster Exp $
+ * $Id: main.c,v 1.193 2001/04/15 03:37:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -520,11 +520,11 @@ void expand_all_cb(GtkWidget *widget, gpointer data) {
void resolve_name_cb(GtkWidget *widget, gpointer data) {
if (cfile.protocol_tree) {
- int tmp = prefs.capture_name_resolve;
- prefs.capture_name_resolve = 1;
+ int tmp = prefs.name_resolve;
+ prefs.name_resolve = 1;
gtk_clist_clear ( GTK_CLIST(tree_view) );
proto_tree_draw(cfile.protocol_tree, tree_view);
- prefs.capture_name_resolve = tmp;
+ prefs.name_resolve = tmp;
}
}
@@ -988,7 +988,7 @@ main(int argc, char *argv[])
prefs->gui_font_name = g_strdup(optarg);
break;
case 'n': /* No name resolution */
- prefs->capture_name_resolve = 0;
+ prefs->name_resolve = 0;
break;
case 'o': /* Override preference from command line */
switch (prefs_set_pref(optarg)) {
diff --git a/gtk/menu.c b/gtk/menu.c
index b0a695f521..183a84496c 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -1,7 +1,7 @@
/* menu.c
* Menu routines
*
- * $Id: menu.c,v 1.51 2001/04/13 14:59:30 jfoster Exp $
+ * $Id: menu.c,v 1.52 2001/04/15 03:37:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -400,7 +400,7 @@ set_menus_for_selected_packet(gboolean have_selected_packet)
set_menu_sensitivity("/Tools/Decode As...",
have_selected_packet && decode_as_ok());
set_menu_sensitivity("/Resolve Name",
- have_selected_packet && !prefs.capture_name_resolve);
+ have_selected_packet && !prefs.name_resolve);
}
/* Enable or disable menu items based on whether a tree row is selected. */
diff --git a/ipproto.c b/ipproto.c
index 2f8a1cea21..862fc6ea49 100644
--- a/ipproto.c
+++ b/ipproto.c
@@ -1,7 +1,7 @@
/* ipproto.c
* Routines for converting IPv4 protocol/v6 nxthdr field into string
*
- * $Id: ipproto.c,v 1.11 2001/04/13 18:51:32 guy Exp $
+ * $Id: ipproto.c,v 1.12 2001/04/15 03:37:13 guy Exp $
*
* Gilbert Ramirez <gram@xiexie.org>
*
@@ -45,6 +45,7 @@
#include "globals.h"
#include "packet.h"
+#include "prefs.h"
#include "resolv.h"
#include "packet-ip.h"
#include "packet-ipv6.h"
@@ -105,7 +106,7 @@ const char *ipprotostr(int proto) {
goto ok;
#ifdef HAVE_GETPROTOBYNUMBER
- if (g_resolving_actif) {
+ if (prefs.name_resolve) {
pe = getprotobynumber(proto);
if (pe) {
s = pe->p_name;
diff --git a/prefs.c b/prefs.c
index ce77fe2625..b3d37757d8 100644
--- a/prefs.c
+++ b/prefs.c
@@ -1,7 +1,7 @@
/* prefs.c
* Routines for handling preferences
*
- * $Id: prefs.c,v 1.49 2001/04/13 14:59:28 jfoster Exp $
+ * $Id: prefs.c,v 1.50 2001/04/15 03:37:13 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -615,7 +615,7 @@ read_prefs(int *gpf_errno_return, char **gpf_path_return,
prefs.capture_prom_mode = 0;
prefs.capture_real_time = 0;
prefs.capture_auto_scroll = 0;
- prefs.capture_name_resolve= 1;
+ prefs.name_resolve= 1;
}
@@ -851,11 +851,20 @@ prefs_set_pref(char *prefarg)
#define PRS_GUI_MARKED_FG "gui.marked_frame.fg"
#define PRS_GUI_MARKED_BG "gui.marked_frame.bg"
+/*
+ * This applies to more than just captures, so it's not "capture.name_resolve";
+ * "capture.name_resolve" is supported on input for backwards compatibility.
+ *
+ * It's not a preference for a particular part of Ethereal, it's used all
+ * over the place, so its name doesn't have two components.
+ */
+#define PRS_NAME_RESOLVE "name_resolve"
+#define PRS_CAP_NAME_RESOLVE "capture.name_resolve"
+
/* values for the capture dialog box */
#define PRS_CAP_REAL_TIME "capture.real_time_update"
#define PRS_CAP_PROM_MODE "capture.prom_mode"
#define PRS_CAP_AUTO_SCROLL "capture.auto_scroll"
-#define PRS_CAP_NAME_RESOLVE "capture.name_resolve"
#define RED_COMPONENT(x) ((((x) >> 16) & 0xff) * 65535 / 255)
#define GREEN_COMPONENT(x) ((((x) >> 8) & 0xff) * 65535 / 255)
@@ -1000,8 +1009,9 @@ set_pref(gchar *pref_name, gchar *value)
} else if (strcmp(pref_name, PRS_CAP_AUTO_SCROLL) == 0) {
prefs.capture_auto_scroll = ((strcmp(value, "TRUE") == 0)?TRUE:FALSE);
- } else if (strcmp(pref_name, PRS_CAP_NAME_RESOLVE) == 0) {
- prefs.capture_name_resolve = ((strcmp(value, "TRUE") == 0)?TRUE:FALSE);
+ } else if (strcmp(pref_name, PRS_NAME_RESOLVE) == 0 ||
+ strcmp(pref_name, PRS_CAP_NAME_RESOLVE) == 0) {
+ prefs.name_resolve = ((strcmp(value, "TRUE") == 0)?TRUE:FALSE);
} else {
/* To which module does this preference belong? */
@@ -1327,6 +1337,10 @@ write_prefs(char **pf_path_return)
(prefs.gui_marked_bg.green * 255 / 65535),
(prefs.gui_marked_bg.blue * 255 / 65535));
+ fprintf(pf, "\n# Resolve addresses to names? TRUE/FALSE\n");
+ fprintf(pf, PRS_NAME_RESOLVE ": %s\n",
+ prefs.name_resolve == TRUE ? "TRUE" : "FALSE");
+
/* write the capture options */
fprintf(pf, "\n# Capture in promiscuous mode? TRUE/FALSE\n");
fprintf(pf, PRS_CAP_PROM_MODE ": %s\n",
@@ -1340,10 +1354,6 @@ write_prefs(char **pf_path_return)
fprintf(pf, PRS_CAP_AUTO_SCROLL ": %s\n",
prefs.capture_auto_scroll == TRUE ? "TRUE" : "FALSE");
- fprintf(pf, "\n# resolve names during capture? TRUE/FALSE\n");
- fprintf(pf, PRS_CAP_NAME_RESOLVE ": %s\n",
- prefs.capture_name_resolve == TRUE ? "TRUE" : "FALSE");
-
g_list_foreach(modules, write_module_prefs, pf);
fclose(pf);
@@ -1392,7 +1402,7 @@ copy_prefs(e_prefs *dest, e_prefs *src)
dest->capture_prom_mode = src->capture_prom_mode;
dest->capture_real_time = src->capture_real_time;
dest->capture_auto_scroll = src->capture_auto_scroll;
- dest->capture_name_resolve = src->capture_name_resolve;
+ dest->name_resolve = src->name_resolve;
}
diff --git a/prefs.h b/prefs.h
index e03dbf2a90..580012a02c 100644
--- a/prefs.h
+++ b/prefs.h
@@ -1,7 +1,7 @@
/* prefs.h
* Definitions for preference handling routines
*
- * $Id: prefs.h,v 1.28 2001/04/13 14:59:28 jfoster Exp $
+ * $Id: prefs.h,v 1.29 2001/04/15 03:37:13 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -50,10 +50,10 @@ typedef struct _e_prefs {
gchar *gui_font_name;
color_t gui_marked_fg;
color_t gui_marked_bg;
+ gboolean name_resolve;
gboolean capture_prom_mode;
gboolean capture_real_time;
gboolean capture_auto_scroll;
- gboolean capture_name_resolve;
} e_prefs;
diff --git a/tethereal.c b/tethereal.c
index 8462a4605b..389003b290 100644
--- a/tethereal.c
+++ b/tethereal.c
@@ -1,6 +1,6 @@
/* tethereal.c
*
- * $Id: tethereal.c,v 1.78 2001/04/11 05:24:08 guy Exp $
+ * $Id: tethereal.c,v 1.79 2001/04/15 03:37:13 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -391,7 +391,7 @@ main(int argc, char *argv[])
line_buffered = TRUE;
break;
case 'n': /* No name resolution */
- g_resolving_actif = 0;
+ prefs->name_resolve = 0;
break;
case 'o': /* Override preference from command line */
switch (prefs_set_pref(optarg)) {