#endif
#include <string.h>
+#include "epan/packet.h"
#include "epan/packet_info.h"
#include <epan/tap.h>
#include <epan/stat_cmd_args.h>
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
default:
return 0;
- break;
}
return 1;
printf("RAS-Messages:\n");
for(i=0;i<=RAS_MSG_TYPES;i++) {
if(hs->ras_msg[i]!=0) {
- printf(" %s : %u\n", val_to_str(i,RasMessage_vals,"unknown ras-messages "), hs->ras_msg[i]);
+ printf(" %s : %u\n", val_to_str(i,h225_RasMessage_vals,"unknown ras-messages "), hs->ras_msg[i]);
/* reason counter */
switch(i) {
case 2: /* GRJ */
case 5: /* ReleaseComplete */
for(j=0;j<=REL_CMP_REASONS;j++) {
if(hs->rel_cmp_reason[j]!=0) {
- printf(" %s : %u\n", val_to_str(j,ReleaseCompleteReason_vals,"unknown reason "), hs->rel_cmp_reason[j]);
+ printf(" %s : %u\n", val_to_str(j,h225_ReleaseCompleteReason_vals,"unknown reason "), hs->rel_cmp_reason[j]);
}
}
break;
h225counter_init(const char *optarg, void* userdata _U_)
{
h225counter_t *hs;
- const char *filter=NULL;
GString *error_string;
+ hs = g_malloc(sizeof(h225counter_t));
if(!strncmp(optarg,"h225,counter,",13)){
- filter=optarg+13;
+ hs->filter=g_strdup(optarg+13);
} else {
- filter="";
+ hs->filter=NULL;
}
- hs = g_malloc(sizeof(h225counter_t));
- hs->filter=g_malloc(strlen(filter)+1);
- strcpy(hs->filter, filter);
-
h225counter_reset(hs);
- error_string=register_tap_listener("h225", hs, filter, NULL, h225counter_packet, h225counter_draw);
+ error_string=register_tap_listener("h225", hs, hs->filter, 0, NULL, h225counter_packet, h225counter_draw);
if(error_string){
/* error, we failed to attach to the tap. clean up */
g_free(hs->filter);
g_free(hs);
- fprintf(stderr, "twireshark: 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);