#include <epan/tap.h>
#include <epan/stat_cmd_args.h>
#include "epan/value_string.h"
-#include "register.h"
#include "epan/gcp.h"
#include "timestats.h"
#include <epan/prefs-int.h>
{
megacostat_t *ms;
int i;
- const char *filter=NULL;
GString *error_string;
pref_t *megaco_ctx_track,*h248_ctx_track;
-
+
megaco_ctx_track = prefs_find_preference(prefs_find_module("megaco"),"ctx_info");
h248_ctx_track = prefs_find_preference(prefs_find_module("h248"),"ctx_info");
+
+ if (!megaco_ctx_track || !h248_ctx_track) {
+ /* No such preferences */
+ return;
+ }
+
if (!*megaco_ctx_track->varp.boolp || !*h248_ctx_track->varp.boolp) {
printf("Track Context option at Protocols -> MEGACO and Protocols -> H248 preferences\n");
- printf("has to be set to true to enable measurement of service reponse times.\n");
+ printf("has to be set to true to enable measurement of service response times.\n");
exit(1);
}
-
+
+ ms=g_malloc(sizeof(megacostat_t));
if(!strncmp(optarg,"megaco,rtd,",11)){
- filter=optarg+11;
+ ms->filter=g_strdup(optarg+11);
} else {
- filter="";
+ ms->filter=NULL;
}
- ms=g_malloc(sizeof(megacostat_t));
- ms->filter=g_strdup(filter);
-
for(i=0;i<NUM_TIMESTATS;i++) {
ms->rtd[i].num=0;
ms->rtd[i].min_num=0;
ms->req_dup_num=0;
ms->rsp_dup_num=0;
- error_string=register_tap_listener("megaco", ms, filter, NULL, megacostat_packet, megacostat_draw);
+ error_string=register_tap_listener("megaco", ms, ms->filter, 0, NULL, megacostat_packet, megacostat_draw);
if(error_string){
/* error, we failed to attach to the tap. clean up */
g_free(ms->filter);