Fix building of color conversation filter
authorPascal Quantin <pascal.quantin@gmail.com>
Fri, 26 Dec 2014 22:39:48 +0000 (23:39 +0100)
committerPascal Quantin <pascal.quantin@gmail.com>
Fri, 26 Dec 2014 22:43:35 +0000 (22:43 +0000)
Right now eth filter (the last one tried) is always applied

Change-Id: Ibe5d3c30033bd2d385bd1e68b20388114673cb5c
Reviewed-on: https://code.wireshark.org/review/6064
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
ui/gtk/main_menubar.c

index 38ebe304c602b08049267d68284c925b55ad15f6..2afd5a6e17487368f7d3c4902257e37c49f34d72 100644 (file)
@@ -216,18 +216,26 @@ colorize_conversation_cb(color_conversation_filter_t* color_filter, int action_n
             color_filter = find_color_conversation_filter("tcp");
             if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
                 filter = color_filter->build_filter_string(pi);
-            color_filter = find_color_conversation_filter("udp");
-            if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
-                filter = color_filter->build_filter_string(pi);
-            color_filter = find_color_conversation_filter("ip");
-            if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
-                filter = color_filter->build_filter_string(pi);
-            color_filter = find_color_conversation_filter("ipv6");
-            if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
-                filter = color_filter->build_filter_string(pi);
-            color_filter = find_color_conversation_filter("eth");
-            if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
-                filter = color_filter->build_filter_string(pi);
+            if (filter == NULL) {
+                color_filter = find_color_conversation_filter("udp");
+                if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
+                    filter = color_filter->build_filter_string(pi);
+            }
+            if (filter == NULL) {
+                color_filter = find_color_conversation_filter("ip");
+                if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
+                    filter = color_filter->build_filter_string(pi);
+            }
+            if (filter == NULL) {
+                color_filter = find_color_conversation_filter("ipv6");
+                if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
+                    filter = color_filter->build_filter_string(pi);
+            }
+            if (filter == NULL) {
+                color_filter = find_color_conversation_filter("eth");
+                if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
+                    filter = color_filter->build_filter_string(pi);
+            }
             if( filter == NULL ) {
                 simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "Unable to build conversation filter.");
                 return;