summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2019-03-15 14:29:24 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2019-03-28 08:47:39 +0000
commit9dbd77bc259da87d0a2baa6e7be6739b9b425175 (patch)
tree77a473dacde5daadbc341c0c6044ad3502a90235
parentb2f1a52b66b1a14ec1d43b4bceac7bbf0e2d6d4b (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.cpp7
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);
}
/*!