diff --git a/src/base/socket.cc b/src/base/socket.cc index 0c8903084a..c39accd7e8 100644 --- a/src/base/socket.cc +++ b/src/base/socket.cc @@ -103,11 +103,14 @@ ListenSocket::listen(int port, bool reuse) return false; } - if (::listen(fd, 1) == -1) - panic("ListenSocket(listen): listen() failed!"); + if (::listen(fd, 1) == -1) { + if (errno != EADDRINUSE) + panic("ListenSocket(listen): listen() failed!"); + + return false; + } listening = true; - anyListening = true; return true; }