diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2009-02-10 03:54:55 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2009-02-10 03:54:55 +0000 |
commit | f904f42f9da356bcc70377046c7f6617e5bcba4b (patch) | |
tree | 3b043a447bd4dd271a3877bdbcd0773a3cde939c /epan | |
parent | ba78d5f30e5a6f3873fcec88fc95ae3ce320a76a (diff) |
Remove an ugly hack:
There was an ugly hack while creating the menu, that tried to detect the stat_group a stats_tree belongs to by looking at the name string. That makes it unnecessarily hard to understand how the menu is really created.
Fix: Add a new function stats_tree_register_with_group() that takes the stat_group as a parameter. Use this function where a stats_tree doesn't fit into the default "unsorted" group.
svn path=/trunk/; revision=27407
Diffstat (limited to 'epan')
-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 |
7 files changed, 43 insertions, 9 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; |