From 65eddb2b40ff82334f7cad7f7f4c61ab8f038f72 Mon Sep 17 00:00:00 2001 From: Tijmen van Nesselrooij Date: Wed, 19 Jun 2019 19:41:43 +0200 Subject: [PATCH] Use socket opt to prevent a lingering socket after program close --- src/server/socket/listeningsocket.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server/socket/listeningsocket.cpp b/src/server/socket/listeningsocket.cpp index c91b7b1..9ac5dbe 100644 --- a/src/server/socket/listeningsocket.cpp +++ b/src/server/socket/listeningsocket.cpp @@ -25,6 +25,12 @@ ListeningSocket::ListeningSocket(int const port) throw std::runtime_error("socket creation error"); } + int enable = 1; + if (setsockopt(socketFileDescriptor, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) + { + throw std::runtime_error("setsockopt SO_REUSEADDR failed"); + } + socketAddress.sin_family = AF_INET; socketAddress.sin_addr.s_addr = INADDR_ANY; socketAddress.sin_port = htons(port);