fix misinterpretation of notifications with id 0
might happen for hte very first connection after a nymead startup
This commit is contained in:
parent
23800e9f97
commit
377766b043
@ -269,7 +269,7 @@ void JsonRpcClient::dataReceived(const QByteArray &data)
|
|||||||
|
|
||||||
|
|
||||||
// Check if this is the initial handshake
|
// Check if this is the initial handshake
|
||||||
if (dataMap.value("id").toInt() == 0 && dataMap.contains("params")) {
|
if (dataMap.value("id").toInt() == 0 && dataMap.contains("params") && !dataMap.contains("notification")) {
|
||||||
dataMap = dataMap.value("params").toMap();
|
dataMap = dataMap.value("params").toMap();
|
||||||
m_initialSetupRequired = dataMap.value("initialSetupRequired").toBool();
|
m_initialSetupRequired = dataMap.value("initialSetupRequired").toBool();
|
||||||
m_authenticationRequired = dataMap.value("authenticationRequired").toBool();
|
m_authenticationRequired = dataMap.value("authenticationRequired").toBool();
|
||||||
@ -286,6 +286,7 @@ void JsonRpcClient::dataReceived(const QByteArray &data)
|
|||||||
QVersionNumber minimumRequiredVersion = QVersionNumber(1, 0);
|
QVersionNumber minimumRequiredVersion = QVersionNumber(1, 0);
|
||||||
QVersionNumber protocolVersion = QVersionNumber::fromString(protoVersionString);
|
QVersionNumber protocolVersion = QVersionNumber::fromString(protoVersionString);
|
||||||
if (protocolVersion < minimumRequiredVersion) {
|
if (protocolVersion < minimumRequiredVersion) {
|
||||||
|
qWarning() << "Nymea box doesn't support minimum required version. Required:" << minimumRequiredVersion << "Found:" << protocolVersion;
|
||||||
m_connection->disconnect();
|
m_connection->disconnect();
|
||||||
emit invalidProtocolVersion(protocolVersion.toString(), minimumRequiredVersion.toString());
|
emit invalidProtocolVersion(protocolVersion.toString(), minimumRequiredVersion.toString());
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user