diff options
author | Gerald Combs <gerald@wireshark.org> | 2003-07-22 03:14:31 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2003-07-22 03:14:31 +0000 |
commit | d98ee5ef393b70dee2a385b352642209eab97cb5 (patch) | |
tree | a2b8485cbffc7874bab3167b60e2caeb2fb6e5cc /gtk | |
parent | 7dd93bc1f6ef6ebedddfbae01874fbf326a5740b (diff) | |
download | wireshark-d98ee5ef393b70dee2a385b352642209eab97cb5.tar.gz wireshark-d98ee5ef393b70dee2a385b352642209eab97cb5.tar.bz2 wireshark-d98ee5ef393b70dee2a385b352642209eab97cb5.zip |
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')
-rw-r--r-- | gtk/file_dlg.c | 5 | ||||
-rw-r--r-- | gtk/nameres_prefs.c | 47 |
2 files changed, 47 insertions, 5 deletions
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c index dd0858f83e..ea4e63d4aa 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.56 2003/07/18 20:55:11 oabad Exp $ + * $Id: file_dlg.c,v 1.57 2003/07/22 03:14:30 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -42,6 +42,7 @@ #include "dlg_utils.h" #include "main.h" #include "compat_macros.h" +#include "prefs.h" static void file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs); static void file_open_destroy_cb(GtkWidget *win, gpointer user_data); @@ -234,7 +235,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) { cfile.rfcode = rfcode; /* Set the global resolving variable */ - g_resolv_flags = 0; + g_resolv_flags = prefs.name_resolve & RESOLV_CONCURRENT; m_resolv_cb = OBJECT_GET_DATA(w, E_FILE_M_RESOLVE_KEY); g_resolv_flags |= GTK_TOGGLE_BUTTON (m_resolv_cb)->active ? RESOLV_MAC : RESOLV_NONE; n_resolv_cb = OBJECT_GET_DATA(w, E_FILE_N_RESOLVE_KEY); 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 |