diff --git a/tservice.cpp b/tservice.cpp index ecdbe7a..71b563a 100644 --- a/tservice.cpp +++ b/tservice.cpp @@ -110,14 +110,21 @@ std::expected TunService::Listen(void) { void TunService::Handle(int sock) { std::string laddr, raddr; + bool netFound = false; for (auto& net: tunnets) { if (!net.used) { laddr = net.laddr; raddr = net.raddr; net.used = true; + netFound = true; break; } } + if (!netFound) { + uxlogger.Error("Not found free tunnnel network"); + close(sock); + return; + } uxlogger.Debug("Start socker handler"); SocketHandler handler; handler.Handle(sock, laddr, raddr, localnets);