summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-08-01 15:36:24 +0000
committerHenri Herscher <henri@oreka.org>2006-08-01 15:36:24 +0000
commit40861fb04d81f7fda859332aca58db4a6f537b4d (patch)
treec8eb451c325140353faa254537e5e674bc8c626a
parentb6a437bf54870d9cbb5151b5cc5ae27106aa5dda (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.cpp11
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