diff --git a/libnymea/coap/coap.cpp b/libnymea/coap/coap.cpp index 404e434c..7457ce4a 100644 --- a/libnymea/coap/coap.cpp +++ b/libnymea/coap/coap.cpp @@ -93,7 +93,7 @@ Coap::Coap(QObject *parent, const quint16 &port) : { m_socket = new QUdpSocket(this); - if (!m_socket->bind(QHostAddress::Any, port, QAbstractSocket::ShareAddress)) + if (!m_socket->bind(QHostAddress::AnyIPv4, port, QAbstractSocket::ShareAddress)) qCWarning(dcCoap) << "Could not bind to port" << port << m_socket->errorString(); connect(m_socket, SIGNAL(readyRead()), this, SLOT(onReadyRead())); @@ -103,117 +103,44 @@ Coap::Coap(QObject *parent, const quint16 &port) : * Returns a \l{CoapReply} to match the response with the request. */ CoapReply *Coap::ping(const CoapRequest &request) { - CoapReply *reply = new CoapReply(request, this); - reply->setRequestMethod(CoapPdu::Empty); - - connect(reply, &CoapReply::timeout, this, &Coap::onReplyTimeout); - connect(reply, &CoapReply::finished, this, &Coap::onReplyFinished); - - if (request.url().scheme() != "coap") { - reply->setError(CoapReply::InvalidUrlSchemeError); - reply->m_isFinished = true; - return reply; - } - - // check if there is a request running - if (m_reply == 0) { - m_reply = reply; - lookupHost(); - } else { - m_replyQueue.enqueue(reply); - } - - return reply; + return customRequest(CoapPdu::Empty, request); } /*! Performs a GET request to the CoAP server specified in the given \a request. * Returns a \l{CoapReply} to match the response with the request. */ CoapReply *Coap::get(const CoapRequest &request) { - CoapReply *reply = new CoapReply(request, this); - reply->setRequestMethod(CoapPdu::Get); - - connect(reply, &CoapReply::timeout, this, &Coap::onReplyTimeout); - connect(reply, &CoapReply::finished, this, &Coap::onReplyFinished); - - if (request.url().scheme() != "coap") { - reply->setError(CoapReply::InvalidUrlSchemeError); - reply->m_isFinished = true; - return reply; - } - - // check if there is a request running - if (m_reply == 0) { - m_reply = reply; - lookupHost(); - } else { - m_replyQueue.enqueue(reply); - } - return reply; + return customRequest(CoapPdu::Get, request); } /*! Performs a PUT request to the CoAP server specified in the given \a request and \a data. * Returns a \l{CoapReply} to match the response with the request. */ CoapReply *Coap::put(const CoapRequest &request, const QByteArray &data) { - CoapReply *reply = new CoapReply(request, this); - reply->setRequestMethod(CoapPdu::Put); - reply->setRequestPayload(data); - - connect(reply, &CoapReply::timeout, this, &Coap::onReplyTimeout); - connect(reply, &CoapReply::finished, this, &Coap::onReplyFinished); - - if (request.url().scheme() != "coap") { - reply->setError(CoapReply::InvalidUrlSchemeError); - reply->m_isFinished = true; - return reply; - } - - // check if there is a request running - if (m_reply == 0) { - m_reply = reply; - lookupHost(); - } else { - m_replyQueue.enqueue(reply); - } - - return reply; + return customRequest(CoapPdu::Put, request, data); } /*! Performs a POST request to the CoAP server specified in the given \a request and \a data. * Returns a \l{CoapReply} to match the response with the request. */ CoapReply *Coap::post(const CoapRequest &request, const QByteArray &data) { - CoapReply *reply = new CoapReply(request, this); - reply->setRequestMethod(CoapPdu::Post); - reply->setRequestPayload(data); - - connect(reply, &CoapReply::timeout, this, &Coap::onReplyTimeout); - connect(reply, &CoapReply::finished, this, &Coap::onReplyFinished); - - if (request.url().scheme() != "coap") { - reply->setError(CoapReply::InvalidUrlSchemeError); - reply->m_isFinished = true; - return reply; - } - - // check if there is a request running - if (m_reply == 0) { - m_reply = reply; - lookupHost(); - } else { - m_replyQueue.enqueue(reply); - } - - return reply; + return customRequest(CoapPdu::Post, request, data); } /*! Performs a DELETE request to the CoAP server specified in the given \a request. * Returns a \l{CoapReply} to match the response with the request. */ CoapReply *Coap::deleteResource(const CoapRequest &request) +{ + return customRequest(CoapPdu::Delete, request); +} + +CoapReply *Coap::customRequest(CoapPdu::ReqRspCode requestCode, const CoapRequest &request, const QByteArray &data) { CoapReply *reply = new CoapReply(request, this); - reply->setRequestMethod(CoapPdu::Delete); + reply->setRequestMethod(requestCode); + if (!data.isEmpty()) { + reply->setRequestPayload(data); + } connect(reply, &CoapReply::timeout, this, &Coap::onReplyTimeout); connect(reply, &CoapReply::finished, this, &Coap::onReplyFinished); @@ -296,6 +223,23 @@ CoapReply *Coap::disableNotifications(const CoapRequest &request) return reply; } +bool Coap::joinMulticastGroup(const QHostAddress &address) +{ + bool ok = m_socket->joinMulticastGroup(address); + if (ok) { + qCDebug(dcCoap()) << "Joined CoAP multucast group on:" << address; + } else { + qCWarning(dcCoap()) << "Error joining CoAP multicast group on:" << address; + } + return ok; +} + +bool Coap::leaveMulticastGroup(const QHostAddress &address) +{ + return m_socket->leaveMulticastGroup(address); +} + + void Coap::lookupHost() { int lookupId = QHostInfo::lookupHost(m_reply->request().url().host(), this, SLOT(hostLookupFinished(QHostInfo))); @@ -306,7 +250,7 @@ void Coap::sendRequest(CoapReply *reply, const bool &lookedUp) { CoapPdu pdu; pdu.setMessageType(reply->request().messageType()); - pdu.setStatusCode(reply->requestMethod()); + pdu.setReqRspCode(reply->requestMethod()); pdu.createMessageId(); pdu.createToken(); @@ -431,18 +375,15 @@ void Coap::processResponse(const CoapPdu &pdu, const QHostAddress &address, cons return; } - qCDebug(dcCoap) << "Got message without request or registered observe resource." << endl << "<---" << pdu; - CoapPdu responsePdu; - responsePdu.setMessageType(CoapPdu::Reset); - responsePdu.setMessageId(pdu.messageId()); - responsePdu.setToken(pdu.token()); - sendCoapPdu(address, port, responsePdu); + // If this is neither a response to a request of a notification from an observed resource, it's a multicast message + qCDebug(dcCoap) << "<---" << QString("%1:%2").arg(address.toString()).arg(QString::number(port)) << pdu; + emit multicastMessageReceived(address, pdu); } void Coap::processIdBasedResponse(CoapReply *reply, const CoapPdu &pdu) { // check if this is an empty ACK response (which indicates a separated response) - if (pdu.statusCode() == CoapPdu::Empty && pdu.messageType() == CoapPdu::Acknowledgement) { + if (pdu.reqRspCode() == CoapPdu::Empty && pdu.messageType() == CoapPdu::Acknowledgement) { reply->m_timer->stop(); qCDebug(dcCoap) << "Got empty ACK. Data will be sent separated."; return; @@ -461,7 +402,7 @@ void Coap::processIdBasedResponse(CoapReply *reply, const CoapPdu &pdu) } // Piggybacked response - reply->setStatusCode(pdu.statusCode()); + reply->setReqRspCode(pdu.reqRspCode()); reply->setContentType(pdu.contentType()); reply->appendPayloadData(pdu.payload()); reply->setFinished(); @@ -472,11 +413,11 @@ void Coap::processTokenBasedResponse(CoapReply *reply, const CoapPdu &pdu) // Separate Response CoapPdu responsePdu; responsePdu.setMessageType(CoapPdu::Acknowledgement); - responsePdu.setStatusCode(CoapPdu::Empty); + responsePdu.setReqRspCode(CoapPdu::Empty); responsePdu.setMessageId(pdu.messageId()); sendCoapPdu(reply->hostAddress(), reply->port(), responsePdu); - reply->setStatusCode(pdu.statusCode()); + reply->setReqRspCode(pdu.reqRspCode()); reply->setContentType(pdu.contentType()); reply->appendPayloadData(pdu.payload()); reply->setFinished(); @@ -497,7 +438,7 @@ void Coap::processNotification(const CoapPdu &pdu, const QHostAddress &address, // respond with ACK CoapPdu responsePdu; responsePdu.setMessageType(CoapPdu::Acknowledgement); - responsePdu.setStatusCode(CoapPdu::Empty); + responsePdu.setReqRspCode(CoapPdu::Empty); responsePdu.setMessageId(pdu.messageId()); responsePdu.setToken(pdu.token()); @@ -530,7 +471,7 @@ void Coap::processNotification(const CoapPdu &pdu, const QHostAddress &address, CoapPdu pdu; pdu.setMessageType(m_observerReply->request().messageType()); - pdu.setStatusCode(m_observerReply->requestMethod()); + pdu.setReqRspCode(m_observerReply->requestMethod()); pdu.createMessageId(); pdu.createToken(); @@ -568,7 +509,7 @@ void Coap::processNotification(const CoapPdu &pdu, const QHostAddress &address, // respond with ACK CoapPdu responsePdu; responsePdu.setMessageType(CoapPdu::Acknowledgement); - responsePdu.setStatusCode(CoapPdu::Empty); + responsePdu.setReqRspCode(CoapPdu::Empty); responsePdu.setMessageId(pdu.messageId()); responsePdu.setToken(pdu.token()); @@ -596,7 +537,7 @@ void Coap::processBlock1Response(CoapReply *reply, const CoapPdu &pdu) // check if this was the last block if (newBlockData.isEmpty()) { - reply->setStatusCode(pdu.statusCode()); + reply->setReqRspCode(pdu.reqRspCode()); reply->setContentType(pdu.contentType()); reply->setFinished(); return; @@ -609,7 +550,7 @@ void Coap::processBlock1Response(CoapReply *reply, const CoapPdu &pdu) CoapPdu nextBlockRequest; nextBlockRequest.setContentType(reply->request().contentType()); nextBlockRequest.setMessageType(reply->request().messageType()); - nextBlockRequest.setStatusCode(reply->requestMethod()); + nextBlockRequest.setReqRspCode(reply->requestMethod()); nextBlockRequest.setMessageId(pdu.messageId() + 1); nextBlockRequest.setToken(pdu.token()); @@ -655,7 +596,7 @@ void Coap::processBlock2Response(CoapReply *reply, const CoapPdu &pdu) // check if this was the last block if (!pdu.block().moreFlag()) { - reply->setStatusCode(pdu.statusCode()); + reply->setReqRspCode(pdu.reqRspCode()); reply->setContentType(pdu.contentType()); reply->setFinished(); return; @@ -664,7 +605,7 @@ void Coap::processBlock2Response(CoapReply *reply, const CoapPdu &pdu) CoapPdu nextBlockRequest; nextBlockRequest.setContentType(reply->request().contentType()); nextBlockRequest.setMessageType(reply->request().messageType()); - nextBlockRequest.setStatusCode(reply->requestMethod()); + nextBlockRequest.setReqRspCode(reply->requestMethod()); nextBlockRequest.setMessageId(pdu.messageId() + 1); nextBlockRequest.setToken(pdu.token()); @@ -716,7 +657,7 @@ void Coap::processBlock2Notification(CoapReply *reply, const CoapPdu &pdu) // respond with ACK CoapPdu responsePdu; responsePdu.setMessageType(CoapPdu::Acknowledgement); - responsePdu.setStatusCode(CoapPdu::Empty); + responsePdu.setReqRspCode(CoapPdu::Empty); responsePdu.setMessageId(pdu.messageId()); responsePdu.setToken(pdu.token()); @@ -737,7 +678,7 @@ void Coap::processBlock2Notification(CoapReply *reply, const CoapPdu &pdu) CoapPdu nextBlockRequest; nextBlockRequest.setContentType(reply->request().contentType()); nextBlockRequest.setMessageType(reply->request().messageType()); - nextBlockRequest.setStatusCode(reply->requestMethod()); + nextBlockRequest.setReqRspCode(reply->requestMethod()); nextBlockRequest.setMessageId(pdu.messageId() + 1); nextBlockRequest.setToken(pdu.token()); @@ -806,7 +747,7 @@ void Coap::onReadyRead() while (m_socket->hasPendingDatagrams()) { QByteArray datagram(m_socket->pendingDatagramSize(), 0); m_socket->readDatagram(datagram.data(), datagram.size(), &hostAddress, &port); - qCDebug(dcCoap()) << "Datagram received from:" << hostAddress << ":" << datagram; + qCDebug(dcCoap()) << "Datagram received from:" << hostAddress << ":" << datagram.toHex(); CoapPdu pdu(datagram); processResponse(pdu, hostAddress, port); } diff --git a/libnymea/coap/coap.h b/libnymea/coap/coap.h index ac795f78..47e34efd 100644 --- a/libnymea/coap/coap.h +++ b/libnymea/coap/coap.h @@ -65,11 +65,14 @@ public: CoapReply *put(const CoapRequest &request, const QByteArray &data = QByteArray()); CoapReply *post(const CoapRequest &request, const QByteArray &data = QByteArray()); CoapReply *deleteResource(const CoapRequest &request); + CoapReply *customRequest(CoapPdu::ReqRspCode requestCode, const CoapRequest &request, const QByteArray &data = QByteArray()); // Notifications for observable resources CoapReply *enableResourceNotifications(const CoapRequest &request); CoapReply *disableNotifications(const CoapRequest &request); + bool joinMulticastGroup(const QHostAddress &address = QHostAddress("224.0.1.187")); + bool leaveMulticastGroup(const QHostAddress &address = QHostAddress("224.0.1.187")); private: QUdpSocket *m_socket; @@ -105,6 +108,7 @@ private: signals: void replyFinished(CoapReply *reply); void notificationReceived(const CoapObserveResource &resource, const int ¬ificationNumber, const QByteArray &payload); + void multicastMessageReceived(const QHostAddress &source, const CoapPdu &pdu); private slots: void hostLookupFinished(const QHostInfo &hostInfo); diff --git a/libnymea/coap/coappdu.cpp b/libnymea/coap/coappdu.cpp index d02abc90..025d61b8 100644 --- a/libnymea/coap/coappdu.cpp +++ b/libnymea/coap/coappdu.cpp @@ -173,7 +173,7 @@ CoapPdu::CoapPdu(QObject *parent) : QObject(parent), m_version(1), m_messageType(Confirmable), - m_statusCode(Empty), + m_reqRspCode(Empty), m_messageId(0), m_contentType(TextPlain), m_payload(QByteArray()), @@ -187,7 +187,7 @@ CoapPdu::CoapPdu(const QByteArray &data, QObject *parent) : QObject(parent), m_version(1), m_messageType(Confirmable), - m_statusCode(Empty), + m_reqRspCode(Empty), m_messageId(0), m_contentType(TextPlain), m_payload(QByteArray()), @@ -197,20 +197,20 @@ CoapPdu::CoapPdu(const QByteArray &data, QObject *parent) : unpack(data); } -/*! Returns the human readable status code for the given \a statusCode. */ -QString CoapPdu::getStatusCodeString(const CoapPdu::StatusCode &statusCode) +/*! Returns the human readable string for the given \a reqRspCode. */ +QString CoapPdu::getReqRspCodeString(CoapPdu::ReqRspCode reqRspCode) { QString statusCodeString; const QMetaObject &metaObject = CoapPdu::staticMetaObject; - QMetaEnum statusCodeEnum = metaObject.enumerator(metaObject.indexOfEnumerator("StatusCode")); - int classNumber = (statusCode & 0xE0) >> 5; - int detailNumber = statusCode & 0x1F; + QMetaEnum statusCodeEnum = metaObject.enumerator(metaObject.indexOfEnumerator("ReqRspCode")); + int classNumber = (reqRspCode & 0xE0) >> 5; + int detailNumber = reqRspCode & 0x1F; statusCodeString.append(QString::number(classNumber) + "."); if (detailNumber < 10) statusCodeString.append("0"); statusCodeString.append(QString::number(detailNumber) + " "); - statusCodeString.append(statusCodeEnum.valueToKey(statusCode)); + statusCodeString.append(statusCodeEnum.valueToKey(reqRspCode)); return statusCodeString; } @@ -221,7 +221,7 @@ quint8 CoapPdu::version() const } /*! Sets the version of this \l{CoapPdu} to the given \a version. */ -void CoapPdu::setVersion(const quint8 &version) +void CoapPdu::setVersion(quint8 version) { m_version = version; } @@ -233,21 +233,21 @@ CoapPdu::MessageType CoapPdu::messageType() const } /*! Sets the \l{CoapPdu::MessageType} of this \l{CoapPdu} to the given \a messageType. */ -void CoapPdu::setMessageType(const CoapPdu::MessageType &messageType) +void CoapPdu::setMessageType(CoapPdu::MessageType messageType) { m_messageType = messageType; } -/*! Returns the \l{CoapPdu::StatusCode} of this \l{CoapPdu}. */ -CoapPdu::StatusCode CoapPdu::statusCode() const +/*! Returns the \l{CoapPdu::ReqRspCode} of this \l{CoapPdu}. */ +CoapPdu::ReqRspCode CoapPdu::reqRspCode() const { - return m_statusCode; + return m_reqRspCode; } -/*! Sets the \l{CoapPdu::StatusCode} of this \l{CoapPdu} to the given \a statusCode. */ -void CoapPdu::setStatusCode(const CoapPdu::StatusCode &statusCode) +/*! Sets the \l{CoapPdu::ReqRspCode} of this \l{CoapPdu} to the given \a reqRspCode. */ +void CoapPdu::setReqRspCode(CoapPdu::ReqRspCode reqRspCode) { - m_statusCode = statusCode; + m_reqRspCode = reqRspCode; } /*! Returns the messageId of this \l{CoapPdu}. */ @@ -267,7 +267,7 @@ void CoapPdu::createMessageId() } /*! Sets the messageId of this \l{CoapPdu} to the given \a messageId. */ -void CoapPdu::setMessageId(const quint16 &messageId) +void CoapPdu::setMessageId(quint16 messageId) { m_messageId = messageId; } @@ -282,7 +282,7 @@ CoapPdu::ContentType CoapPdu::contentType() const \sa CoapPdu::ContentType */ -void CoapPdu::setContentType(const CoapPdu::ContentType &contentType) +void CoapPdu::setContentType(ContentType contentType) { m_contentType = contentType; } @@ -336,7 +336,7 @@ QList CoapPdu::options() const \sa CoapOption */ -void CoapPdu::addOption(const CoapOption::Option &option, const QByteArray &data) +void CoapPdu::addOption(CoapOption::Option option, const QByteArray &data) { // set pdu data from the option switch (option) { @@ -384,7 +384,7 @@ CoapPduBlock CoapPdu::block() const } /*! Returns true if this \l{CoapPdu} has the given \a option. */ -bool CoapPdu::hasOption(const CoapOption::Option &option) const +bool CoapPdu::hasOption(CoapOption::Option option) const { foreach (const CoapOption &o, m_options) { if (o.option() == option) @@ -393,12 +393,22 @@ bool CoapPdu::hasOption(const CoapOption::Option &option) const return false; } +CoapOption CoapPdu::option(CoapOption::Option option) const +{ + foreach (const CoapOption &o, m_options) { + if (o.option() == option) { + return o; + } + } + return CoapOption(); +} + /*! Resets this \l{CoapPdu} to the default values. */ void CoapPdu::clear() { m_version = 1; m_messageType = Confirmable; - m_statusCode = Empty; + m_reqRspCode = Empty; m_messageId = 0; m_contentType = TextPlain; m_token.clear(); @@ -426,7 +436,7 @@ QByteArray CoapPdu::pack() const rawHeader[0] = m_version << 6; rawHeader[0] |= (quint8)m_messageType << 4; rawHeader[0] |= (quint8)m_token.size(); - rawHeader[1] = (quint8)m_statusCode; + rawHeader[1] = (quint8)m_reqRspCode; rawHeader[2] = (quint8)(m_messageId >> 8); rawHeader[3] = (quint8)(m_messageId & 0xff); pduData = QByteArray::fromRawData((char *)rawHeader, 4); @@ -532,8 +542,8 @@ void CoapPdu::unpack(const QByteArray &data) quint8 reqRspCode; stream >> reqRspCode; - setStatusCode(static_cast(reqRspCode)); -// qCDebug(dcCoap()) << "Req/Rsp code:" << statusCode(); + setReqRspCode(static_cast(reqRspCode)); +// qCDebug(dcCoap()) << "Req/Rsp code:" << reqRspCode(); quint16 messageId; stream >> messageId; @@ -611,7 +621,7 @@ QDebug operator<<(QDebug debug, const CoapPdu &coapPdu) const QMetaObject &metaObject = CoapPdu::staticMetaObject; QMetaEnum messageTypeEnum = metaObject.enumerator(metaObject.indexOfEnumerator("MessageType")); debug.nospace() << "CoapPdu(" << messageTypeEnum.valueToKey(coapPdu.messageType()) << ")" << endl; - debug.nospace() << " Code: " << CoapPdu::getStatusCodeString(coapPdu.statusCode()) << endl; + debug.nospace() << " Code: " << CoapPdu::getReqRspCodeString(coapPdu.reqRspCode()) << endl; debug.nospace() << " Ver: " << coapPdu.version() << endl; debug.nospace() << " Token: " << coapPdu.token().length() << " " << "0x"+ coapPdu.token().toHex() << endl; debug.nospace() << " Message ID: " << coapPdu.messageId() << endl; diff --git a/libnymea/coap/coappdu.h b/libnymea/coap/coappdu.h index 1d633a7a..26b31c2d 100644 --- a/libnymea/coap/coappdu.h +++ b/libnymea/coap/coappdu.h @@ -72,7 +72,7 @@ public: // Methods: https://tools.ietf.org/html/rfc7252#section-5.8 // Respond codes: https://tools.ietf.org/html/rfc7252#section-12.1.2 - enum StatusCode { + enum ReqRspCode { Empty = 0x00, // Empty message (ping) Get = 0x01, // Method GET Post = 0x02, // Method POST @@ -102,7 +102,7 @@ public: GatewayTimeout = 0xa4, // 5.04 ProxyingNotSupported = 0xa5 // 5.05 }; - Q_ENUM(StatusCode) + Q_ENUM(ReqRspCode) // https://tools.ietf.org/html/rfc7252#section-12.3 enum ContentType { @@ -128,24 +128,24 @@ public: CoapPdu(QObject *parent = 0); CoapPdu(const QByteArray &data, QObject *parent = 0); - static QString getStatusCodeString(const StatusCode &statusCode); + static QString getReqRspCodeString(CoapPdu::ReqRspCode reqRspCode); // header fields quint8 version() const; - void setVersion(const quint8 &version); + void setVersion(quint8 version); MessageType messageType() const; - void setMessageType(const MessageType &messageType); + void setMessageType(MessageType messageType); - StatusCode statusCode() const; - void setStatusCode(const StatusCode &statusCode); + ReqRspCode reqRspCode() const; + void setReqRspCode(ReqRspCode reqRspCode); quint16 messageId() const; void createMessageId(); - void setMessageId(const quint16 &messageId); + void setMessageId(quint16 messageId); ContentType contentType() const; - void setContentType(const ContentType &contentType); + void setContentType(ContentType contentType); QByteArray token() const; void createToken(); @@ -156,11 +156,12 @@ public: void setPayload(const QByteArray &payload); QList options() const; - void addOption(const CoapOption::Option &option, const QByteArray &data); + void addOption(CoapOption::Option option, const QByteArray &data); CoapPduBlock block() const; - bool hasOption(const CoapOption::Option &option) const; + bool hasOption(CoapOption::Option option) const; + CoapOption option(CoapOption::Option option) const; void clear(); bool isValid() const; @@ -170,7 +171,7 @@ public: private: quint8 m_version; MessageType m_messageType; - StatusCode m_statusCode; + ReqRspCode m_reqRspCode; quint16 m_messageId; ContentType m_contentType; QByteArray m_token; diff --git a/libnymea/coap/coapreply.cpp b/libnymea/coap/coapreply.cpp index 60873bbf..4d772926 100644 --- a/libnymea/coap/coapreply.cpp +++ b/libnymea/coap/coapreply.cpp @@ -184,10 +184,10 @@ CoapPdu::MessageType CoapReply::messageType() const return m_messageType; } -/*! Returns the \l{CoapPdu::StatusCode} of this \l{CoapReply}. */ -CoapPdu::StatusCode CoapReply::statusCode() const +/*! Returns the \l{CoapPdu::ReqRspCode} of this \l{CoapReply}. */ +CoapPdu::ReqRspCode CoapReply::reqRspCode() const { - return m_statusCode; + return m_reqRspCode; } CoapReply::CoapReply(const CoapRequest &request, QObject *parent) : @@ -198,7 +198,7 @@ CoapReply::CoapReply(const CoapRequest &request, QObject *parent) : m_retransmissions(1), m_contentType(CoapPdu::TextPlain), m_messageType(CoapPdu::Acknowledgement), - m_statusCode(CoapPdu::Empty), + m_reqRspCode(CoapPdu::Empty), m_lockedUp(false) { m_timer = new QTimer(this); @@ -275,19 +275,19 @@ void CoapReply::resend() } } -void CoapReply::setContentType(const CoapPdu::ContentType contentType) +void CoapReply::setContentType(CoapPdu::ContentType contentType) { m_contentType = contentType; } -void CoapReply::setMessageType(const CoapPdu::MessageType &messageType) +void CoapReply::setMessageType(CoapPdu::MessageType messageType) { m_messageType = messageType; } -void CoapReply::setStatusCode(const CoapPdu::StatusCode &statusCode) +void CoapReply::setReqRspCode(CoapPdu::ReqRspCode reqRspCode) { - m_statusCode = statusCode; + m_reqRspCode = reqRspCode; } void CoapReply::setHostAddress(const QHostAddress &address) @@ -300,7 +300,7 @@ QHostAddress CoapReply::hostAddress() const return m_hostAddress; } -void CoapReply::setPort(const int &port) +void CoapReply::setPort(int port) { m_port = port; } @@ -320,12 +320,12 @@ QByteArray CoapReply::requestPayload() const return m_requestPayload; } -void CoapReply::setRequestMethod(const CoapPdu::StatusCode &method) +void CoapReply::setRequestMethod(CoapPdu::ReqRspCode method) { m_requestMethod = method; } -CoapPdu::StatusCode CoapReply::requestMethod() const +CoapPdu::ReqRspCode CoapReply::requestMethod() const { return m_requestMethod; } @@ -352,7 +352,7 @@ QDebug operator<<(QDebug debug, CoapReply *reply) QMetaEnum messageTypeEnum = metaObject.enumerator(metaObject.indexOfEnumerator("MessageType")); QMetaEnum contentTypeEnum = metaObject.enumerator(metaObject.indexOfEnumerator("ContentType")); debug.nospace() << "CoapReply(" << messageTypeEnum.valueToKey(reply->messageType()) << ")" << endl; - debug.nospace() << " Status code: " << CoapPdu::getStatusCodeString(reply->statusCode()) << endl; + debug.nospace() << " Status code: " << CoapPdu::getReqRspCodeString(reply->reqRspCode()) << endl; debug.nospace() << " Content type: " << contentTypeEnum.valueToKey(reply->contentType()) << endl; debug.nospace() << " Payload size: " << reply->payload().size() << endl; diff --git a/libnymea/coap/coapreply.h b/libnymea/coap/coapreply.h index 0a5a92c7..44b45d25 100644 --- a/libnymea/coap/coapreply.h +++ b/libnymea/coap/coapreply.h @@ -66,7 +66,7 @@ public: CoapPdu::ContentType contentType() const; CoapPdu::MessageType messageType() const; - CoapPdu::StatusCode statusCode() const; + CoapPdu::ReqRspCode reqRspCode() const; private: CoapReply(const CoapRequest &request, QObject *parent = 0); @@ -78,9 +78,9 @@ private: void resend(); - void setContentType(const CoapPdu::ContentType contentType = CoapPdu::TextPlain); - void setMessageType(const CoapPdu::MessageType &messageType); - void setStatusCode(const CoapPdu::StatusCode &statusCode); + void setContentType(CoapPdu::ContentType contentType = CoapPdu::TextPlain); + void setMessageType(CoapPdu::MessageType messageType); + void setReqRspCode(CoapPdu::ReqRspCode reqRspCode); QTimer *m_timer; CoapRequest m_request; @@ -93,20 +93,20 @@ private: CoapPdu::ContentType m_contentType; CoapPdu::MessageType m_messageType; - CoapPdu::StatusCode m_statusCode; + CoapPdu::ReqRspCode m_reqRspCode; // data for the request void setHostAddress(const QHostAddress &address); QHostAddress hostAddress() const; - void setPort(const int &port); + void setPort(int port); int port() const; void setRequestPayload(const QByteArray &requestPayload); QByteArray requestPayload() const; - void setRequestMethod(const CoapPdu::StatusCode &method); - CoapPdu::StatusCode requestMethod() const; + void setRequestMethod(CoapPdu::ReqRspCode method); + CoapPdu::ReqRspCode requestMethod() const; void setRequestData(const QByteArray &requestData); QByteArray requestData() const; @@ -125,7 +125,7 @@ private: QHostAddress m_hostAddress; int m_port; - CoapPdu::StatusCode m_requestMethod; + CoapPdu::ReqRspCode m_requestMethod; QByteArray m_requestPayload; QByteArray m_requestData; bool m_lockedUp; diff --git a/libnymea/coap/coaprequest.cpp b/libnymea/coap/coaprequest.cpp index f47861d6..a4e3dd36 100644 --- a/libnymea/coap/coaprequest.cpp +++ b/libnymea/coap/coaprequest.cpp @@ -44,7 +44,7 @@ CoapRequest::CoapRequest(const QUrl &url) : m_url(url), m_contentType(CoapPdu::TextPlain), m_messageType(CoapPdu::Confirmable), - m_statusCode(CoapPdu::Empty) + m_reqRspCode(CoapPdu::Empty) { } diff --git a/libnymea/coap/coaprequest.h b/libnymea/coap/coaprequest.h index a4fac10e..c7e3d943 100644 --- a/libnymea/coap/coaprequest.h +++ b/libnymea/coap/coaprequest.h @@ -57,7 +57,7 @@ private: QUrl m_url; CoapPdu::ContentType m_contentType; CoapPdu::MessageType m_messageType; - CoapPdu::StatusCode m_statusCode; + CoapPdu::ReqRspCode m_reqRspCode; };