aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-12-17 21:55:52 -0500
committerAnders Broman <a.broman58@gmail.com>2014-12-19 07:59:28 +0000
commit1f031808e16eeb56d7c822dbe7ebe2fdc7652e00 (patch)
tree798d3859ef14b3de75a7abe0791e4a3d7b119aa3 /epan
parent792c01ab1ab937e581a6d77ac2782e9483a9ce3a (diff)
Use new color_dissector_filters.[ch] to refactor (color) conversation generation in GTK menus.
Change-Id: I5868a40b71a989a3a1522cb091064bb0aaec6daf Reviewed-on: https://code.wireshark.org/review/5828 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/color_dissector_filters.c22
-rw-r--r--epan/color_dissector_filters.h9
-rw-r--r--epan/dissectors/packet-eth.c2
-rw-r--r--epan/dissectors/packet-ip.c2
-rw-r--r--epan/dissectors/packet-ipv6.c2
-rw-r--r--epan/dissectors/packet-tcp.c2
-rw-r--r--epan/dissectors/packet-udp.c2
7 files changed, 31 insertions, 10 deletions
diff --git a/epan/color_dissector_filters.c b/epan/color_dissector_filters.c
index 4f6f07492f..bc8991e0fe 100644
--- a/epan/color_dissector_filters.c
+++ b/epan/color_dissector_filters.c
@@ -31,18 +31,36 @@
GList *color_conv_filter_list = NULL;
-void register_color_conversation_filter(const char *name, is_color_conv_valid_func is_filter_valid, build_color_conv_string_func build_filter_string) {
+void register_color_conversation_filter(const char *proto_name, const char *display_name,
+ is_color_conv_valid_func is_filter_valid, build_color_conv_string_func build_filter_string) {
color_conversation_filter_t *entry;
entry = (color_conversation_filter_t *)g_malloc(sizeof(color_conversation_filter_t));
- entry->name = name;
+ entry->proto_name = proto_name;
+ entry->display_name = display_name;
entry->is_filter_valid = is_filter_valid;
entry->build_filter_string = build_filter_string;
color_conv_filter_list = g_list_append(color_conv_filter_list, entry);
}
+struct color_conversation_filter_s* find_color_conversation_filter(const char *name)
+{
+ GList *list_entry = color_conv_filter_list;
+ color_conversation_filter_t* color_filter;
+
+ while (list_entry != NULL) {
+ color_filter = (color_conversation_filter_t*)list_entry->data;
+ if (!strcmp(color_filter->proto_name, name))
+ return color_filter;
+
+ list_entry = g_list_next(list_entry);
+ }
+
+ return NULL;
+}
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/color_dissector_filters.h b/epan/color_dissector_filters.h
index 2393700ee7..e05be0ef2d 100644
--- a/epan/color_dissector_filters.h
+++ b/epan/color_dissector_filters.h
@@ -39,16 +39,19 @@ typedef gboolean (*is_color_conv_valid_func)(packet_info *pinfo);
Filter needs to be freed after use */
typedef gchar* (*build_color_conv_string_func)(packet_info *pinfo);
+#define MAX_NUM_COLOR_CONVERSATION_COLORS 10
/** register a dissector filter */
-WS_DLL_PUBLIC void register_color_conversation_filter(const char *name, is_color_conv_valid_func is_filter_valid, build_color_conv_string_func build_filter_string);
-
+WS_DLL_PUBLIC void register_color_conversation_filter(const char *proto_name, const char *display_name,
+ is_color_conv_valid_func is_filter_valid, build_color_conv_string_func build_filter_string);
+WS_DLL_PUBLIC struct color_conversation_filter_s* find_color_conversation_filter(const char *proto_name);
/*** THE FOLLOWING SHOULD NOT BE USED BY ANY DISSECTORS!!! ***/
typedef struct color_conversation_filter_s {
- const char * name;
+ const char * proto_name;
+ const char * display_name;
is_color_conv_valid_func is_filter_valid;
build_color_conv_string_func build_filter_string;
} color_conversation_filter_t;
diff --git a/epan/dissectors/packet-eth.c b/epan/dissectors/packet-eth.c
index 1fe4e9388d..aa539fc957 100644
--- a/epan/dissectors/packet-eth.c
+++ b/epan/dissectors/packet-eth.c
@@ -1016,7 +1016,7 @@ proto_register_eth(void)
eth_tap = register_tap("eth");
register_conversation_table(proto_eth, TRUE, eth_conversation_packet, eth_hostlist_packet, NULL);
- register_color_conversation_filter("Ethernet", eth_color_filter_valid, eth_build_color_filter);
+ register_color_conversation_filter("eth", "Ethernet", eth_color_filter_valid, eth_build_color_filter);
}
void
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 2dd884141d..47ab038baf 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -3094,7 +3094,7 @@ proto_register_ip(void)
register_decode_as(&ip_da);
register_conversation_table(proto_ip, TRUE, ip_conversation_packet, ip_hostlist_packet, NULL);
- register_color_conversation_filter("IPv4", ip_color_filter_valid, ip_build_color_filter);
+ register_color_conversation_filter("ip", "IPv4", ip_color_filter_valid, ip_build_color_filter);
}
void
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index cb525f7533..6129a61077 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -3031,7 +3031,7 @@ proto_register_ipv6(void)
register_decode_as(&ipv6_next_header_da);
register_conversation_table(proto_ipv6, TRUE, ipv6_conversation_packet, ipv6_hostlist_packet, NULL);
- register_color_conversation_filter("IPv6", ipv6_color_filter_valid, ipv6_build_color_filter);
+ register_color_conversation_filter("ipv6", "IPv6", ipv6_color_filter_valid, ipv6_build_color_filter);
}
void
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index 00840617fe..f07f375089 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -5977,7 +5977,7 @@ proto_register_tcp(void)
register_decode_as(&tcp_da);
register_conversation_table(proto_tcp, FALSE, tcpip_conversation_packet, tcpip_hostlist_packet, tcpip_hostlist_prefix);
- register_color_conversation_filter("TCP", tcp_color_filter_valid, tcp_build_color_filter);
+ register_color_conversation_filter("tcp", "TCP", tcp_color_filter_valid, tcp_build_color_filter);
}
void
diff --git a/epan/dissectors/packet-udp.c b/epan/dissectors/packet-udp.c
index 6750e777bc..90af6a820a 100644
--- a/epan/dissectors/packet-udp.c
+++ b/epan/dissectors/packet-udp.c
@@ -1020,7 +1020,7 @@ proto_register_udp(void)
register_decode_as(&udp_da);
register_conversation_table(proto_udp, FALSE, udpip_conversation_packet, udpip_hostlist_packet, udpip_hostlist_prefix);
- register_color_conversation_filter("UDP", udp_color_filter_valid, udp_build_color_filter);
+ register_color_conversation_filter("udp", "UDP", udp_color_filter_valid, udp_build_color_filter);
register_init_routine(udp_init);