aboutsummaryrefslogtreecommitdiffstats
path: root/tap-sipstat.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-05-01 21:34:24 +0000
committerGuy Harris <guy@alum.mit.edu>2004-05-01 21:34:24 +0000
commit2baed8579aa09cb80b7decc342ce04a8ddf864fa (patch)
treeb830c5fce0cb89a3d4cf8665771a2332e28ef51a /tap-sipstat.c
parent3d3a9c238fe6597a6eb81c2ac3ceb3d3707b9542 (diff)
From Lars Roland: add message counts to the SIP statistics.
svn path=/trunk/; revision=10763
Diffstat (limited to 'tap-sipstat.c')
-rw-r--r--tap-sipstat.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/tap-sipstat.c b/tap-sipstat.c
index 715247d1f7..3856f400c5 100644
--- a/tap-sipstat.c
+++ b/tap-sipstat.c
@@ -1,7 +1,7 @@
/* tap_sipstat.c
* sip message counter for ethereal
*
- * $Id: tap-sipstat.c,v 1.1 2004/03/30 18:55:46 guy Exp $
+ * $Id: tap-sipstat.c,v 1.2 2004/05/01 21:34:24 guy Exp $
* Copied from gtk/sip_stat.c and tap-httpstat.c
*
* Ethereal - Network traffic analyzer
@@ -43,6 +43,8 @@
/* used to keep track of the statictics for an entire program interface */
typedef struct _sip_stats_t {
char *filter;
+ guint32 packets; /* number of sip packets, including continuations */
+ guint32 resent_packets;
GHashTable *hash_responses;
GHashTable *hash_requests;
} sipstat_t;
@@ -205,6 +207,8 @@ sipstat_reset(void *psp )
{
sipstat_t *sp=psp;
if (sp) {
+ sp->packets = 0;
+ sp->resent_packets = 0;
g_hash_table_foreach( sp->hash_responses, (GHFunc)sip_reset_hash_responses, NULL);
g_hash_table_foreach( sp->hash_requests, (GHFunc)sip_reset_hash_requests, NULL);
}
@@ -217,7 +221,17 @@ sipstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, void
{
sip_info_value_t *value=pri;
sipstat_t *sp = (sipstat_t *)psp;
+
+ /* Total number of packets, including continuation packets */
+ sp->packets++;
+
+ /* Update resent count if flag set */
+ if (value->resend)
+ {
+ sp->resent_packets++;
+ }
+
/* Looking at both requests and responses */
if (value->response_code != 0)
{
@@ -318,6 +332,8 @@ sipstat_draw(void *psp )
else
printf("SIP Statistics with filter %s\n", sp->filter);
+ printf("\nNumber of SIP messages: %d", sp->packets);
+ printf("\nNumber of resent SIP messages: %d\n", sp->resent_packets);
printf( "\n* SIP Status Codes in reply packets\n");
g_hash_table_foreach( sp->hash_responses, (GHFunc)sip_draw_hash_responses,
" SIP %3d %-15s : %5d Packets\n");
@@ -366,6 +382,8 @@ sipstat_init(char *optarg)
exit(1);
}
+ sp->packets = 0;
+ sp->resent_packets = 0;
sip_init_hash(sp);
}