aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorIrene RĂ¼ngeler <I.Ruengeler@fh-muenster.de>2013-05-21 13:00:03 +0000
committerIrene RĂ¼ngeler <I.Ruengeler@fh-muenster.de>2013-05-21 13:00:03 +0000
commitf4bb7f45beea42d193367601d9b4dc9e5989f25c (patch)
tree8ac54d690d5fc3f795391f4deb8dd4b2ba1d3e5f /ui
parent77b1d9b3234a84e3870fac1e4868b0e06ad65910 (diff)
Apply the filter string if all interfaces are selected.
svn path=/trunk/; revision=49480
Diffstat (limited to 'ui')
-rw-r--r--ui/gtk/capture_dlg.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/ui/gtk/capture_dlg.c b/ui/gtk/capture_dlg.c
index f7ec36ac9e..547fea87e7 100644
--- a/ui/gtk/capture_dlg.c
+++ b/ui/gtk/capture_dlg.c
@@ -752,7 +752,7 @@ capture_all_filter_check_syntax_cb(GtkWidget *w _U_, gpointer user_data _U_)
filter_text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(filter_cm));
if (strlen(filter_text) == 0) {
colorize_filter_te_as_empty(filter_te);
- if (strlen(device.cfilter) == 1) {
+ if (strlen(device.cfilter) > 0) {
g_array_remove_index(global_capture_opts.all_ifaces, i);
device.cfilter = g_strdup(filter_text);
g_array_insert_val(global_capture_opts.all_ifaces, i, device);
@@ -3140,10 +3140,11 @@ static void capture_all_cb(GtkToggleButton *button, gpointer d _U_)
GtkTreeIter iter;
GtkTreeView *if_cb;
GtkTreeModel *model;
- GtkWidget *pcap_ng_cb;
- gchar *interface = NULL;
+ GtkWidget *filter_cm, *pcap_ng_cb;
+ gchar *interface = NULL, *filter_text = NULL;
gboolean enabled = FALSE, capture_set = FALSE, pseudo = FALSE;
- guint16 num_temp;
+ guint16 num_temp, i;
+ interface_t device;
if (gtk_toggle_button_get_active(button))
enabled = TRUE;
@@ -3151,6 +3152,8 @@ static void capture_all_cb(GtkToggleButton *button, gpointer d _U_)
model = gtk_tree_view_get_model(if_cb);
pcap_ng_cb = (GtkWidget *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_PCAP_NG_KEY);
num_temp = global_capture_opts.num_selected++;
+ filter_cm = (GtkWidget *)g_object_get_data(G_OBJECT(cap_open_w), E_ALL_CFILTER_CM_KEY);
+ filter_text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(filter_cm));
if (gtk_tree_model_get_iter_first(model, &iter)) {
do {
gtk_tree_model_get (model, &iter, CAPTURE, &capture_set, IFACE_HIDDEN_NAME, &interface, -1);
@@ -3164,6 +3167,17 @@ static void capture_all_cb(GtkToggleButton *button, gpointer d _U_)
}
if (!pseudo) {
gtk_list_store_set(GTK_LIST_STORE(model), &iter, CAPTURE, enabled, -1);
+ if (strlen(filter_text) != 0) {
+ for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ device = g_array_index(global_capture_opts.all_ifaces, interface_t, i);
+ if (strcmp(device.name, interface) == 0) {
+ g_array_remove_index(global_capture_opts.all_ifaces, i);
+ device.cfilter = g_strdup(filter_text);
+ g_array_insert_val(global_capture_opts.all_ifaces, i, device);
+ update_filter_string(device.name, filter_text);
+ }
+ }
+ }
} else {
gtk_list_store_set(GTK_LIST_STORE(model), &iter, CAPTURE, FALSE, -1);
}