[Opalvoip-svn] SF.net SVN: opalvoip:[32354] opal/trunk/src/rtp
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2014-07-14 13:04:58
|
Revision: 32354 http://sourceforge.net/p/opalvoip/code/32354 Author: rjongbloed Date: 2014-07-14 13:04:55 +0000 (Mon, 14 Jul 2014) Log Message: ----------- Fix OpalRTPSession::WriteData() so rewriteHeader flag of false also means do not encrypt again. Modified Paths: -------------- opal/trunk/src/rtp/rtp_session.cxx opal/trunk/src/rtp/srtp_session.cxx Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2014-07-14 08:59:09 UTC (rev 32353) +++ opal/trunk/src/rtp/rtp_session.cxx 2014-07-14 13:04:55 UTC (rev 32354) @@ -438,7 +438,7 @@ else { m_lastSequenceNumber += (RTP_SequenceNumber)(frame.GetDiscontinuity() + 1); PTRACE_IF(6, frame.GetDiscontinuity() > 0, &m_session, - m_session << "ave discontinuity: " << frame.GetDiscontinuity() << ", sn=" << m_lastSequenceNumber); + m_session << "have discontinuity: " << frame.GetDiscontinuity() << ", sn=" << m_lastSequenceNumber); } frame.SetSequenceNumber(m_lastSequenceNumber); @@ -967,7 +967,7 @@ status = syncSource->OnSendData(frame, rewriteHeader); #if OPAL_RTP_FEC - if (m_redundencyPayloadType != RTP_DataFrame::IllegalPayloadType) + if (m_redundencyPayloadType != RTP_DataFrame::IllegalPayloadType && m_redundencyPayloadType != frame.GetPayloadType()) status = syncSource->OnSendRedundantFrame(frame); #endif Modified: opal/trunk/src/rtp/srtp_session.cxx =================================================================== --- opal/trunk/src/rtp/srtp_session.cxx 2014-07-14 08:59:09 UTC (rev 32353) +++ opal/trunk/src/rtp/srtp_session.cxx 2014-07-14 13:04:55 UTC (rev 32354) @@ -560,10 +560,13 @@ if (status != e_ProcessPacket) return status; + if (!rewriteHeader) + return e_ProcessPacket; + if (!IsCryptoSecured(e_Sender)) { PTRACE_IF(3, (m_traceUnsecuredCount[e_Data][e_Sender]++ % 100) == 0, *this << "keys not set, cannot protect data: " << m_traceUnsecuredCount[e_Data][e_Sender]); - return OpalRTPSession::e_IgnorePacket; + return e_IgnorePacket; } frame.MakeUnique(); @@ -571,7 +574,7 @@ int len = frame.GetPacketSize(); frame.SetMinSize(len + SRTP_MAX_TRAILER_LEN); if (!CHECK_ERROR(srtp_protect,(m_context, frame.GetPointer(), &len), frame.GetSyncSource())) - return OpalRTPSession::e_AbortTransport; + return e_AbortTransport; PTRACE(m_traceLevel[e_Data][e_Sender], *this << "protected RTP packet: " << frame.GetPacketSize() << "->" << len << " SSRC=" << frame.GetSyncSource()); @@ -580,7 +583,7 @@ #endif frame.SetPayloadSize(len - frame.GetHeaderSize()); - return OpalRTPSession::e_ProcessPacket; + return e_ProcessPacket; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |