close fd if there is a client receive error

pull/3/head
Tom Early 2 years ago
parent 38e3882441
commit a726c9ee22

@ -21,7 +21,7 @@
#include "DVFramePacket.h"
// default constructor
CDvFramePacket::CDvFramePacket()
CDvFramePacket::CDvFramePacket() : CPacket()
{
memset(m_TCPack.dstar, 0, sizeof(m_TCPack.dstar));
memset(m_uiDvData, 0, sizeof(m_uiDvData));

@ -139,7 +139,7 @@ bool CTCSocket::receive(int fd, STCPacket *packet)
if (0 == n)
{
std::cerr << "recv(): Module '" << GetMod(fd) << "' has been closed on the server" << std::endl;
std::cerr << "recv(): Module '" << GetMod(fd) << "' has been closed from the other side" << std::endl;
Close(fd);
return true;
}
@ -435,6 +435,7 @@ bool CTCClient::Receive(std::queue<std::unique_ptr<STCPacket>> &queue, int ms)
if (receive(pfd.fd, p_tcpack.get()))
{
p_tcpack.reset();
Close(pfd.fd);
}
else
{

Loading…
Cancel
Save

Powered by TurnKey Linux.