summaryrefslogtreecommitdiff
path: root/ui/cli/tap-rpcstat.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/cli/tap-rpcstat.c')
-rw-r--r--ui/cli/tap-rpcstat.c198
1 files changed, 105 insertions, 93 deletions
diff --git a/ui/cli/tap-rpcstat.c b/ui/cli/tap-rpcstat.c
index 6dc04986d1..67733b2a98 100644
--- a/ui/cli/tap-rpcstat.c
+++ b/ui/cli/tap-rpcstat.c
@@ -77,17 +77,17 @@ typedef struct _rpcstat_t {
static void
rpcstat_reset(void *prs)
{
- rpcstat_t *rs=(rpcstat_t *)prs;
+ rpcstat_t *rs = (rpcstat_t *)prs;
guint32 i;
- for(i=0;i<rs->num_procedures;i++){
- rs->procedures[i].num=0;
- rs->procedures[i].min.secs=0;
- rs->procedures[i].min.nsecs=0;
- rs->procedures[i].max.secs=0;
- rs->procedures[i].max.nsecs=0;
- rs->procedures[i].tot.secs=0;
- rs->procedures[i].tot.nsecs=0;
+ for (i=0; i<rs->num_procedures; i++) {
+ rs->procedures[i].num = 0;
+ rs->procedures[i].min.secs = 0;
+ rs->procedures[i].min.nsecs = 0;
+ rs->procedures[i].max.secs = 0;
+ rs->procedures[i].max.nsecs = 0;
+ rs->procedures[i].tot.secs = 0;
+ rs->procedures[i].tot.nsecs = 0;
}
}
@@ -122,56 +122,56 @@ rpcstat_reset(void *prs)
static int
rpcstat_packet(void *prs, packet_info *pinfo, epan_dissect_t *edt _U_, const void *pri)
{
- rpcstat_t *rs=(rpcstat_t *)prs;
- const rpc_call_info_value *ri=(const rpc_call_info_value *)pri;
+ rpcstat_t *rs = (rpcstat_t *)prs;
+ const rpc_call_info_value *ri = (const rpc_call_info_value *)pri;
nstime_t delta;
rpc_procedure_t *rp;
- if(ri->proc>=rs->num_procedures){
+ if (ri->proc >= rs->num_procedures) {
/* don't handle this since its outside of known table */
return 0;
}
/* we are only interested in reply packets */
- if(ri->request){
+ if (ri->request) {
return 0;
}
/* we are only interested in certain program/versions */
- if( (ri->prog!=rs->program) || (ri->vers!=rs->version) ){
+ if ( (ri->prog != rs->program) || (ri->vers != rs->version) ) {
return 0;
}
- rp=&(rs->procedures[ri->proc]);
+ rp = &(rs->procedures[ri->proc]);
/* calculate time delta between request and reply */
nstime_delta(&delta, &pinfo->fd->abs_ts, &ri->req_time);
- if(rp->num==0){
- rp->max.secs=delta.secs;
- rp->max.nsecs=delta.nsecs;
+ if (rp->num == 0) {
+ rp->max.secs = delta.secs;
+ rp->max.nsecs = delta.nsecs;
}
- if(rp->num==0){
- rp->min.secs=delta.secs;
- rp->min.nsecs=delta.nsecs;
+ if (rp->num == 0) {
+ rp->min.secs = delta.secs;
+ rp->min.nsecs = delta.nsecs;
}
- if( (delta.secs<rp->min.secs)
- ||( (delta.secs==rp->min.secs)
- &&(delta.nsecs<rp->min.nsecs) ) ){
- rp->min.secs=delta.secs;
- rp->min.nsecs=delta.nsecs;
+ if ( (delta.secs < rp->min.secs)
+ || ( (delta.secs == rp->min.secs)
+ && (delta.nsecs < rp->min.nsecs) ) ) {
+ rp->min.secs = delta.secs;
+ rp->min.nsecs = delta.nsecs;
}
- if( (delta.secs>rp->max.secs)
- ||( (delta.secs==rp->max.secs)
- &&(delta.nsecs>rp->max.nsecs) ) ){
- rp->max.secs=delta.secs;
- rp->max.nsecs=delta.nsecs;
+ if ( (delta.secs > rp->max.secs)
+ || ( (delta.secs == rp->max.secs)
+ && (delta.nsecs > rp->max.nsecs) ) ) {
+ rp->max.secs = delta.secs;
+ rp->max.nsecs = delta.nsecs;
}
- rp->tot.secs += delta.secs;
+ rp->tot.secs += delta.secs;
rp->tot.nsecs += delta.nsecs;
- if(rp->tot.nsecs > NANOSECS_PER_SEC){
+ if (rp->tot.nsecs > NANOSECS_PER_SEC) {
rp->tot.nsecs -= NANOSECS_PER_SEC;
rp->tot.secs++;
}
@@ -194,16 +194,16 @@ rpcstat_packet(void *prs, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
static void
rpcstat_draw(void *prs)
{
- rpcstat_t *rs=(rpcstat_t *)prs;
+ rpcstat_t *rs = (rpcstat_t *)prs;
guint32 i;
guint64 td;
printf("\n");
printf("==================================================================\n");
printf("%s Version %d SRT Statistics:\n", rs->prog, rs->version);
- printf("Filter: %s\n",rs->filter?rs->filter:"");
+ printf("Filter: %s\n", rs->filter ? rs->filter : "");
printf("Procedure Calls Min SRT Max SRT Avg SRT Total\n");
- for(i=0;i<rs->num_procedures;i++){
- if(rs->procedures[i].num==0){
+ for (i=0; i<rs->num_procedures; i++) {
+ if (rs->procedures[i].num == 0) {
continue;
}
/* Scale the average SRT in units of 1us and round to the nearest us. */
@@ -211,42 +211,42 @@ rpcstat_draw(void *prs)
td = ((td / rs->procedures[i].num) + 500) / 1000;
printf("%-15s %6d %3d.%06d %3d.%06d %3" G_GINT64_MODIFIER "u.%06" G_GINT64_MODIFIER "u %3d.%06d\n",
- rs->procedures[i].proc,
- rs->procedures[i].num,
- (int)(rs->procedures[i].min.secs),(rs->procedures[i].min.nsecs+500)/1000,
- (int)(rs->procedures[i].max.secs),(rs->procedures[i].max.nsecs+500)/1000,
- td/MICROSECS_PER_SEC, td%MICROSECS_PER_SEC,
- (int)(rs->procedures[i].tot.secs),(rs->procedures[i].tot.nsecs+500)/1000
+ rs->procedures[i].proc,
+ rs->procedures[i].num,
+ (int)(rs->procedures[i].min.secs), (rs->procedures[i].min.nsecs+500)/1000,
+ (int)(rs->procedures[i].max.secs), (rs->procedures[i].max.nsecs+500)/1000,
+ td/MICROSECS_PER_SEC, td%MICROSECS_PER_SEC,
+ (int)(rs->procedures[i].tot.secs), (rs->procedures[i].tot.nsecs+500)/1000
);
}
printf("==================================================================\n");
}
-static guint32 rpc_program=0;
-static guint32 rpc_version=0;
-static gint32 rpc_min_proc=-1;
-static gint32 rpc_max_proc=-1;
+static guint32 rpc_program = 0;
+static guint32 rpc_version = 0;
+static gint32 rpc_min_proc = -1;
+static gint32 rpc_max_proc = -1;
static void *
rpcstat_find_procs(gpointer *key, gpointer *value _U_, gpointer *user_data _U_)
{
- rpc_proc_info_key *k=(rpc_proc_info_key *)key;
+ rpc_proc_info_key *k = (rpc_proc_info_key *)key;
- if(k->prog!=rpc_program){
+ if (k->prog != rpc_program) {
return NULL;
}
- if(k->vers!=rpc_version){
+ if (k->vers != rpc_version) {
return NULL;
}
- if(rpc_min_proc==-1){
- rpc_min_proc=k->proc;
- rpc_max_proc=k->proc;
+ if (rpc_min_proc == -1) {
+ rpc_min_proc = k->proc;
+ rpc_max_proc = k->proc;
}
- if((gint32)k->proc<rpc_min_proc){
- rpc_min_proc=k->proc;
+ if ((gint32)k->proc < rpc_min_proc) {
+ rpc_min_proc = k->proc;
}
- if((gint32)k->proc>rpc_max_proc){
- rpc_max_proc=k->proc;
+ if ((gint32)k->proc > rpc_max_proc) {
+ rpc_max_proc = k->proc;
}
return NULL;
@@ -263,58 +263,58 @@ rpcstat_find_procs(gpointer *key, gpointer *value _U_, gpointer *user_data _U_)
* instance for the rpc tap.
*/
static void
-rpcstat_init(const char *opt_arg, void* userdata _U_)
+rpcstat_init(const char *opt_arg, void *userdata _U_)
{
rpcstat_t *rs;
guint32 i;
int program, version;
- int pos=0;
- const char *filter=NULL;
+ int pos = 0;
+ const char *filter = NULL;
GString *error_string;
- if(sscanf(opt_arg,"rpc,srt,%d,%d,%n",&program,&version,&pos)==2){
- if(pos){
- filter=opt_arg+pos;
+ if (sscanf(opt_arg, "rpc,srt,%d,%d,%n", &program, &version, &pos) == 2) {
+ if (pos) {
+ filter = opt_arg+pos;
} else {
- filter=NULL;
+ filter = NULL;
}
} else {
fprintf(stderr, "tshark: invalid \"-z rpc,srt,<program>,<version>[,<filter>]\" argument\n");
exit(1);
}
- rs=g_new(rpcstat_t,1);
- rs->prog=rpc_prog_name(program);
- rs->program=program;
- rs->version=version;
- if(filter){
- rs->filter=g_strdup(filter);
+ rs = g_new(rpcstat_t, 1);
+ rs->prog = rpc_prog_name(program);
+ rs->program = program;
+ rs->version = version;
+ if (filter) {
+ rs->filter = g_strdup(filter);
} else {
- rs->filter=NULL;
+ rs->filter = NULL;
}
- rpc_program=program;
- rpc_version=version;
- rpc_min_proc=-1;
- rpc_max_proc=-1;
+ rpc_program = program;
+ rpc_version = version;
+ rpc_min_proc = -1;
+ rpc_max_proc = -1;
g_hash_table_foreach(rpc_procs, (GHFunc)rpcstat_find_procs, NULL);
- if(rpc_min_proc==-1){
- fprintf(stderr,"tshark: Invalid -z rpc,srt,%d,%d\n",rpc_program,rpc_version);
- fprintf(stderr," Program:%d version:%d isn't supported by tshark.\n", rpc_program, rpc_version);
+ if (rpc_min_proc == -1) {
+ fprintf(stderr, "tshark: Invalid -z rpc,srt,%d,%d\n", rpc_program, rpc_version);
+ fprintf(stderr, " Program:%d version:%d isn't supported by tshark.\n", rpc_program, rpc_version);
exit(1);
}
- rs->num_procedures=rpc_max_proc+1;
- rs->procedures=g_new(rpc_procedure_t,rs->num_procedures+1);
- for(i=0;i<rs->num_procedures;i++){
- rs->procedures[i].proc=rpc_proc_name(program, version, i);
- rs->procedures[i].num=0;
- rs->procedures[i].min.secs=0;
- rs->procedures[i].min.nsecs=0;
- rs->procedures[i].max.secs=0;
- rs->procedures[i].max.nsecs=0;
- rs->procedures[i].tot.secs=0;
- rs->procedures[i].tot.nsecs=0;
+ rs->num_procedures = rpc_max_proc+1;
+ rs->procedures = g_new(rpc_procedure_t, rs->num_procedures+1);
+ for (i=0; i<rs->num_procedures; i++) {
+ rs->procedures[i].proc = rpc_proc_name(program, version, i);
+ rs->procedures[i].num = 0;
+ rs->procedures[i].min.secs = 0;
+ rs->procedures[i].min.nsecs = 0;
+ rs->procedures[i].max.secs = 0;
+ rs->procedures[i].max.nsecs = 0;
+ rs->procedures[i].tot.secs = 0;
+ rs->procedures[i].tot.nsecs = 0;
}
/* It is possible to create a filter and attach it to the callbacks. Then the
@@ -328,15 +328,15 @@ rpcstat_init(const char *opt_arg, void* userdata _U_)
* (Perhaps the user only wants the stats for nis+ traffic for certain objects?)
*/
- error_string=register_tap_listener("rpc", rs, filter, 0, rpcstat_reset, rpcstat_packet, rpcstat_draw);
- if(error_string){
+ error_string = register_tap_listener("rpc", rs, filter, 0, rpcstat_reset, rpcstat_packet, rpcstat_draw);
+ if (error_string) {
/* error, we failed to attach to the tap. clean up */
g_free(rs->procedures);
g_free(rs->filter);
g_free(rs);
fprintf(stderr, "tshark: Couldn't register rpc,srt tap: %s\n",
- error_string->str);
+ error_string->str);
g_string_free(error_string, TRUE);
exit(1);
}
@@ -346,6 +346,18 @@ rpcstat_init(const char *opt_arg, void* userdata _U_)
void
register_tap_listener_rpcstat(void)
{
- register_stat_cmd_arg("rpc,srt,", rpcstat_init,NULL);
+ register_stat_cmd_arg("rpc,srt,", rpcstat_init, NULL);
}
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ *
+ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
+ * :indentSize=8:tabSize=8:noTabs=false:
+ */