From Didier Gautheron:
[obnox/wireshark/wip.git] / tap-rpcstat.c
index cb60c243e3466aa24c036ff38eebfc9f7f0a370c..1f43ad74a7860465493d17d5700757e5823530be 100644 (file)
@@ -3,8 +3,8 @@
  *
  * $Id$
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
  * Copyright 1998 Gerald Combs
  * 
  * This program is free software; you can redistribute it and/or
@@ -22,8 +22,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-/* This module provides rpc call/reply RTT statistics to tethereal.
- * It is only used by tethereal and not ethereal
+/* This module provides rpc call/reply RTT statistics to tshark.
+ * It is only used by tshark and not wireshark
  *
  * It serves as an example on how to use the tap api.
  */
@@ -66,11 +66,11 @@ typedef struct _rpcstat_t {
 
 
 
-/* This callback is never used by tethereal but it is here for completeness.
+/* This callback is never used by tshark but it is here for completeness.
  * When registering below, we could just have left this function as NULL.
  *
- * When used by ethereal, this function will be called whenever we would need
- * to reset all state. Such as when ethereal opens a new file, when it
+ * When used by wireshark, this function will be called whenever we would need
+ * to reset all state. Such as when wireshark opens a new file, when it
  * starts a new capture, when it rescans the packetlist after some prefs have
  * changed etc.
  * So if your aplication has some state it needs to clean up in those
@@ -102,7 +102,7 @@ rpcstat_reset(void *prs)
  * later.
  *
  * This function should be as lightweight as possible since it executes together
- * with the normal ethereal dissectors. Try to push as much processing as
+ * with the normal wireshark dissectors. Try to push as much processing as
  * possible into (*draw) instead since that function executes asynchronously
  * and does not affect the main threads performance.
  *
@@ -186,12 +186,12 @@ rpcstat_packet(void *prs, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
        return 1;
 }
 
-/* This callback is used when tethereal wants us to draw/update our
- * data to the output device. Since this is tethereal only output is
+/* This callback is used when tshark wants us to draw/update our
+ * data to the output device. Since this is tshark only output is
  * stdout.
- * Tethereal will only call this callback once, which is when tethereal has
+ * TShark will only call this callback once, which is when tshark has
  * finished reading all packets and exists.
- * If used with ethereal this may be called any time, perhaps once every 3 
+ * If used with wireshark this may be called any time, perhaps once every 3 
  * seconds or so.
  * This function may even be called in parallell with (*reset) or (*draw)
  * so make sure there are no races. The data in the rpcstat_t can thus change
@@ -202,11 +202,7 @@ rpcstat_draw(void *prs)
 {
        rpcstat_t *rs=prs;
        guint32 i;
-#ifdef G_HAVE_UINT64
        guint64 td;
-#else
-       guint32 td;
-#endif
        printf("\n");
        printf("===================================================================\n");
        printf("%s Version %d RTT Statistics:\n", rs->prog, rs->version);
@@ -214,8 +210,7 @@ rpcstat_draw(void *prs)
        printf("Procedure        Calls   Min RTT   Max RTT   Avg RTT\n");
        for(i=0;i<rs->num_procedures;i++){
                /* scale it to units of 10us.*/
-               /* for long captures with a large tot time, this can overflow on 32bit */
-               td=(int)rs->procedures[i].tot.secs;
+               td=rs->procedures[i].tot.secs;
                td=td*100000+(int)rs->procedures[i].tot.nsecs/10000;
                if(rs->procedures[i].num){
                        td/=rs->procedures[i].num;
@@ -223,7 +218,7 @@ rpcstat_draw(void *prs)
                        td=0;
                }
 
-               printf("%-15s %6d %3d.%05d %3d.%05d %3d.%05d\n",
+               printf("%-15s %6d %3d.%05d %3d.%05d %3" G_GINT64_MODIFIER "u.%05" G_GINT64_MODIFIER "u\n",
                        rs->procedures[i].proc,
                        rs->procedures[i].num,
                        (int)rs->procedures[i].min.secs,rs->procedures[i].min.nsecs/10000,
@@ -268,7 +263,7 @@ rpcstat_find_procs(gpointer *key, gpointer *value _U_, gpointer *user_data _U_)
 /* When called, this function will create a new instance of rpcstat.
  * program and version are whick onc-rpc program/version we want to
  * collect statistics for.
- * This function is called from tethereal when it parses the -z rpc, arguments
+ * This function is called from tshark when it parses the -z rpc, arguments
  * and it creates a new instance to store statistics in and registers this
  * new instance for the rpc tap.
  */
@@ -289,7 +284,7 @@ rpcstat_init(const char *optarg, void* userdata _U_)
                        filter=NULL;
                }
        } else {
-               fprintf(stderr, "tethereal: invalid \"-z rpc,rtt,<program>,<version>[,<filter>]\" argument\n");
+               fprintf(stderr, "tshark: invalid \"-z rpc,rtt,<program>,<version>[,<filter>]\" argument\n");
                exit(1);
        }
 
@@ -298,8 +293,7 @@ rpcstat_init(const char *optarg, void* userdata _U_)
        rs->program=program;
        rs->version=version;
        if(filter){
-               rs->filter=g_malloc(strlen(filter)+1);
-               strcpy(rs->filter, filter);
+               rs->filter=g_strdup(filter);
        } else {
                rs->filter=NULL;
        }
@@ -309,8 +303,8 @@ rpcstat_init(const char *optarg, void* userdata _U_)
        rpc_max_proc=-1;
        g_hash_table_foreach(rpc_procs, (GHFunc)rpcstat_find_procs, NULL);
        if(rpc_min_proc==-1){
-               fprintf(stderr,"tethereal: Invalid -z rpc,rrt,%d,%d\n",rpc_program,rpc_version);
-               fprintf(stderr,"   Program:%d version:%d isn't supported by tethereal.\n", rpc_program, rpc_version);
+               fprintf(stderr,"tshark: Invalid -z rpc,rrt,%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);
        }
 
@@ -338,14 +332,14 @@ rpcstat_init(const char *optarg, void* userdata _U_)
  *
  */
 
-       error_string=register_tap_listener("rpc", rs, filter, rpcstat_reset, rpcstat_packet, rpcstat_draw);
+       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, "tethereal: Couldn't register rpc,rtt tap: %s\n",
+               fprintf(stderr, "tshark: Couldn't register rpc,rtt tap: %s\n",
                    error_string->str);
                g_string_free(error_string, TRUE);
                exit(1);