diff --git a/.gitignore b/.gitignore index 3ff9010b..107fc6dc 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ tests/auto/devices/testdevices tests/auto/events/testevents tests/auto/jsonrpc/testjsonrpc tests/auto/logging/testlogging +tests/auto/logging/testloggingdirect tests/auto/plugins/testactions tests/auto/restdeviceclasses/restdeviceclasses tests/auto/restdevices/restdevices diff --git a/server/tcpserver.cpp b/server/tcpserver.cpp index 14601c38..ce5a285b 100644 --- a/server/tcpserver.cpp +++ b/server/tcpserver.cpp @@ -221,8 +221,16 @@ void SslServer::onClientDisconnected() void SslServer::onSocketReadyRead() { QSslSocket *socket = static_cast(sender()); - QByteArray data = socket->readAll(); - emit dataAvailable(socket, data); + m_receiveBuffer.append(socket->readAll()); + int splitIndex = m_receiveBuffer.indexOf("}\n{"); + while (splitIndex > -1) { + emit dataAvailable(socket, m_receiveBuffer.left(splitIndex + 1)); + m_receiveBuffer = m_receiveBuffer.right(m_receiveBuffer.length() - splitIndex - 2); + splitIndex = m_receiveBuffer.indexOf("}\n{"); + } + if (m_receiveBuffer.endsWith("}\n")) { + emit dataAvailable(socket, m_receiveBuffer); + } } } diff --git a/server/tcpserver.h b/server/tcpserver.h index db508f78..8a03463b 100644 --- a/server/tcpserver.h +++ b/server/tcpserver.h @@ -65,6 +65,7 @@ private slots: private: bool m_sslEnabled = false; QSslConfiguration m_config; + QByteArray m_receiveBuffer; }; class TcpServer : public TransportInterface