void register_service_response_tables(gpointer data, gpointer) { register_srt_t *srt = (register_srt_t*)data; const char* short_name = proto_get_protocol_short_name(find_protocol_by_id(get_srt_proto_id(srt))); const char *cfg_abbr = srt_table_get_tap_string(srt); tpdCreator tpd_creator = ServiceResponseTimeDialog::createSrtDialog; /* XXX - These dissectors haven't been converted over to due to an "interactive input dialog" for their tap data. Let those specific dialogs register for themselves */ if (strcmp(short_name, "DCERPC") == 0) { short_name = "DCE-RPC"; tpd_creator = RpcServiceResponseTimeDialog::createDceRpcSrtDialog; } else if (strcmp(short_name, "RPC") == 0) { short_name = "ONC-RPC"; tpd_creator = RpcServiceResponseTimeDialog::createOncRpcSrtDialog; } cfg_str_to_srt_[cfg_abbr] = srt; TapParameterDialog::registerDialog( short_name, cfg_abbr, REGISTER_STAT_GROUP_RESPONSE_TIME, srt_init, tpd_creator); }
static void dissector_srt_init(const char *opt_arg, void* userdata) { register_srt_t *srt = (register_srt_t*)userdata; const char *filter=NULL; char* err; srt_table_get_filter(srt, opt_arg, &filter, &err); if (err != NULL) { gchar* cmd_str = srt_table_get_tap_string(srt); cmdarg_err("invalid \"-z %s,%s\" argument", cmd_str, err); g_free(cmd_str); g_free(err); exit(1); } /* Need to create the SRT array now */ global_srt_array = g_array_new(FALSE, TRUE, sizeof(srt_stat_table*)); srt_table_dissector_init(srt, global_srt_array); init_srt_tables(srt, filter); }