From a726c9ee22c7b0c1300d488532b2a3f08443025a Mon Sep 17 00:00:00 2001 From: Tom Early Date: Mon, 20 May 2024 10:56:53 -0700 Subject: [PATCH] close fd if there is a client receive error --- reflector/DVFramePacket.cpp | 2 +- reflector/TCSocket.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/reflector/DVFramePacket.cpp b/reflector/DVFramePacket.cpp index d00c00c..fa1ff78 100644 --- a/reflector/DVFramePacket.cpp +++ b/reflector/DVFramePacket.cpp @@ -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)); diff --git a/reflector/TCSocket.cpp b/reflector/TCSocket.cpp index 0c1bf75..f8a8260 100644 --- a/reflector/TCSocket.cpp +++ b/reflector/TCSocket.cpp @@ -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> &queue, int ms) if (receive(pfd.fd, p_tcpack.get())) { p_tcpack.reset(); + Close(pfd.fd); } else {