From 19d0cf70c6a50fe522ed7157f0ed44999a2ea611 Mon Sep 17 00:00:00 2001 From: paulc Date: Tue, 17 May 2011 15:39:08 +0000 Subject: [PATCH] Close and reconnect the SIGTRAN stream socket whenever an error or EOF occurs. git-svn-id: http://yate.null.ro/svn/yate/trunk@4388 acf43c95-373e-0410-b603-e72c3f656dc1 --- modules/server/sigtransport.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/server/sigtransport.cpp b/modules/server/sigtransport.cpp index a9d746f6..cd1bb3c1 100644 --- a/modules/server/sigtransport.cpp +++ b/modules/server/sigtransport.cpp @@ -30,8 +30,8 @@ #define MAX_BUF_SIZE 48500 -#define CONN_RETRY_MIN 100000 -#define CONN_RETRY_MAX 6000000 +#define CONN_RETRY_MIN 250000 +#define CONN_RETRY_MAX 60000000 using namespace TelEngine; namespace { // anonymous @@ -962,8 +962,11 @@ bool StreamReader::sendBuffer(int streamId) DDebug(m_transport,DebugAll,"Select error detected. %s",strerror(errno)); return false; } - if (error) + if (error) { + if (m_socket->updateError() && !m_socket->canRetry()) + connectionDown(); return false; + } if (!sendOk) return true; int len = 0; @@ -1043,8 +1046,7 @@ bool StreamReader::readData() len = m_socket->recv((void*)buf,m_headerLen); } if (len == 0) { - if (!m_transport->supportEvents()) - connectionDown(); + connectionDown(); return false; } if (len < 0) {