[Opalvoip-svn] SF.net SVN: opalvoip:[34342] opal/trunk/src
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2015-11-24 12:56:04
|
Revision: 34342 http://sourceforge.net/p/opalvoip/code/34342 Author: rjongbloed Date: 2015-11-24 12:56:01 +0000 (Tue, 24 Nov 2015) Log Message: ----------- More work around media timeout. Modified Paths: -------------- opal/trunk/src/opal/mediasession.cxx opal/trunk/src/rtp/rtp_session.cxx Modified: opal/trunk/src/opal/mediasession.cxx =================================================================== --- opal/trunk/src/opal/mediasession.cxx 2015-11-24 12:20:38 UTC (rev 34341) +++ opal/trunk/src/opal/mediasession.cxx 2015-11-24 12:56:01 UTC (rev 34342) @@ -678,8 +678,7 @@ else { switch (m_channel->GetErrorCode(PChannel::LastReadError)) { case PChannel::Unavailable: - if (!HandleUnavailableError()) - m_owner->InternalRxData(m_subchannel, PBYTEArray()); + HandleUnavailableError(); break; case PChannel::BufferTooSmall: @@ -719,7 +718,7 @@ { if (++m_consecutiveUnavailableErrors == 1) { PTRACE(2, m_owner, *m_owner << m_subchannel << " port on remote not ready: " << m_owner->GetRemoteAddress(m_subchannel)); - m_timeForUnavailableErrors = m_owner->m_maxNoTransmitTime; + m_timeForUnavailableErrors = m_channel->GetReadTimeout(); return true; } @@ -728,11 +727,12 @@ return true; } - if (m_consecutiveUnavailableErrors != 10) + if (m_consecutiveUnavailableErrors < 10) return true; PTRACE(2, m_owner, *m_owner << m_subchannel << ' ' << m_owner->m_maxNoTransmitTime << " seconds of transmit fails to " << m_owner->GetRemoteAddress(m_subchannel)); + Close(); return false; } Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2015-11-24 12:20:38 UTC (rev 34341) +++ opal/trunk/src/rtp/rtp_session.cxx 2015-11-24 12:56:01 UTC (rev 34342) @@ -2545,8 +2545,9 @@ void OpalRTPSession::CheckMediaFailed(SubChannels subchannel, Direction dir) { + PTRACE(4, *this << "media failed for " << subchannel << ' ' << dir); if (subchannel == e_Data && m_connection.OnMediaFailed(m_sessionId, dir == e_Receiver)) { - PTRACE(4, *this << "aborting transport, queuing close of media session."); + PTRACE(3, *this << "aborting transport, queuing close of media session."); m_connection.GetEndPoint().GetManager().QueueDecoupledEvent( new PSafeWorkNoArg<OpalRTPSession, bool>(this, &OpalRTPSession::Close)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |