aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-opa-fe.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-opa-fe.c')
-rw-r--r--epan/dissectors/packet-opa-fe.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/epan/dissectors/packet-opa-fe.c b/epan/dissectors/packet-opa-fe.c
index 06922cd4d4..11ca863f81 100644
--- a/epan/dissectors/packet-opa-fe.c
+++ b/epan/dissectors/packet-opa-fe.c
@@ -31,7 +31,7 @@
void proto_reg_handoff_opa_fe(void);
void proto_register_opa_fe(void);
-#define OPA_FE_TCP_RANGE "3245-3248"
+#define OPA_FE_TCP_RANGE "3245-3248" /* Not IANA registered */
#define OPA_FE_SSL_RANGE "3249-3252"
/* Wireshark ID */
@@ -51,10 +51,8 @@ static gint hf_opa_fe_Reserved64 = -1;
static dissector_handle_t opa_fe_handle;
static dissector_handle_t opa_mad_handle;
-static range_t *global_fe_tcp_range = NULL;
static range_t *global_fe_ssl_range = NULL;
-static range_t *fe_tcp_range = NULL;
static range_t *fe_ssl_range = NULL;
static int dissect_opa_fe(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -142,26 +140,24 @@ void proto_register_opa_fe(void)
prefs_register_range_preference(opa_fe_module, "ssl.port", "SSL/TLS Ports",
"SSL/TLS Ports range",
&global_fe_ssl_range, 65535);
- range_convert_str(&global_fe_tcp_range, OPA_FE_TCP_RANGE, 65535);
- fe_tcp_range = range_empty();
- prefs_register_range_preference(opa_fe_module, "tcp.port", "TCP Ports",
- "TCP Ports range",
- &global_fe_tcp_range, 65535);
}
void proto_reg_handoff_opa_fe(void)
{
- opa_mad_handle = find_dissector("opa.mad");
+ static gboolean initialized = FALSE;
+
+ if (!initialized)
+ {
+ opa_mad_handle = find_dissector("opa.mad");
+ dissector_add_uint_range_with_preference("tcp.port", OPA_FE_TCP_RANGE, opa_fe_handle);
+ initialized = TRUE;
+ }
range_foreach(fe_ssl_range, range_delete_fe_ssl_callback);
g_free(fe_ssl_range);
fe_ssl_range = range_copy(global_fe_ssl_range);
range_foreach(fe_ssl_range, range_add_fe_ssl_callback);
- dissector_delete_uint_range("tcp.port", fe_tcp_range, opa_fe_handle);
- g_free(fe_tcp_range);
- fe_tcp_range = range_copy(global_fe_tcp_range);
- dissector_add_uint_range("tcp.port", fe_tcp_range, opa_fe_handle);
}
/*