"Color dissector filters" are just filters.
Rename the color_dissector_filters.[ch] files to just dissector_filters.[ch], and rename the routines not to include the string "color_", as those filters can be used as color filters *or* display filters. Remove "color_" from other places where we're not doing colorization. In the GTK+ code, combine the two loops that add menu items for filters in the dissector-provided filters list into one. Change-Id: I08ecccc6b1b1be675e4129a0589f36c9f240407c Reviewed-on: https://code.wireshark.org/review/11379 Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
parent
0257a30de6
commit
a8a4098e12
|
@ -1594,7 +1594,6 @@ set(LIBWIRESHARK_FILES
|
|||
circuit.c
|
||||
column.c
|
||||
column-utils.c
|
||||
color_dissector_filters.c
|
||||
conversation.c
|
||||
conversation_table.c
|
||||
crc10-tvb.c
|
||||
|
@ -1604,6 +1603,7 @@ set(LIBWIRESHARK_FILES
|
|||
crc8-tvb.c
|
||||
decode_as.c
|
||||
disabled_protos.c
|
||||
dissector_filters.c
|
||||
dvb_chartbl.c
|
||||
dwarf.c
|
||||
epan.c
|
||||
|
|
|
@ -31,7 +31,6 @@ LIBWIRESHARK_SRC = \
|
|||
asn1.c \
|
||||
charsets.c \
|
||||
circuit.c \
|
||||
color_dissector_filters.c \
|
||||
column.c \
|
||||
column-utils.c \
|
||||
conversation.c \
|
||||
|
@ -43,6 +42,7 @@ LIBWIRESHARK_SRC = \
|
|||
crc8-tvb.c \
|
||||
decode_as.c \
|
||||
disabled_protos.c \
|
||||
dissector_filters.c \
|
||||
dvb_chartbl.c \
|
||||
dwarf.c \
|
||||
epan.c \
|
||||
|
@ -159,7 +159,6 @@ LIBWIRESHARK_INCLUDES = \
|
|||
charsets.h \
|
||||
chdlctypes.h \
|
||||
circuit.h \
|
||||
color_dissector_filters.h \
|
||||
column.h \
|
||||
column-info.h \
|
||||
column-utils.h \
|
||||
|
@ -175,6 +174,7 @@ LIBWIRESHARK_INCLUDES = \
|
|||
decode_as.h \
|
||||
diam_dict.h \
|
||||
disabled_protos.h \
|
||||
dissector_filters.h \
|
||||
dtd.h \
|
||||
dtd_parse.h \
|
||||
dvb_chartbl.h \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* color_dissector_filters.c
|
||||
* Routines for dissector generated display filters
|
||||
/* dissector_filters.c
|
||||
* Routines for dissector-generated conversation display filters
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
|
@ -25,35 +25,35 @@
|
|||
#include <glib.h>
|
||||
#include "packet.h"
|
||||
|
||||
#include "color_dissector_filters.h"
|
||||
#include "dissector_filters.h"
|
||||
|
||||
|
||||
GList *color_conv_filter_list = NULL;
|
||||
GList *conv_filter_list = NULL;
|
||||
|
||||
|
||||
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;
|
||||
void register_conversation_filter(const char *proto_name, const char *display_name,
|
||||
is_conv_valid_func is_filter_valid, build_conv_string_func build_filter_string) {
|
||||
conversation_filter_t *entry;
|
||||
|
||||
entry = (color_conversation_filter_t *)g_malloc(sizeof(color_conversation_filter_t));
|
||||
entry = (conversation_filter_t *)g_malloc(sizeof(conversation_filter_t));
|
||||
|
||||
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);
|
||||
conv_filter_list = g_list_append(conv_filter_list, entry);
|
||||
}
|
||||
|
||||
struct color_conversation_filter_s* find_color_conversation_filter(const char *name)
|
||||
struct conversation_filter_s* find_conversation_filter(const char *name)
|
||||
{
|
||||
GList *list_entry = color_conv_filter_list;
|
||||
color_conversation_filter_t* color_filter;
|
||||
GList *list_entry = conv_filter_list;
|
||||
conversation_filter_t* filter;
|
||||
|
||||
while (list_entry != NULL) {
|
||||
color_filter = (color_conversation_filter_t*)list_entry->data;
|
||||
if (!strcmp(color_filter->proto_name, name))
|
||||
return color_filter;
|
||||
filter = (conversation_filter_t*)list_entry->data;
|
||||
if (!strcmp(filter->proto_name, name))
|
||||
return filter;
|
||||
|
||||
list_entry = g_list_next(list_entry);
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/* color_dissector_filters.h
|
||||
* Routines for dissector generated colorized conversation filters
|
||||
/* dissector_filters.h
|
||||
* Routines for dissector-generated conversation display filters
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
|
@ -20,8 +20,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef __COLOR_DISSECTOR_FILTERS_H__
|
||||
#define __COLOR_DISSECTOR_FILTERS_H__
|
||||
#ifndef __DISSECTOR_FILTERS_H__
|
||||
#define __DISSECTOR_FILTERS_H__
|
||||
|
||||
#include "ws_symbol_export.h"
|
||||
|
||||
|
@ -33,33 +33,33 @@ extern "C" {
|
|||
*/
|
||||
|
||||
/** callback function definition: is a filter available for this packet? */
|
||||
typedef gboolean (*is_color_conv_valid_func)(packet_info *pinfo);
|
||||
typedef gboolean (*is_conv_valid_func)(packet_info *pinfo);
|
||||
|
||||
/** callback function definition: return the available filter for this packet or NULL if no filter is available,
|
||||
Filter needs to be freed after use */
|
||||
typedef gchar* (*build_color_conv_string_func)(packet_info *pinfo);
|
||||
typedef gchar* (*build_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 *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 void register_conversation_filter(const char *proto_name, const char *display_name,
|
||||
is_conv_valid_func is_filter_valid, build_conv_string_func build_filter_string);
|
||||
|
||||
WS_DLL_PUBLIC struct color_conversation_filter_s* find_color_conversation_filter(const char *proto_name);
|
||||
WS_DLL_PUBLIC struct conversation_filter_s* find_conversation_filter(const char *proto_name);
|
||||
|
||||
/*** THE FOLLOWING SHOULD NOT BE USED BY ANY DISSECTORS!!! ***/
|
||||
|
||||
typedef struct color_conversation_filter_s {
|
||||
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;
|
||||
typedef struct conversation_filter_s {
|
||||
const char * proto_name;
|
||||
const char * display_name;
|
||||
is_conv_valid_func is_filter_valid;
|
||||
build_conv_string_func build_filter_string;
|
||||
} conversation_filter_t;
|
||||
|
||||
WS_DLL_PUBLIC GList *color_conv_filter_list;
|
||||
WS_DLL_PUBLIC GList *conv_filter_list;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* color_dissector_filters.h */
|
||||
#endif /* dissector_filters.h */
|
|
@ -36,7 +36,7 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/etypes.h>
|
||||
#include <epan/expert.h>
|
||||
|
@ -3736,8 +3736,8 @@ proto_register_enip(void)
|
|||
proto_register_field_array(proto_dlr, hfdlr, array_length(hfdlr));
|
||||
proto_register_subtree_array(ettdlr, array_length(ettdlr));
|
||||
|
||||
register_color_conversation_filter("enip", "ENIP IO", enip_io_conv_valid, enip_io_conv_filter);
|
||||
register_color_conversation_filter("enip", "ENIP Explicit", enip_exp_conv_valid, enip_exp_conv_filter);
|
||||
register_conversation_filter("enip", "ENIP IO", enip_io_conv_valid, enip_io_conv_filter);
|
||||
register_conversation_filter("enip", "ENIP Explicit", enip_exp_conv_valid, enip_exp_conv_filter);
|
||||
|
||||
register_decode_as(&enip_da);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <epan/addr_resolv.h>
|
||||
#include <epan/expert.h>
|
||||
#include <epan/conversation_table.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <wsutil/pint.h>
|
||||
#include "packet-eth.h"
|
||||
#include "packet-ieee8023.h"
|
||||
|
@ -162,13 +162,13 @@ eth_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, cons
|
|||
}
|
||||
|
||||
static gboolean
|
||||
eth_color_filter_valid(packet_info *pinfo)
|
||||
eth_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
return (pinfo->dl_src.type == AT_ETHER);
|
||||
}
|
||||
|
||||
static gchar*
|
||||
eth_build_color_filter(packet_info *pinfo)
|
||||
eth_build_filter(packet_info *pinfo)
|
||||
{
|
||||
return g_strdup_printf("eth.addr eq %s and eth.addr eq %s",
|
||||
address_to_str(pinfo->pool, &pinfo->dl_src),
|
||||
|
@ -1013,7 +1013,7 @@ proto_register_eth(void)
|
|||
eth_tap = register_tap("eth");
|
||||
|
||||
register_conversation_table(proto_eth, TRUE, eth_conversation_packet, eth_hostlist_packet);
|
||||
register_color_conversation_filter("eth", "Ethernet", eth_color_filter_valid, eth_build_color_filter);
|
||||
register_conversation_filter("eth", "Ethernet", eth_filter_valid, eth_build_filter);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#include <epan/ip_opts.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/conversation_table.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/etypes.h>
|
||||
#include <epan/ppptypes.h>
|
||||
|
@ -534,13 +534,13 @@ ip_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const
|
|||
}
|
||||
|
||||
static gboolean
|
||||
ip_color_filter_valid(packet_info *pinfo)
|
||||
ip_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
return proto_is_frame_protocol(pinfo->layers, "ip");
|
||||
}
|
||||
|
||||
static gchar*
|
||||
ip_build_color_filter(packet_info *pinfo)
|
||||
ip_build_filter(packet_info *pinfo)
|
||||
{
|
||||
return g_strdup_printf("ip.addr eq %s and ip.addr eq %s",
|
||||
address_to_str(pinfo->pool, &pinfo->net_src),
|
||||
|
@ -3173,7 +3173,7 @@ proto_register_ip(void)
|
|||
|
||||
register_decode_as(&ip_da);
|
||||
register_conversation_table(proto_ip, TRUE, ip_conversation_packet, ip_hostlist_packet);
|
||||
register_color_conversation_filter("ip", "IPv4", ip_color_filter_valid, ip_build_color_filter);
|
||||
register_conversation_filter("ip", "IPv4", ip_filter_valid, ip_build_filter);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include <epan/addr_resolv.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/conversation_table.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/ipproto.h>
|
||||
#include <epan/etypes.h>
|
||||
|
@ -434,13 +434,13 @@ ipv6_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, con
|
|||
}
|
||||
|
||||
static gboolean
|
||||
ipv6_color_filter_valid(packet_info *pinfo)
|
||||
ipv6_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
return proto_is_frame_protocol(pinfo->layers, "ipv6");
|
||||
}
|
||||
|
||||
static gchar*
|
||||
ipv6_build_color_filter(packet_info *pinfo)
|
||||
ipv6_build_filter(packet_info *pinfo)
|
||||
{
|
||||
return g_strdup_printf("ipv6.addr eq %s and ipv6.addr eq %s",
|
||||
address_to_str(pinfo->pool, &pinfo->net_src),
|
||||
|
@ -3505,7 +3505,7 @@ proto_register_ipv6(void)
|
|||
register_decode_as(&ipv6_next_header_da);
|
||||
|
||||
register_conversation_table(proto_ipv6, TRUE, ipv6_conversation_packet, ipv6_hostlist_packet);
|
||||
register_color_conversation_filter("ipv6", "IPv6", ipv6_color_filter_valid, ipv6_build_color_filter);
|
||||
register_conversation_filter("ipv6", "IPv6", ipv6_filter_valid, ipv6_build_filter);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include <epan/prefs.h>
|
||||
#include <epan/show_exception.h>
|
||||
#include <epan/conversation_table.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/decode_as.h>
|
||||
#include <epan/in_cksum.h>
|
||||
|
@ -717,13 +717,13 @@ tcpip_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
}
|
||||
|
||||
static gboolean
|
||||
tcp_color_filter_valid(packet_info *pinfo)
|
||||
tcp_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
return proto_is_frame_protocol(pinfo->layers, "tcp");
|
||||
}
|
||||
|
||||
static gchar*
|
||||
tcp_build_color_filter(packet_info *pinfo)
|
||||
tcp_build_filter(packet_info *pinfo)
|
||||
{
|
||||
if( pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4 ) {
|
||||
/* TCP over IPv4 */
|
||||
|
@ -6604,7 +6604,7 @@ proto_register_tcp(void)
|
|||
register_decode_as(&tcp_da);
|
||||
|
||||
register_conversation_table(proto_tcp, FALSE, tcpip_conversation_packet, tcpip_hostlist_packet);
|
||||
register_color_conversation_filter("tcp", "TCP", tcp_color_filter_valid, tcp_build_color_filter);
|
||||
register_conversation_filter("tcp", "TCP", tcp_filter_valid, tcp_build_filter);
|
||||
|
||||
|
||||
/* considers MPTCP as a distinct protocol (even if it's a TCP option) */
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
#include <epan/conversation.h>
|
||||
#include <epan/conversation_table.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/decode_as.h>
|
||||
|
||||
void proto_register_udp(void);
|
||||
|
@ -371,13 +371,13 @@ udpip_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
}
|
||||
|
||||
static gboolean
|
||||
udp_color_filter_valid(packet_info *pinfo)
|
||||
udp_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
return proto_is_frame_protocol(pinfo->layers, "udp");
|
||||
}
|
||||
|
||||
static gchar*
|
||||
udp_build_color_filter(packet_info *pinfo)
|
||||
udp_build_filter(packet_info *pinfo)
|
||||
{
|
||||
if( pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4 ) {
|
||||
/* UDP over IPv4 */
|
||||
|
@ -1103,7 +1103,7 @@ proto_register_udp(void)
|
|||
|
||||
register_decode_as(&udp_da);
|
||||
register_conversation_table(proto_udp, FALSE, udpip_conversation_packet, udpip_hostlist_packet);
|
||||
register_color_conversation_filter("udp", "UDP", udp_color_filter_valid, udp_build_color_filter);
|
||||
register_conversation_filter("udp", "UDP", udp_filter_valid, udp_build_filter);
|
||||
|
||||
register_init_routine(udp_init);
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
#include <epan/packet.h>
|
||||
#include <epan/to_str.h>
|
||||
#include <epan/expert.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/dissectors/packet-dcerpc.h>
|
||||
|
||||
#include "packet-pn.h"
|
||||
|
@ -12260,8 +12260,8 @@ proto_register_pn_io (void)
|
|||
|
||||
register_cleanup_routine(pnio_cleanup);
|
||||
|
||||
register_color_conversation_filter("pn_io", "PN-IO AR", pn_io_ar_conv_valid, pn_io_ar_conv_filter);
|
||||
register_color_conversation_filter("pn_io", "PN-IO AR (with data)", pn_io_ar_conv_valid, pn_io_ar_conv_data_filter);
|
||||
register_conversation_filter("pn_io", "PN-IO AR", pn_io_ar_conv_valid, pn_io_ar_conv_filter);
|
||||
register_conversation_filter("pn_io", "PN-IO AR (with data)", pn_io_ar_conv_valid, pn_io_ar_conv_data_filter);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include <epan/packet.h>
|
||||
#include <epan/expert.h>
|
||||
#include <epan/addr_resolv.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/dissectors/packet-dcerpc.h>
|
||||
#include <epan/dissectors/packet-dcom.h>
|
||||
#include "packet-dcom-cba-acco.h"
|
||||
|
@ -336,7 +336,7 @@ GList *cba_pdevs;
|
|||
const true_false_string acco_flags_set_truth = { "Set", "Not set" };
|
||||
|
||||
static gboolean
|
||||
cba_color_filter_valid(packet_info *pinfo)
|
||||
cba_filter_valid(packet_info *pinfo)
|
||||
{
|
||||
void* profinet_type = p_get_proto_data(pinfo->pool, pinfo, proto_ICBAAccoMgt, 0);
|
||||
|
||||
|
@ -344,7 +344,7 @@ cba_color_filter_valid(packet_info *pinfo)
|
|||
}
|
||||
|
||||
static gchar*
|
||||
cba_build_color_filter(packet_info *pinfo)
|
||||
cba_build_filter(packet_info *pinfo)
|
||||
{
|
||||
gboolean is_tcp = proto_is_frame_protocol(pinfo->layers, "tcp");
|
||||
void* profinet_type = p_get_proto_data(pinfo->pool, pinfo, proto_ICBAAccoMgt, 0);
|
||||
|
@ -5113,7 +5113,7 @@ proto_register_dcom_cba_acco (void)
|
|||
proto_ICBAAccoSync = proto_register_protocol ("ICBAAccoSync", "ICBAAccoSync", "cba_acco_sync");
|
||||
proto_register_subtree_array (ett5, array_length (ett5));
|
||||
|
||||
register_color_conversation_filter("cba", "PN-CBA", cba_color_filter_valid, cba_build_color_filter);
|
||||
register_conversation_filter("cba", "PN-CBA", cba_filter_valid, cba_build_filter);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/prefs-int.h>
|
||||
#include <epan/color_dissector_filters.h>
|
||||
#include <epan/dissector_filters.h>
|
||||
#include <epan/epan_dissect.h>
|
||||
#include <epan/column.h>
|
||||
#include <epan/stats_tree_priv.h>
|
||||
|
@ -189,7 +189,7 @@ edit_window_cb(GtkWidget *widget _U_)
|
|||
#endif
|
||||
|
||||
static void
|
||||
colorize_conversation_cb(color_conversation_filter_t* color_filter, int action_num)
|
||||
colorize_conversation_cb(conversation_filter_t* color_filter, int action_num)
|
||||
{
|
||||
gchar *filter = NULL;
|
||||
packet_info *pi = &cfile.edt->pi;
|
||||
|
@ -203,26 +203,26 @@ colorize_conversation_cb(color_conversation_filter_t* color_filter, int action_n
|
|||
* or through an accelerator key. Try to build a conversation
|
||||
* filter in the order TCP, UDP, IP, Ethernet and apply the
|
||||
* coloring */
|
||||
color_filter = find_color_conversation_filter("tcp");
|
||||
color_filter = find_conversation_filter("tcp");
|
||||
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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_conversation_filter("eth");
|
||||
if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
|
||||
filter = color_filter->build_filter_string(pi);
|
||||
}
|
||||
|
@ -254,23 +254,23 @@ goto_conversation_frame(gboolean dir)
|
|||
dfilter_t *dfcode = NULL;
|
||||
gboolean found_packet = FALSE;
|
||||
packet_info *pi = &cfile.edt->pi;
|
||||
color_conversation_filter_t* color_filter;
|
||||
conversation_filter_t* conv_filter;
|
||||
|
||||
/* Try to build a conversation
|
||||
* filter in the order TCP, UDP, IP, Ethernet and apply the
|
||||
* coloring */
|
||||
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);
|
||||
conv_filter = find_conversation_filter("tcp");
|
||||
if ((conv_filter != NULL) && (conv_filter->is_filter_valid(pi)))
|
||||
filter = conv_filter->build_filter_string(pi);
|
||||
conv_filter = find_conversation_filter("udp");
|
||||
if ((conv_filter != NULL) && (conv_filter->is_filter_valid(pi)))
|
||||
filter = conv_filter->build_filter_string(pi);
|
||||
conv_filter = find_conversation_filter("ip");
|
||||
if ((conv_filter != NULL) && (conv_filter->is_filter_valid(pi)))
|
||||
filter = conv_filter->build_filter_string(pi);
|
||||
conv_filter = find_conversation_filter("ipv6");
|
||||
if ((conv_filter != NULL) && (conv_filter->is_filter_valid(pi)))
|
||||
filter = conv_filter->build_filter_string(pi);
|
||||
|
||||
if( filter == NULL ) {
|
||||
statusbar_push_temporary_msg("Unable to build conversation filter.");
|
||||
|
@ -1886,77 +1886,77 @@ typedef void (*packet_list_menu_color_conv_color_cb_t)(GtkAction *action, gpoint
|
|||
static void
|
||||
packet_list_menu_color_conv_color1_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color2_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 2);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color3_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 3);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color4_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 4);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color5_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 5);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color6_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 6);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color7_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 7);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color8_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 8);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color9_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 9);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_color10_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 10);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_color_conv_new_rule_cb(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t*)user_data;
|
||||
conversation_filter_t* color_filter = (conversation_filter_t*)user_data;
|
||||
colorize_conversation_cb(color_filter, 0);
|
||||
}
|
||||
|
||||
|
@ -2557,7 +2557,7 @@ main_menu_new(GtkAccelGroup ** table)
|
|||
static void
|
||||
menu_dissector_filter_cb(GtkAction *action _U_, gpointer callback_data)
|
||||
{
|
||||
color_conversation_filter_t *filter_entry = (color_conversation_filter_t *)callback_data;
|
||||
conversation_filter_t *filter_entry = (conversation_filter_t *)callback_data;
|
||||
GtkWidget *filter_te;
|
||||
const char *buf;
|
||||
|
||||
|
@ -2580,7 +2580,7 @@ menu_dissector_filter_cb(GtkAction *action _U_, gpointer callback_data)
|
|||
static gboolean
|
||||
menu_dissector_filter_spe_cb(frame_data *fd _U_, epan_dissect_t *edt, gpointer callback_data)
|
||||
{
|
||||
color_conversation_filter_t *filter_entry = (color_conversation_filter_t*)callback_data;
|
||||
conversation_filter_t *filter_entry = (conversation_filter_t*)callback_data;
|
||||
|
||||
/* XXX - this gets the packet_info of the last dissected packet, */
|
||||
/* which is not necessarily the last selected packet */
|
||||
|
@ -2591,8 +2591,8 @@ menu_dissector_filter_spe_cb(frame_data *fd _U_, epan_dissect_t *edt, gpointer c
|
|||
static void
|
||||
menu_dissector_filter(capture_file *cf)
|
||||
{
|
||||
GList *list_entry = color_conv_filter_list;
|
||||
color_conversation_filter_t *filter_entry;
|
||||
GList *list_entry = conv_filter_list;
|
||||
conversation_filter_t *filter_entry;
|
||||
|
||||
guint merge_id;
|
||||
GtkActionGroup *action_group;
|
||||
|
@ -2638,7 +2638,7 @@ menu_dissector_filter(capture_file *cf)
|
|||
}
|
||||
|
||||
while (list_entry != NULL) {
|
||||
filter_entry = (color_conversation_filter_t *)list_entry->data;
|
||||
filter_entry = (conversation_filter_t *)list_entry->data;
|
||||
action_name = g_strdup_printf ("filter-%u", i);
|
||||
/*g_warning("action_name %s, filter_entry->name %s",action_name,filter_entry->name);*/
|
||||
action = (GtkAction *)g_object_new (GTK_TYPE_ACTION,
|
||||
|
@ -2795,9 +2795,9 @@ menu_hostlist_list(capture_file *cf)
|
|||
}
|
||||
|
||||
static void
|
||||
menu_color_conversation_filter_cb(GtkAction *action _U_, gpointer data)
|
||||
menu_conversation_display_filter_cb(GtkAction *action _U_, gpointer data)
|
||||
{
|
||||
color_conversation_filter_t *filter_entry = (color_conversation_filter_t *)data;
|
||||
conversation_filter_t *filter_entry = (conversation_filter_t *)data;
|
||||
|
||||
gchar *filter;
|
||||
GtkWidget *filter_te;
|
||||
|
@ -2820,7 +2820,7 @@ menu_color_conversation_filter_cb(GtkAction *action _U_, gpointer data)
|
|||
static gboolean
|
||||
menu_color_dissector_filter_spe_cb(frame_data *fd _U_, epan_dissect_t *edt, gpointer callback_data)
|
||||
{
|
||||
color_conversation_filter_t *filter_entry = (color_conversation_filter_t *)callback_data;
|
||||
conversation_filter_t *filter_entry = (conversation_filter_t *)callback_data;
|
||||
|
||||
/* XXX - this gets the packet_info of the last dissected packet, */
|
||||
/* which is not necessarily the last selected packet */
|
||||
|
@ -2834,8 +2834,8 @@ menu_color_conversation_filter(capture_file *cf)
|
|||
GtkWidget *submenu_conv_filters, *submenu_color_conv_filters;
|
||||
guint merge_id, color_merge_id;
|
||||
GtkActionGroup *action_group, *color_action_group;
|
||||
GList *list_entry = color_conv_filter_list;
|
||||
color_conversation_filter_t* color_filter;
|
||||
GList *list_entry = conv_filter_list;
|
||||
conversation_filter_t* color_filter;
|
||||
int conv_counter = 0;
|
||||
|
||||
static packet_list_menu_color_conv_color_cb_t callbacks[MAX_NUM_COLOR_CONVERSATION_COLORS] = {
|
||||
|
@ -2891,7 +2891,7 @@ menu_color_conversation_filter(capture_file *cf)
|
|||
GtkAction *action, *color_action;
|
||||
GtkWidget *color_conv_filter_menuitem, *color_conv_filter_submenu, *color_conv_widget;
|
||||
|
||||
color_filter = (color_conversation_filter_t*)list_entry->data;
|
||||
color_filter = (conversation_filter_t*)list_entry->data;
|
||||
|
||||
/* Create conversation filter menu item for each registered protocol */
|
||||
action_name = g_strdup_printf ("color_conversation-%u", conv_counter);
|
||||
|
@ -2901,7 +2901,7 @@ menu_color_conversation_filter(capture_file *cf)
|
|||
"label", color_filter->display_name,
|
||||
"sensitive", menu_color_dissector_filter_spe_cb(NULL, cf->edt, color_filter),
|
||||
NULL);
|
||||
g_signal_connect (action, "activate", G_CALLBACK (menu_color_conversation_filter_cb), color_filter);
|
||||
g_signal_connect (action, "activate", G_CALLBACK (menu_conversation_display_filter_cb), color_filter);
|
||||
gtk_action_group_add_action (action_group, action);
|
||||
g_object_unref (action);
|
||||
|
||||
|
@ -4517,7 +4517,7 @@ set_menus_for_captured_packets(gboolean have_captured_packets)
|
|||
void
|
||||
set_menus_for_selected_packet(capture_file *cf)
|
||||
{
|
||||
GList *color_list_entry = color_conv_filter_list;
|
||||
GList *conv_filter_list_entry;
|
||||
guint i = 0;
|
||||
gboolean properties = FALSE;
|
||||
const char *abbrev = NULL;
|
||||
|
@ -4703,41 +4703,27 @@ set_menus_for_selected_packet(capture_file *cf)
|
|||
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/TelephonyMenu/LTEmenu/LTE_RLC_Graph",
|
||||
is_lte_rlc);
|
||||
|
||||
i = 0;
|
||||
color_list_entry = color_conv_filter_list;
|
||||
while (color_list_entry != NULL) {
|
||||
color_conversation_filter_t *filter_entry;
|
||||
for (i = 0, conv_filter_list_entry = conv_filter_list;
|
||||
conv_filter_list_entry != NULL;
|
||||
conv_filter_list_entry = g_list_next(conv_filter_list_entry), i++) {
|
||||
conversation_filter_t *filter_entry;
|
||||
gchar *path;
|
||||
|
||||
filter_entry = (color_conversation_filter_t *)color_list_entry->data;
|
||||
filter_entry = (conversation_filter_t *)conv_filter_list_entry->data;
|
||||
path = g_strdup_printf("/Menubar/AnalyzeMenu/ConversationFilterMenu/Filters/filter-%u", i);
|
||||
|
||||
set_menu_sensitivity(ui_manager_main_menubar, path,
|
||||
menu_dissector_filter_spe_cb(/* frame_data *fd _U_*/ NULL, cf->edt, filter_entry));
|
||||
g_free(path);
|
||||
i++;
|
||||
color_list_entry = g_list_next(color_list_entry);
|
||||
}
|
||||
|
||||
i = 0;
|
||||
color_list_entry = color_conv_filter_list;
|
||||
while (color_list_entry != NULL) {
|
||||
color_conversation_filter_t* color_filter;
|
||||
gchar *path;
|
||||
|
||||
color_filter = (color_conversation_filter_t *)color_list_entry->data;
|
||||
path = g_strdup_printf("/PacketListMenuPopup/ConversationFilter/Conversations/color_conversation-%d", i);
|
||||
i++;
|
||||
|
||||
set_menu_sensitivity(ui_manager_packet_list_menu, path,
|
||||
menu_color_dissector_filter_spe_cb(NULL, cf->edt, color_filter));
|
||||
menu_color_dissector_filter_spe_cb(NULL, cf->edt, filter_entry));
|
||||
g_free(path);
|
||||
|
||||
path = g_strdup_printf("/PacketListMenuPopup/ColorizeConversation/Colorize/%s", color_filter->display_name);
|
||||
path = g_strdup_printf("/PacketListMenuPopup/ColorizeConversation/Colorize/%s", filter_entry->display_name);
|
||||
set_menu_sensitivity(ui_manager_packet_list_menu, path,
|
||||
menu_color_dissector_filter_spe_cb(NULL, cf->edt, color_filter));
|
||||
menu_color_dissector_filter_spe_cb(NULL, cf->edt, filter_entry));
|
||||
g_free(path);
|
||||
color_list_entry = g_list_next(color_list_entry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#include <wsutil/str_util.h>
|
||||
|
||||
#include "epan/addr_resolv.h"
|
||||
#include "epan/color_dissector_filters.h"
|
||||
#include "epan/dissector_filters.h"
|
||||
#include "epan/column.h"
|
||||
#include "epan/dfilter/dfilter-macro.h"
|
||||
#include "epan/epan_dissect.h"
|
||||
|
@ -1144,16 +1144,16 @@ void MainWindow::setMenusForSelectedPacket()
|
|||
packet_list_->conversationMenu()->clear();
|
||||
packet_list_->colorizeMenu()->clear();
|
||||
|
||||
for (GList *color_list_entry = color_conv_filter_list; color_list_entry; color_list_entry = g_list_next(color_list_entry)) {
|
||||
for (GList *conv_filter_list_entry = conv_filter_list; conv_filter_list_entry; conv_filter_list_entry = g_list_next(conv_filter_list_entry)) {
|
||||
// Main menu items
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t *)color_list_entry->data;
|
||||
QAction *conv_action = main_ui_->menuConversationFilter->addAction(color_filter->display_name);
|
||||
conversation_filter_t* conv_filter = (conversation_filter_t *)conv_filter_list_entry->data;
|
||||
QAction *conv_action = main_ui_->menuConversationFilter->addAction(conv_filter->display_name);
|
||||
|
||||
bool enable = false;
|
||||
QString filter;
|
||||
if (capture_file_.capFile()->edt) {
|
||||
enable = color_filter->is_filter_valid(&capture_file_.capFile()->edt->pi);
|
||||
filter = gchar_free_to_qstring(color_filter->build_filter_string(&capture_file_.capFile()->edt->pi));
|
||||
enable = conv_filter->is_filter_valid(&capture_file_.capFile()->edt->pi);
|
||||
filter = gchar_free_to_qstring(conv_filter->build_filter_string(&capture_file_.capFile()->edt->pi));
|
||||
}
|
||||
conv_action->setEnabled(enable);
|
||||
conv_action->setData(filter);
|
||||
|
@ -1280,18 +1280,18 @@ void MainWindow::setMenusForSelectedTreeRow(field_info *fi) {
|
|||
if (!proto_tree_ || !proto_tree_->hasFocus()) return;
|
||||
|
||||
main_ui_->menuConversationFilter->clear();
|
||||
for (GList *color_list_entry = color_conv_filter_list; color_list_entry; color_list_entry = g_list_next(color_list_entry)) {
|
||||
color_conversation_filter_t* color_filter = (color_conversation_filter_t *)color_list_entry->data;
|
||||
QAction *conv_action = main_ui_->menuConversationFilter->addAction(color_filter->display_name);
|
||||
for (GList *conv_filter_list_entry = conv_filter_list; conv_filter_list_entry; conv_filter_list_entry = g_list_next(conv_filter_list_entry)) {
|
||||
conversation_filter_t* conv_filter = (conversation_filter_t *)conv_filter_list_entry->data;
|
||||
QAction *conv_action = main_ui_->menuConversationFilter->addAction(conv_filter->display_name);
|
||||
|
||||
bool conv_enable = false;
|
||||
QString conv_filter;
|
||||
bool enable = false;
|
||||
QString filter;
|
||||
if (capture_file_.capFile() && capture_file_.capFile()->edt) {
|
||||
conv_enable = color_filter->is_filter_valid(&capture_file_.capFile()->edt->pi);
|
||||
conv_filter = color_filter->build_filter_string(&capture_file_.capFile()->edt->pi);
|
||||
enable = conv_filter->is_filter_valid(&capture_file_.capFile()->edt->pi);
|
||||
filter = conv_filter->build_filter_string(&capture_file_.capFile()->edt->pi);
|
||||
}
|
||||
conv_action->setEnabled(conv_enable);
|
||||
conv_action->setData(conv_filter);
|
||||
conv_action->setEnabled(enable);
|
||||
conv_action->setData(filter);
|
||||
connect(conv_action, SIGNAL(triggered()), this, SLOT(applyConversationFilter()));
|
||||
}
|
||||
|
||||
|
@ -2219,26 +2219,26 @@ void MainWindow::colorizeConversation(bool create_rule)
|
|||
guint8 cc_num = cc_action->data().toUInt();
|
||||
gchar *filter = NULL;
|
||||
|
||||
const color_conversation_filter_t *color_filter = find_color_conversation_filter("tcp");
|
||||
const conversation_filter_t *color_filter = find_conversation_filter("tcp");
|
||||
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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_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");
|
||||
color_filter = find_conversation_filter("eth");
|
||||
if ((color_filter != NULL) && (color_filter->is_filter_valid(pi)))
|
||||
filter = color_filter->build_filter_string(pi);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue