summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index 295d3961a8..7cd8e1bff3 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -321,7 +321,13 @@ bool QNativeSocketEnginePrivate::setOption(QNativeSocketEngine::SocketOption opt
}
case QNativeSocketEngine::AddressReusable:
#if defined(SO_REUSEPORT)
- n = SO_REUSEPORT;
+ // on OS X, SO_REUSEADDR isn't sufficient to allow multiple binds to the
+ // same port (which is useful for multicast UDP). SO_REUSEPORT is, but
+ // we most definitely do not want to use this for TCP. See QTBUG-6305.
+ if (socketType == QAbstractSocket::UdpSocket)
+ n = SO_REUSEPORT;
+ else
+ n = SO_REUSEADDR;
#else
n = SO_REUSEADDR;
#endif