diff options
-rw-r--r-- | epan/dissectors/packet-isup.c | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-smpp.c | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-ucp.c | 4 | ||||
-rw-r--r-- | epan/libwireshark.def | 1 | ||||
-rw-r--r-- | epan/stats_tree.c | 16 | ||||
-rw-r--r-- | epan/stats_tree.h | 20 | ||||
-rw-r--r-- | epan/stats_tree_priv.h | 1 | ||||
-rw-r--r-- | gtk/stats_tree_stat.c | 11 | ||||
-rw-r--r-- | plugins/stats_tree/pinfo_stats_tree.c | 2 |
9 files changed, 45 insertions, 20 deletions
diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c index 8af1130a36..0633342488 100644 --- a/epan/dissectors/packet-isup.c +++ b/epan/dissectors/packet-isup.c @@ -8131,8 +8131,9 @@ proto_register_isup(void) &isup_apm_desegment); /* Register the stats_tree */ - stats_tree_register("isup", "isup_msg", "ISUP Messages", - msg_stats_tree_packet, msg_stats_tree_init, NULL); + stats_tree_register_with_group("isup", "isup_msg", "ISUP Messages", + msg_stats_tree_packet, msg_stats_tree_init, + NULL, REGISTER_STAT_GROUP_TELEPHONY); } diff --git a/epan/dissectors/packet-smpp.c b/epan/dissectors/packet-smpp.c index 29347c8730..598de9c000 100644 --- a/epan/dissectors/packet-smpp.c +++ b/epan/dissectors/packet-smpp.c @@ -3434,6 +3434,7 @@ proto_reg_handoff_smpp(void) DISSECTOR_ASSERT(gsm_sms_handle); /* Tapping setup */ - stats_tree_register("smpp","smpp_commands", st_str_smpp, - smpp_stats_tree_per_packet, smpp_stats_tree_init, NULL); + stats_tree_register_with_group("smpp","smpp_commands", st_str_smpp, + smpp_stats_tree_per_packet, smpp_stats_tree_init, + NULL, REGISTER_STAT_GROUP_TELEPHONY); } diff --git a/epan/dissectors/packet-ucp.c b/epan/dissectors/packet-ucp.c index 753bd041ca..49b2583fdc 100644 --- a/epan/dissectors/packet-ucp.c +++ b/epan/dissectors/packet-ucp.c @@ -2757,7 +2757,7 @@ proto_reg_handoff_ucp(void) dissector_add_handle("tcp.port", ucp_handle); /* Tapping setup */ - stats_tree_register("ucp", "ucp_messages", st_str_ucp, + stats_tree_register_with_group("ucp", "ucp_messages", st_str_ucp, ucp_stats_tree_per_packet, ucp_stats_tree_init, - NULL); + NULL, REGISTER_STAT_GROUP_TELEPHONY); } diff --git a/epan/libwireshark.def b/epan/libwireshark.def index 5be53413e6..616bdf4bcb 100644 --- a/epan/libwireshark.def +++ b/epan/libwireshark.def @@ -877,6 +877,7 @@ stats_tree_parent_id_by_name stats_tree_presentation stats_tree_range_node_with_pname stats_tree_register +stats_tree_register_with_group stats_tree_reinit stats_tree_reset stats_tree_tick_pivot diff --git a/epan/stats_tree.c b/epan/stats_tree.c index 57747dea68..ffdb0ae49c 100644 --- a/epan/stats_tree.c +++ b/epan/stats_tree.c @@ -261,9 +261,9 @@ stats_tree_reinit(void *p) /* register a new stats_tree */ extern void -stats_tree_register(const char *tapname, const char *abbr, const char *name, +stats_tree_register_with_group(const char *tapname, const char *abbr, const char *name, stat_tree_packet_cb packet, stat_tree_init_cb init, - stat_tree_cleanup_cb cleanup) + stat_tree_cleanup_cb cleanup, register_stat_group_t stat_group) { stats_tree_cfg *cfg = g_malloc( sizeof(stats_tree_cfg) ); @@ -274,6 +274,7 @@ stats_tree_register(const char *tapname, const char *abbr, const char *name, cfg->tapname = g_strdup(tapname); cfg->abbr = g_strdup(abbr); cfg->name = name ? g_strdup(name) : g_strdup(abbr); + cfg->stat_group = stat_group; cfg->packet = packet; cfg->init = init; @@ -295,6 +296,17 @@ stats_tree_register(const char *tapname, const char *abbr, const char *name, } +/* register a new stats_tree with default group REGISTER_STAT_GROUP_UNSORTED */ +extern void +stats_tree_register(const char *tapname, const char *abbr, const char *name, + stat_tree_packet_cb packet, stat_tree_init_cb init, + stat_tree_cleanup_cb cleanup) +{ + stats_tree_register_with_group(tapname, abbr, name, + packet, init, + cleanup, REGISTER_STAT_GROUP_UNSORTED); +} + extern stats_tree* stats_tree_new(stats_tree_cfg *cfg, tree_pres *pr, char *filter) { diff --git a/epan/stats_tree.h b/epan/stats_tree.h index 207a0670cd..66a0c556cd 100644 --- a/epan/stats_tree.h +++ b/epan/stats_tree.h @@ -30,6 +30,7 @@ #include <epan/packet_info.h> #include <epan/to_str.h> #include <epan/tap.h> +#include "../stat_menu.h" #include "../register.h" #define STAT_TREE_ROOT "root" @@ -49,11 +50,12 @@ typedef void (*stat_tree_init_cb)(stats_tree*); /* stats_tree cleanup callback */ typedef void (*stat_tree_cleanup_cb)(stats_tree*); -/* registers a new stats tree +/* registers a new stats tree with default group REGISTER_STAT_GROUP_UNSORTED * abbr: protocol abbr * name: protocol display name * packet: per packet callback * init: tree initialization callback + * cleanup: cleanup callback */ extern void stats_tree_register(const gchar *tapname, const gchar *abbr, @@ -62,6 +64,22 @@ extern void stats_tree_register(const gchar *tapname, stat_tree_init_cb init, stat_tree_cleanup_cb cleanup); +/* registers a new stats tree + * abbr: protocol abbr + * name: protocol display name + * packet: per packet callback + * init: tree initialization callback + * cleanup: cleanup callback + * stat_group: the group this stat belongs to + */ +extern void stats_tree_register_with_group(const gchar *tapname, + const gchar *abbr, + const gchar *name, + stat_tree_packet_cb packet, + stat_tree_init_cb init, + stat_tree_cleanup_cb cleanup, + register_stat_group_t stat_group); + extern int stats_tree_parent_id_by_name(stats_tree *st, const gchar *parent_name); /* Creates a node in the tree (to be used in the in init_cb) diff --git a/epan/stats_tree_priv.h b/epan/stats_tree_priv.h index 304746b322..7bfd9015bf 100644 --- a/epan/stats_tree_priv.h +++ b/epan/stats_tree_priv.h @@ -110,6 +110,7 @@ struct _stats_tree_cfg { gchar* abbr; gchar* name; gchar* tapname; + register_stat_group_t stat_group; gboolean in_use; diff --git a/gtk/stats_tree_stat.c b/gtk/stats_tree_stat.c index bdde934285..577034c91a 100644 --- a/gtk/stats_tree_stat.c +++ b/gtk/stats_tree_stat.c @@ -335,7 +335,6 @@ static void register_gtk_stats_tree_tap (gpointer k _U_, gpointer v, gpointer p _U_) { stats_tree_cfg* cfg = v; - register_stat_group_t stat_group = REGISTER_STAT_GROUP_UNSORTED; cfg->pr = g_malloc(sizeof(tree_pres)); @@ -346,15 +345,7 @@ register_gtk_stats_tree_tap (gpointer k _U_, gpointer v, gpointer p _U_) cfg->pr->stat_dlg->tap_init_cb = init_gtk_tree; cfg->pr->stat_dlg->index = -1; - /* XXX - maybe let the stats_tree stuff register their stat groups themself? */ - if(strcmp(cfg->abbr, "isup_msg") == 0 || - strcmp(cfg->abbr, "smpp_commands") == 0) { - stat_group = REGISTER_STAT_GROUP_TELEPHONY; - } - if(strcmp(cfg->abbr, "plen") == 0) { - stat_group = REGISTER_STAT_GROUP_GENERIC; - } - register_dfilter_stat(cfg->pr->stat_dlg, cfg->name, stat_group); + register_dfilter_stat(cfg->pr->stat_dlg, cfg->name, cfg->stat_group); } static void diff --git a/plugins/stats_tree/pinfo_stats_tree.c b/plugins/stats_tree/pinfo_stats_tree.c index f64987f17d..db5f06b545 100644 --- a/plugins/stats_tree/pinfo_stats_tree.c +++ b/plugins/stats_tree/pinfo_stats_tree.c @@ -139,7 +139,7 @@ static int dsts_stats_tree_packet(stats_tree* st, packet_info* pinfo, epan_disse void register_pinfo_stat_trees(void) { stats_tree_register("ip","ip_hosts",st_str_ip, ip_hosts_stats_tree_packet, ip_hosts_stats_tree_init, NULL ); stats_tree_register("ip","ptype",st_str_ptype, ptype_stats_tree_packet, ptype_stats_tree_init, NULL ); - stats_tree_register("frame","plen",st_str_plen, plen_stats_tree_packet, plen_stats_tree_init, NULL ); + stats_tree_register_with_group("frame","plen",st_str_plen, plen_stats_tree_packet, plen_stats_tree_init, NULL, REGISTER_STAT_GROUP_GENERIC ); stats_tree_register("ip","dests",st_str_dsts, dsts_stats_tree_packet, dsts_stats_tree_init, NULL ); } |