diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-03-15 14:29:24 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-03-28 08:47:39 +0000 |
commit | 9dbd77bc259da87d0a2baa6e7be6739b9b425175 (patch) | |
tree | 77a473dacde5daadbc341c0c6044ad3502a90235 | |
parent | b2f1a52b66b1a14ec1d43b4bceac7bbf0e2d6d4b (diff) |
Fix sending KNXnet/IP TCP connect request frames
AN184 - 2.2.3.2.4.3 Connection Request
* For the host protocol code IPV4_TCP only the special "Route Back"
encoding is allowed.
Change-Id: Ie8ab8a4cd59828c720aa72700922c3af6de73de9
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | src/knx/netip/qknxnetipendpointconnection.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/knx/netip/qknxnetipendpointconnection.cpp b/src/knx/netip/qknxnetipendpointconnection.cpp index c983c59..679f457 100644 --- a/src/knx/netip/qknxnetipendpointconnection.cpp +++ b/src/knx/netip/qknxnetipendpointconnection.cpp @@ -1253,16 +1253,14 @@ void QKnxNetIpEndpointConnection::connectToHost(const QHostAddress &address, qui if (!d->initConnection(address, port, protocol)) return; - d->m_tcpSocket->connectToHost(address, port); - connect(d->m_tcpSocket, &QTcpSocket::connected, this, [&]() { Q_D(QKnxNetIpEndpointConnection); d->m_localEndpoint = { d->m_tcpSocket->localAddress(), d->m_tcpSocket->localPort(), QKnxNetIp::HostProtocol::TCP_IPv4 }; auto request = QKnxNetIpConnectRequestProxy::builder() - .setControlEndpoint(d->m_nat ? d->m_routeBack : d->m_localEndpoint) - .setDataEndpoint(d->m_nat ? d->m_routeBack : d->m_localEndpoint) + .setControlEndpoint(d->m_routeBack) + .setDataEndpoint(d->m_routeBack) .setRequestInformation(d->m_cri) .create(); d->m_controlEndpointVersion = request.header().protocolVersion(); @@ -1271,6 +1269,7 @@ void QKnxNetIpEndpointConnection::connectToHost(const QHostAddress &address, qui d->m_tcpSocket->write(request.bytes().toByteArray()); d->m_connectRequestTimer->start(QKnxNetIp::ConnectRequestTimeout); }); + d->m_tcpSocket->connectToHost(address, port); } /*! |