aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2019-03-27 16:41:48 +0100
committerSona Kurazyan <sona.kurazyan@qt.io>2019-03-29 12:32:33 +0000
commit64b696e5176b9672a03f0d2f47cc47236b3551ed (patch)
tree5d4ad6e1c5e1f8d3a2e6c9735ac51f3496a70f67
parentd1e1548ccf83bf393dfa36b2c0eb464b59a2926d (diff)
Close the DTLS connection during destruction
Change-Id: Id7bc8ac1506ae543c7964b0bdcacf39588cd7334 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--src/coap/qcoapqudpconnection.cpp10
-rw-r--r--src/coap/qcoapqudpconnection_p.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/coap/qcoapqudpconnection.cpp b/src/coap/qcoapqudpconnection.cpp
index 27a23e0..636554c 100644
--- a/src/coap/qcoapqudpconnection.cpp
+++ b/src/coap/qcoapqudpconnection.cpp
@@ -164,6 +164,16 @@ QCoapQUdpConnectionPrivate::QCoapQUdpConnectionPrivate(QtCoap::SecurityMode secu
{
}
+QCoapQUdpConnectionPrivate::~QCoapQUdpConnectionPrivate()
+{
+#if QT_CONFIG(dtls)
+ if (dtls && dtls->isConnectionEncrypted()) {
+ Q_ASSERT(udpSocket);
+ dtls->shutdown(udpSocket);
+ }
+#endif
+}
+
/*!
\internal
diff --git a/src/coap/qcoapqudpconnection_p.h b/src/coap/qcoapqudpconnection_p.h
index 5491b60..587f5a2 100644
--- a/src/coap/qcoapqudpconnection_p.h
+++ b/src/coap/qcoapqudpconnection_p.h
@@ -57,6 +57,7 @@ class Q_AUTOTEST_EXPORT QCoapQUdpConnectionPrivate : public QCoapConnectionPriva
{
public:
QCoapQUdpConnectionPrivate(QtCoap::SecurityMode security = QtCoap::NoSec);
+ ~QCoapQUdpConnectionPrivate() override;
virtual bool bind();