Note realtick's invalidity for ETH_CAPTYPE_OTHERPOD in the comment for
[obnox/wireshark/wip.git] / tap-mgcpstat.c
index bd96b07468b11041764d341fe247edaf854d66f3..f16398311503fdaec8c9f2e776fb5eeecf772e64 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
@@ -35,6 +35,7 @@
 #include <string.h>
 #include "epan/packet_info.h"
 #include <epan/tap.h>
+#include <epan/stat_cmd_args.h>
 #include "epan/value_string.h"
 #include "register.h"
 #include "plugins/mgcp/packet-mgcp.h"
@@ -100,12 +101,7 @@ mgcpstat_packet(void *pms, packet_info *pinfo, epan_dissect_t *edt _U_, const vo
                else {
                        ms->open_req_num--;
                        /* calculate time delta between request and response */
-                       delta.secs=pinfo->fd->abs_secs-mi->req_time.secs;
-                       delta.nsecs=pinfo->fd->abs_usecs*1000-mi->req_time.nsecs;
-                       if(delta.nsecs<0){
-                               delta.nsecs+=1000000000;
-                               delta.secs--;
-                       }
+                       nstime_delta(&delta, &pinfo->fd->abs_ts, &mi->req_time);
 
                        time_stat_update(&(ms->rtd[0]),&delta, pinfo);
 
@@ -181,18 +177,17 @@ mgcpstat_draw(void *pms)
 
 
 static void
-mgcpstat_init(char *optarg)
+mgcpstat_init(const char *optarg, void* userdata _U_)
 {
        mgcpstat_t *ms;
        int i;
-       char *filter=NULL;
+       const char *filter=NULL;
        GString *error_string;
 
        if(!strncmp(optarg,"mgcp,rtd,",9)){
                filter=optarg+9;
        } else {
-               filter=g_malloc(1);
-               *filter='\0';
+               filter="";
        }
 
        ms=g_malloc(sizeof(mgcpstat_t));
@@ -222,7 +217,7 @@ mgcpstat_init(char *optarg)
                g_free(ms->filter);
                g_free(ms);
 
-               fprintf(stderr, "tethereal: Couldn't register mgcp,rtd tap: %s\n",
+               fprintf(stderr, "tshark: Couldn't register mgcp,rtd tap: %s\n",
                    error_string->str);
                g_string_free(error_string, TRUE);
                exit(1);
@@ -235,7 +230,7 @@ register_tap_listener_mgcpstat(void)
 {
        /* We don't register this tap, if we don't have the mgcp plugin loaded.*/
        if (find_tap_id("mgcp")) {
-               register_tap_listener_cmd_arg("mgcp,rtd", mgcpstat_init);
+               register_stat_cmd_arg("mgcp,rtd", mgcpstat_init, NULL);
        }
 }