diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-04-11 12:00:50 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-04-15 08:23:48 +0000 |
commit | 5ac884b47ba36194e38be9b3d7d427aebdc4a451 (patch) | |
tree | 6eba60509538b239cbb6090ee9afd42ad93d51da | |
parent | 2a80df505c6af22755107403b23597874c863db1 (diff) |
Fix crash after the connection was immediately dropped
If the connection was dropped immediately after write datagram
due to an error, the timers and socket would be cleared and we
where accessing a null pointer.
Change-Id: I75c7aec9a7caed8edafb95d50465e3527a32dad6
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | src/knx/netip/qknxnetipendpointconnection.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/knx/netip/qknxnetipendpointconnection.cpp b/src/knx/netip/qknxnetipendpointconnection.cpp index 6b256bc..03785e1 100644 --- a/src/knx/netip/qknxnetipendpointconnection.cpp +++ b/src/knx/netip/qknxnetipendpointconnection.cpp @@ -1232,11 +1232,14 @@ void QKnxNetIpEndpointConnection::connectToHost(const QHostAddress &address, qui .create(); d->m_controlEndpointVersion = request.header().protocolVersion(); - qDebug() << "Sending connect request:" << request; d->setAndEmitStateChanged(QKnxNetIpEndpointConnection::State::Connecting); + + qDebug() << "Sending connect request:" << request; d->m_udpSocket->writeDatagram(request.bytes().toByteArray(), d->m_remoteControlEndpoint.address, d->m_remoteControlEndpoint.port); - d->m_connectRequestTimer->start(QKnxNetIp::ConnectRequestTimeout); + + if (d->m_connectRequestTimer) + d->m_connectRequestTimer->start(QKnxNetIp::ConnectRequestTimeout); } /*! |