if Accept fails, raise SIGINT to stop

pull/3/head
Tom Early 2 years ago
parent 23b76d3e95
commit 3ee6f519f9

@ -18,6 +18,7 @@
#include <unistd.h> #include <unistd.h>
#include <thread> #include <thread>
#include <chrono> #include <chrono>
#include <csignal>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/select.h> #include <sys/select.h>
@ -433,21 +434,19 @@ bool CTCClient::Connect(char module)
return false; return false;
} }
bool CTCClient::ReConnect() void CTCClient::ReConnect()
{ {
bool rv = false;
for (char m : m_Modules) for (char m : m_Modules)
{ {
if (-1 == GetFD(m)) if (0 > GetFD(m))
{ {
std::cout << "Reconnecting module " << m << "..." << std::endl; std::cout << "Reconnecting module " << m << "..." << std::endl;
if (Connect(m)) if (Connect(m))
{ {
rv = true; raise(SIGINT);
} }
} }
} }
return rv;
} }
void CTCClient::Receive(std::queue<std::unique_ptr<STCPacket>> &queue, int ms) void CTCClient::Receive(std::queue<std::unique_ptr<STCPacket>> &queue, int ms)

@ -73,7 +73,7 @@ public:
~CTCClient() {} ~CTCClient() {}
bool Open(const std::string &address, const std::string &modules, uint16_t port); bool Open(const std::string &address, const std::string &modules, uint16_t port);
void Receive(std::queue<std::unique_ptr<STCPacket>> &queue, int ms); void Receive(std::queue<std::unique_ptr<STCPacket>> &queue, int ms);
bool ReConnect(); void ReConnect();
private: private:
std::string m_Address; std::string m_Address;

Loading…
Cancel
Save

Powered by TurnKey Linux.