Martin et al,
That's a good point. I can make something for that.
It would make the preference default to the current behaviour, i.e.
create conversation for RTP on port X and RTCP on port X+1 and
let the preference switch off/on RTCP.
Note that my patch to disable RTP/RTCP creating conversations
when disabled should still go in IMHO.
(When the resp. protocols are disabled, they shouldn't claim frames
in a conversation, preventing other dissectors to decode).
Ruud
Martin Mathieson wrote:
Would it make sense to (also?) add a preference setting to the SDP dissector
indicating whether or not RTCP conversations should be created? H.245 and
RTSP specify the RTCP port explicity so wouldn't need such an option.
Disabling RTCP altogether seems maybe a drastic way to achieve what you
want.
Martin
----- Original Message -----
From: "Ruud Linders" <moztest@xxxxxxxxxxxxxxxxxxxx>
To: <ethereal-dev@xxxxxxxxxxxx>
Sent: 03 July 2004 18:04
Subject: [Ethereal-dev] Patch to prevent rtp/rtcp to register
conversationwhen disabled
Here is a patch (against nightly build 2004-07-02) to prevent both
RTCP and RTP to create conversations when the respective protocols
are disabled.
It solves for me the problem that in packet-sdp.c the function
rtp_add_address(... srcport ...) is blindly followed by
rtCp_add_address(..srcport+1...).
Since the SDP decoder can't now if RTCP is present or not, that
seems to be the only way to create a conversation for RTCP.
(IFF RTCP is present, it IS at the RTP port + 1)
However, in my trace there were no RTCP but instead RTP packets
at the srcport+1 which were subsequently decoded wrongly as RTCP.
Regards,
Ruud Linders
----------------------------------------------------------------------------
----
--- packet-rtcp.c.20040702 2004-06-30 23:08:58.000000000 +0200
+++ packet-rtcp.c 2004-07-03 18:38:57.000000000 +0200
@@ -248,6 +248,13 @@
struct _rtcp_conversation_info *p_conv_data = NULL;
/*
+ * If protocol isn't enabled, we shouldn't create a conversation
+ */
+ if (!proto_is_protocol_enabled(find_protocol_by_id(proto_rtcp))) {
+ return;
+ }
+
+ /*
* If this isn't the first time this packet has been processed,
* we've already done this work, so we don't need to do it
* again.
--- packet-rtp.c.20040702 2004-07-01 08:59:38.000000000 +0200
+++ packet-rtp.c 2004-07-03 18:40:31.000000000 +0200
@@ -203,6 +203,13 @@
struct _rtp_conversation_info *p_conv_data = NULL;
/*
+ * If protocol isn't enabled, we shouldn't create a conversation
+ */
+ if (!proto_is_protocol_enabled(find_protocol_by_id(proto_rtp))) {
+ return;
+ }
+
+ /*
* If this isn't the first time this packet has been processed,
* we've already done this work, so we don't need to do it
* again.
----------------------------------------------------------------------------
----
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev