aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rtsp.c')
-rw-r--r--epan/dissectors/packet-rtsp.c41
1 files changed, 12 insertions, 29 deletions
diff --git a/epan/dissectors/packet-rtsp.c b/epan/dissectors/packet-rtsp.c
index 255db652ad..063251d193 100644
--- a/epan/dissectors/packet-rtsp.c
+++ b/epan/dissectors/packet-rtsp.c
@@ -253,8 +253,6 @@ static gboolean rtsp_desegment_body = TRUE;
*/
#define RTSP_TCP_PORT_RANGE "554,8554,7236"
-static range_t *global_rtsp_tcp_port_range = NULL;
-
/*
* Takes an array of bytes, assumed to contain a null-terminated
* string, as an argument, and returns the length of the string -
@@ -1467,8 +1465,7 @@ proto_register_rtsp(void)
module_t *rtsp_module;
expert_module_t *expert_rtsp;
- proto_rtsp = proto_register_protocol("Real Time Streaming Protocol",
- "RTSP", "rtsp");
+ proto_rtsp = proto_register_protocol("Real Time Streaming Protocol", "RTSP", "rtsp");
proto_register_field_array(proto_rtsp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -1481,15 +1478,10 @@ proto_register_rtsp(void)
/* Register our configuration options, particularly our ports */
- rtsp_module = prefs_register_protocol(proto_rtsp, proto_reg_handoff_rtsp);
+ rtsp_module = prefs_register_protocol(proto_rtsp, NULL);
prefs_register_obsolete_preference(rtsp_module, "tcp.alternate_port");
- prefs_register_obsolete_preference(rtsp_module, "tcp.port");
- range_convert_str(&global_rtsp_tcp_port_range, RTSP_TCP_PORT_RANGE, 65535);
- prefs_register_range_preference(rtsp_module, "tcp.port_range", "RTSP TCP Ports",
- "RTSP TCP Ports range",
- &global_rtsp_tcp_port_range, 65535);
prefs_register_bool_preference(rtsp_module, "desegment_headers",
"Reassemble RTSP headers spanning multiple TCP segments",
"Whether the RTSP dissector should reassemble headers "
@@ -1520,26 +1512,17 @@ proto_register_rtsp(void)
void
proto_reg_handoff_rtsp(void)
{
- static dissector_handle_t rtsp_handle;
- static gboolean rtsp_prefs_initialized = FALSE;
- static range_t *rtsp_tcp_port_range = NULL;
-
- if (!rtsp_prefs_initialized) {
- rtsp_handle = find_dissector("rtsp");
- rtp_handle = find_dissector("rtp");
- rtcp_handle = find_dissector("rtcp");
- rdt_handle = find_dissector("rdt");
- media_type_dissector_table = find_dissector_table("media_type");
- voip_tap = find_tap_id("voip");
- rtsp_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range("tcp.port", rtsp_tcp_port_range, rtsp_handle);
- g_free(rtsp_tcp_port_range);
- }
+ dissector_handle_t rtsp_handle;
+
+ rtsp_handle = find_dissector("rtsp");
+ rtp_handle = find_dissector_add_dependency("rtp", proto_rtsp);
+ rtcp_handle = find_dissector_add_dependency("rtcp", proto_rtsp);
+ rdt_handle = find_dissector_add_dependency("rdt", proto_rtsp);
+ media_type_dissector_table = find_dissector_table("media_type");
+ voip_tap = find_tap_id("voip");
+
/* Set our port number for future use */
- rtsp_tcp_port_range = range_copy(global_rtsp_tcp_port_range);
- dissector_add_uint_range("tcp.port", rtsp_tcp_port_range, rtsp_handle);
+ dissector_add_uint_range_with_preference("tcp.port", RTSP_TCP_PORT_RANGE, rtsp_handle);
/* XXX: Do the following only once ?? */
stats_tree_register("rtsp","rtsp","RTSP/Packet Counter", 0, rtsp_stats_tree_packet, rtsp_stats_tree_init, NULL );