aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/nameres_prefs.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2003-07-22 03:14:31 +0000
committerGerald Combs <gerald@wireshark.org>2003-07-22 03:14:31 +0000
commitd98ee5ef393b70dee2a385b352642209eab97cb5 (patch)
treea2b8485cbffc7874bab3167b60e2caeb2fb6e5cc /gtk/nameres_prefs.c
parent7dd93bc1f6ef6ebedddfbae01874fbf326a5740b (diff)
Add two preferences to control ADNS, one to enable/disable it and one to
set its concurrency level. Fix an ADNS queueing bug. svn path=/trunk/; revision=8063
Diffstat (limited to 'gtk/nameres_prefs.c')
-rw-r--r--gtk/nameres_prefs.c47
1 files changed, 44 insertions, 3 deletions
diff --git a/gtk/nameres_prefs.c b/gtk/nameres_prefs.c
index dd67909c4a..1e662d7f29 100644
--- a/gtk/nameres_prefs.c
+++ b/gtk/nameres_prefs.c
@@ -1,7 +1,7 @@
/* nameres_prefs.c
* Dialog box for name resolution preferences
*
- * $Id: nameres_prefs.c,v 1.7 2002/11/11 18:57:00 oabad Exp $
+ * $Id: nameres_prefs.c,v 1.8 2003/07/22 03:14:31 gerald Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -41,13 +41,25 @@
#define M_RESOLVE_KEY "m_resolve"
#define N_RESOLVE_KEY "n_resolve"
#define T_RESOLVE_KEY "t_resolve"
-
-#define RESOLV_TABLE_ROWS 3
+#ifdef HAVE_GNU_ADNS
+# define C_RESOLVE_KEY "c_resolve"
+# define RESOLVE_CONCURRENCY_KEY "resolve_concurrency"
+#endif /* HAVE_GNU_ADNS */
+
+#ifdef HAVE_GNU_ADNS
+# define RESOLV_TABLE_ROWS 5
+#else
+# define RESOLV_TABLE_ROWS 3
+#endif /* HAVE_GNU_ADNS */
GtkWidget*
nameres_prefs_show(void)
{
GtkWidget *main_tb, *main_vb;
GtkWidget *m_resolv_cb, *n_resolv_cb, *t_resolv_cb;
+#ifdef HAVE_GNU_ADNS
+ GtkWidget *c_resolv_cb, *resolv_concurrency_te;
+ char concur_str[10+1];
+#endif /* HAVE_GNU_ADNS */
/*
* XXX - it would be nice if the current setting of the resolver
@@ -88,6 +100,21 @@ nameres_prefs_show(void)
prefs.name_resolve & RESOLV_TRANSPORT);
OBJECT_SET_DATA(main_vb, T_RESOLVE_KEY, t_resolv_cb);
+#ifdef HAVE_GNU_ADNS
+ /* Enable concurrent (asynchronous) DNS lookups */
+ c_resolv_cb = create_preference_check_button(main_tb, 3,
+ "Enable concurrent DNS name resolution:", NULL,
+ prefs.name_resolve & RESOLV_CONCURRENT);
+ OBJECT_SET_DATA(main_vb, C_RESOLVE_KEY, c_resolv_cb);
+
+ /* Max concurrent requests */
+ sprintf(concur_str, "%d", prefs.name_resolve_concurrency);
+ resolv_concurrency_te = create_preference_entry(main_tb, 4,
+ "Maximum concurrent requests:", NULL, concur_str);
+ OBJECT_SET_DATA(main_vb, RESOLVE_CONCURRENCY_KEY, resolv_concurrency_te);
+
+#endif /* HAVE_GNU_ADNS */
+
/* Show 'em what we got */
gtk_widget_show_all(main_vb);
@@ -98,15 +125,29 @@ void
nameres_prefs_fetch(GtkWidget *w)
{
GtkWidget *m_resolv_cb, *n_resolv_cb, *t_resolv_cb;
+#ifdef HAVE_GNU_ADNS
+ GtkWidget *c_resolv_cb, *resolv_concurrency_te;
+#endif /* HAVE_GNU_ADNS */
m_resolv_cb = (GtkWidget *)OBJECT_GET_DATA(w, M_RESOLVE_KEY);
n_resolv_cb = (GtkWidget *)OBJECT_GET_DATA(w, N_RESOLVE_KEY);
t_resolv_cb = (GtkWidget *)OBJECT_GET_DATA(w, T_RESOLVE_KEY);
+#ifdef HAVE_GNU_ADNS
+ c_resolv_cb = (GtkWidget *)OBJECT_GET_DATA(w, C_RESOLVE_KEY);
+
+ resolv_concurrency_te = (GtkWidget *)OBJECT_GET_DATA(w, RESOLVE_CONCURRENCY_KEY);
+#endif /* HAVE_GNU_ADNS */
prefs.name_resolve = RESOLV_NONE;
prefs.name_resolve |= (GTK_TOGGLE_BUTTON (m_resolv_cb)->active ? RESOLV_MAC : RESOLV_NONE);
prefs.name_resolve |= (GTK_TOGGLE_BUTTON (n_resolv_cb)->active ? RESOLV_NETWORK : RESOLV_NONE);
prefs.name_resolve |= (GTK_TOGGLE_BUTTON (t_resolv_cb)->active ? RESOLV_TRANSPORT : RESOLV_NONE);
+#ifdef HAVE_GNU_ADNS
+ prefs.name_resolve |= (GTK_TOGGLE_BUTTON (c_resolv_cb)->active ? RESOLV_CONCURRENT : RESOLV_NONE);
+
+ prefs.name_resolve_concurrency = strtol (gtk_entry_get_text(
+ GTK_ENTRY(resolv_concurrency_te)), NULL, 10);
+#endif /* HAVE_GNU_ADNS */
}
void