From Stig Bjorlykke:
[obnox/wireshark/wip.git] / tap-h225counter.c
index 400c9f3a64d91cdb2bac5c081e01624006f80af0..c1421cb3e5cf3ce4e72bec215ea5b68041dad014 100644 (file)
@@ -1,11 +1,11 @@
 /* tap_h225counter.c
- * h225 message counter for ethereal
+ * h225 message counter for wireshark
  * Copyright 2003 Lars Roland
  *
- * $Id: tap-h225counter.c,v 1.3 2004/05/09 10:03:38 guy Exp $
+ * $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
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-/* With MSVC and a libethereal.dll this file needs to import some variables 
-   in a special way. Therefore _NEED_VAR_IMPORT_ is defined. */  
-#define _NEED_VAR_IMPORT_
-
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
 #endif
 
 #include <string.h>
+#include "epan/packet.h"
 #include "epan/packet_info.h"
-#include "tap.h"
+#include <epan/tap.h>
+#include <epan/stat_cmd_args.h>
 #include "epan/value_string.h"
 #include "register.h"
-#include "packet-h225.h"
+#include <epan/dissectors/packet-h225.h>
 
 /* following values represent the size of their valuestring arrays */
 
@@ -87,57 +85,18 @@ static void
 h225counter_reset(void *phs)
 {
        h225counter_t *hs=(h225counter_t *)phs;
-       int i;
+       char *save_filter = hs->filter;
 
-       for(i=0;i<=RAS_MSG_TYPES;i++) {
-               hs->ras_msg[i] = 0;
-       }
-       for(i=0;i<=CS_MSG_TYPES;i++) {
-               hs->cs_msg[i] = 0;
-       }
-       for(i=0;i<=GRJ_REASONS;i++) {
-               hs->grj_reason[i] = 0;
-       }
-       for(i=0;i<=RRJ_REASONS;i++) {
-               hs->rrj_reason[i] = 0;
-       }
-       for(i=0;i<=URQ_REASONS;i++) {
-               hs->urq_reason[i] = 0;
-       }
-       for(i=0;i<=URJ_REASONS;i++) {
-               hs->urj_reason[i] = 0;
-       }
-       for(i=0;i<=ARJ_REASONS;i++) {
-               hs->arj_reason[i] = 0;
-       }
-       for(i=0;i<=BRJ_REASONS;i++) {
-               hs->brj_reason[i] = 0;
-       }
-       for(i=0;i<=DRQ_REASONS;i++) {
-               hs->drq_reason[i] = 0;
-       }
-       for(i=0;i<=DRJ_REASONS;i++) {
-               hs->drj_reason[i] = 0;
-       }
-       for(i=0;i<=LRJ_REASONS;i++) {
-               hs->lrj_reason[i] = 0;
-       }
-       for(i=0;i<=IRQNAK_REASONS;i++) {
-               hs->irqnak_reason[i] = 0;
-       }
-       for(i=0;i<=REL_CMP_REASONS;i++) {
-               hs->rel_cmp_reason[i] = 0;
-       }
-       for(i=0;i<=FACILITY_REASONS;i++) {
-               hs->facility_reason[i] = 0;
-       }
+       memset(hs, 0, sizeof(h225counter_t));
+
+       hs->filter = save_filter;
 }
 
 static int
-h225counter_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, void *phi)
+h225counter_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *phi)
 {
        h225counter_t *hs=(h225counter_t *)phs;
-       h225_packet_info *pi=phi;
+       const h225_packet_info *pi=phi;
 
        switch (pi->msg_type) {
 
@@ -364,7 +323,7 @@ h225counter_draw(void *phs)
        printf("Call Signalling:\n");
        for(i=0;i<=CS_MSG_TYPES;i++) {
                if(hs->cs_msg[i]!=0) {
-                       printf("  %s : %u\n", val_to_str(i,h323_message_body_vals,"unknown cs-messages   "), hs->cs_msg[i]);
+                       printf("  %s : %u\n", val_to_str(i,T_h323_message_body_vals,"unknown cs-messages   "), hs->cs_msg[i]);
                        /* reason counter */
                        switch(i) {
                        case 5: /* ReleaseComplete */
@@ -391,17 +350,16 @@ h225counter_draw(void *phs)
 
 
 static void
-h225counter_init(char *optarg)
+h225counter_init(const char *optarg, void* userdata _U_)
 {
        h225counter_t *hs;
-       char *filter=NULL;
+       const char *filter=NULL;
        GString *error_string;
 
        if(!strncmp(optarg,"h225,counter,",13)){
                filter=optarg+13;
        } else {
-               filter=g_malloc(1);
-               *filter='\0';
+               filter="";
        }
 
        hs = g_malloc(sizeof(h225counter_t));
@@ -416,7 +374,7 @@ h225counter_init(char *optarg)
                g_free(hs->filter);
                g_free(hs);
 
-               fprintf(stderr, "tethereal: Couldn't register h225,counter tap: %s\n",
+               fprintf(stderr, "tshark: Couldn't register h225,counter tap: %s\n",
                    error_string->str);
                g_string_free(error_string, TRUE);
                exit(1);
@@ -427,5 +385,5 @@ h225counter_init(char *optarg)
 void
 register_tap_listener_h225counter(void)
 {
-       register_ethereal_tap("h225,counter", h225counter_init);
+       register_stat_cmd_arg("h225,counter", h225counter_init,NULL);
 }