From 4f8a4a5c04ea85c8b79c2caf1c92683dbf9aba07 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Wed, 2 Oct 2019 10:20:46 +0200 Subject: Fix compilation - Some compilers don't like using QPointer in connect(). Use QPointer::data() instead. This fixes the build for linux SLES 12. - Enable simplecoapclient example only when Qt is compiled with gui. Fixes: QTBUG-78884 Change-Id: I592e52eaea93f8f94a2b1af18ea29e745c44dde9 Reviewed-by: Edward Welbourne --- examples/coap/coap.pro | 6 +++--- src/coap/qcoapprotocol.cpp | 4 ++-- src/coap/qcoapqudpconnection.cpp | 12 +++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/examples/coap/coap.pro b/examples/coap/coap.pro index 006c281..befe3b7 100644 --- a/examples/coap/coap.pro +++ b/examples/coap/coap.pro @@ -1,8 +1,8 @@ TEMPLATE = subdirs -SUBDIRS += \ - simplecoapclient \ - consolecoapclient +SUBDIRS += consolecoapclient + +qtHaveModule(gui) SUBDIRS += simplecoapclient qtHaveModule(quick) { SUBDIRS += \ diff --git a/src/coap/qcoapprotocol.cpp b/src/coap/qcoapprotocol.cpp index 42ef4ba..9d365c6 100644 --- a/src/coap/qcoapprotocol.cpp +++ b/src/coap/qcoapprotocol.cpp @@ -139,14 +139,14 @@ void QCoapProtocol::sendRequest(QPointer reply, QCoapConnection *con || !QCoapRequestPrivate::isUrlValid(reply->request().url())) return; - connect(reply, &QCoapReply::aborted, this, [this](const QCoapToken &token) { + connect(reply.data(), &QCoapReply::aborted, this, [this](const QCoapToken &token) { Q_D(QCoapProtocol); d->onRequestAborted(token); }); auto internalRequest = QSharedPointer::create(reply->request(), this); internalRequest->setMaxTransmissionWait(maximumTransmitWait()); - connect(reply, &QCoapReply::finished, this, &QCoapProtocol::finished); + connect(reply.data(), &QCoapReply::finished, this, &QCoapProtocol::finished); if (internalRequest->isMulticast()) { connect(internalRequest.data(), &QCoapInternalRequest::multicastRequestExpired, this, diff --git a/src/coap/qcoapqudpconnection.cpp b/src/coap/qcoapqudpconnection.cpp index ebb3fa9..41224a2 100644 --- a/src/coap/qcoapqudpconnection.cpp +++ b/src/coap/qcoapqudpconnection.cpp @@ -113,15 +113,17 @@ QCoapQUdpConnection::QCoapQUdpConnection(QCoapQUdpConnectionPrivate &dd, QObject configuration.setPeerVerifyMode(QSslSocket::VerifyNone); d->dtls->setDtlsConfiguration(configuration); - connect(d->dtls, &QDtls::pskRequired, this, &QCoapQUdpConnection::pskRequired); - connect(d->dtls, &QDtls::handshakeTimeout, this, &QCoapQUdpConnection::handshakeTimeout); + connect(d->dtls.data(), &QDtls::pskRequired, this, &QCoapQUdpConnection::pskRequired); + connect(d->dtls.data(), &QDtls::handshakeTimeout, + this, &QCoapQUdpConnection::handshakeTimeout); break; case QtCoap::SecurityMode::Certificate: d->dtls = new QDtls(QSslSocket::SslClientMode, this); configuration.setPeerVerifyMode(QSslSocket::VerifyPeer); d->dtls->setDtlsConfiguration(configuration); - connect(d->dtls, &QDtls::handshakeTimeout, this, &QCoapQUdpConnection::handshakeTimeout); + connect(d->dtls.data(), &QDtls::handshakeTimeout, + this, &QCoapQUdpConnection::handshakeTimeout); break; default: break; @@ -145,11 +147,11 @@ void QCoapQUdpConnection::createSocket() d->udpSocket = new QUdpSocket(this); - connect(d->udpSocket, &QUdpSocket::readyRead, [this]() { + connect(d->udpSocket.data(), &QUdpSocket::readyRead, [this]() { Q_D(QCoapQUdpConnection); d->socketReadyRead(); }); - connect(d->udpSocket, QOverload::of(&QUdpSocket::error), + connect(d->udpSocket.data(), QOverload::of(&QUdpSocket::error), [this](QAbstractSocket::SocketError socketError) { qCWarning(lcCoapConnection) << "CoAP UDP socket error" << socketError << socket()->errorString(); -- cgit v1.2.3