diff options
author | Henri Herscher <henri@oreka.org> | 2006-08-01 15:36:24 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2006-08-01 15:36:24 +0000 |
commit | 40861fb04d81f7fda859332aca58db4a6f537b4d (patch) | |
tree | c8eb451c325140353faa254537e5e674bc8c626a | |
parent | b6a437bf54870d9cbb5151b5cc5ae27106aa5dda (diff) |
Applying changeset 309 from 0.5 to trunk:
Skinny sessions do not accept RPT packets whithout either source or destination IP address matching the IP endpoint.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@326 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index a37ccbb..b51e6f8 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -309,6 +309,16 @@ bool RtpSession::AddRtpPacket(RtpPacketInfoRef& rtpPacket) unsigned char channel = 0; unsigned int correctedRtpTimestamp = rtpPacket->m_timestamp; + + // Dismiss packets that should not be part of a Skinny session + if(m_protocol == ProtSkinny) + { + if( (unsigned int)rtpPacket->m_sourceIp.s_addr != (unsigned int)m_endPointIp.s_addr && + (unsigned int)rtpPacket->m_destIp.s_addr != (unsigned int)m_endPointIp.s_addr ) + { + return true; // dismiss packet that has neither source or destination matching the endpoint. + } + } if(m_lastRtpPacket.get() == NULL) { @@ -376,6 +386,7 @@ bool RtpSession::AddRtpPacket(RtpPacketInfoRef& rtpPacket) channel = 2; } } + m_numRtpPackets++; // Compute the corrective delta |