diff options
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
| -rw-r--r-- | src/network/socket/qabstractsocket.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index ce3626304c8..f2474ad7e97 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -432,6 +432,7 @@ #include "qabstractsocket.h" #include "qabstractsocket_p.h" +#include "qnetworkinterface.h" #include "private/qhostinfo_p.h" @@ -1505,8 +1506,6 @@ bool QAbstractSocketPrivate::bind(const QHostAddress &address, quint16 port, QAb { Q_Q(QAbstractSocket); - Q_UNUSED(iface); // will be used in a follow-up patch - // now check if the socket engine is initialized and to the right type if (!socketEngine || !socketEngine->isValid()) { QHostAddress nullAddress; @@ -1538,6 +1537,10 @@ bool QAbstractSocketPrivate::bind(const QHostAddress &address, quint16 port, QAb socketEngine->setOption(QAbstractSocketEngine::BindExclusively, 0); #endif } +#if QT_CONFIG(networkinterface) + if (iface && iface->isValid()) + socketEngine->setOption(QAbstractSocketEngine::BindInterfaceIndex, iface->index()); +#endif bool result = socketEngine->bind(address, port); cachedSocketDescriptor = socketEngine->socketDescriptor(); |
