diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index 659cb9f9bc5ed567195bfe101b8619a4d838e5fe..8d24555aee72885eb2586616c74e5aa7c60bce7e 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -569,7 +569,8 @@ DhtRunner::startNetwork(const SockAddr sin4, const SockAddr sin6) if(s6 >= 0) FD_SET(s6, &readfds); - int rc = select(s4 > s6 ? s4 + 1 : s6 + 1, &readfds, nullptr, nullptr, nullptr); + int selectFd = std::max({s4, s6, stop_readfd}) + 1; + int rc = select(selectFd, &readfds, nullptr, nullptr, nullptr); if(rc < 0) { if(errno != EINTR) { perror("select");