From 205498900a4408a68c0271943f58ce72d382efce Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 16 Oct 2014 17:25:12 +0100 Subject: [PATCH] Tweaked the re-use flags for DatagramSocket --- modules/juce_core/network/juce_Socket.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/juce_core/network/juce_Socket.cpp b/modules/juce_core/network/juce_Socket.cpp index 618185bb2b..50da39cbc2 100644 --- a/modules/juce_core/network/juce_Socket.cpp +++ b/modules/juce_core/network/juce_Socket.cpp @@ -263,6 +263,12 @@ namespace SocketHelpers return true; } + + static void makeReusable (int handle) noexcept + { + const int reuse = 1; + setsockopt (handle, SOL_SOCKET, SO_REUSEADDR, (const char*) &reuse, sizeof (reuse)); + } } //============================================================================== @@ -419,8 +425,7 @@ bool StreamingSocket::createListener (const int newPortNumber, const String& loc return false; #if ! JUCE_WINDOWS // on windows, adding this option produces behaviour different to posix - const int reuse = 1; - setsockopt (handle, SOL_SOCKET, SO_REUSEADDR, (const char*) &reuse, sizeof (reuse)); + SocketHelpers::makeReusable (handle); #endif if (bind (handle, (struct sockaddr*) &servTmpAddr, sizeof (struct sockaddr_in)) < 0 @@ -472,6 +477,7 @@ DatagramSocket::DatagramSocket (const int localPortNumber, const bool canBroadca SocketHelpers::initSockets(); handle = (int) socket (AF_INET, SOCK_DGRAM, 0); + SocketHelpers::makeReusable (handle); bindToPort (localPortNumber); }