Commit 0b8286f5 authored by Pavel Vainerman's avatar Pavel Vainerman

(ModbusTCPSession): добавил вылавливание исключения CommFailed (закрытие соединения)

parent faee9b3c
......@@ -289,6 +289,8 @@ size_t ModbusTCPSession::getNextData( unsigned char* buf, int len )
{
ssize_t res = ModbusTCPCore::getDataFD( sock->getSocket(), qrecv, buf, len );
try
{
if( res > 0 )
return res;
......@@ -299,6 +301,11 @@ size_t ModbusTCPSession::getNextData( unsigned char* buf, int len )
return 0;
}
}
catch( UniSetTypes::CommFailed )
{
}
if( !cancelled && dlog->is_info() )
dlog->info() << peername << "(getNextData): client disconnected" << endl;
......@@ -356,6 +363,8 @@ mbErrCode ModbusTCPSession::tcp_processing( ModbusRTU::ADUHeader& mhead )
pt.setTiming(10);
try
{
do
{
len = ModbusTCPCore::readDataFD( sock->getSocket(), qrecv, mhead.len );
......@@ -364,6 +373,11 @@ mbErrCode ModbusTCPSession::tcp_processing( ModbusRTU::ADUHeader& mhead )
io.loop.iteration();
}
while( len == 0 && !pt.checkTime() );
}
catch( UniSetTypes::CommFailed )
{
}
if( len < mhead.len )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment