diff options
author | Michael Mann <mmann78@netscape.net> | 2014-12-17 21:55:52 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-12-19 07:59:28 +0000 |
commit | 1f031808e16eeb56d7c822dbe7ebe2fdc7652e00 (patch) | |
tree | 798d3859ef14b3de75a7abe0791e4a3d7b119aa3 /epan | |
parent | 792c01ab1ab937e581a6d77ac2782e9483a9ce3a (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.c | 22 | ||||
-rw-r--r-- | epan/color_dissector_filters.h | 9 | ||||
-rw-r--r-- | epan/dissectors/packet-eth.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-ip.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-ipv6.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-tcp.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-udp.c | 2 |
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); |