diff options
Diffstat (limited to 'kde-misc/kdeconnect/files/kdeconnect-20.04.3-06-Don-t-brute-force-reading-the-socket.patch')
-rw-r--r-- | kde-misc/kdeconnect/files/kdeconnect-20.04.3-06-Don-t-brute-force-reading-the-socket.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/kde-misc/kdeconnect/files/kdeconnect-20.04.3-06-Don-t-brute-force-reading-the-socket.patch b/kde-misc/kdeconnect/files/kdeconnect-20.04.3-06-Don-t-brute-force-reading-the-socket.patch deleted file mode 100644 index 7bb674a8e8f2..000000000000 --- a/kde-misc/kdeconnect/files/kdeconnect-20.04.3-06-Don-t-brute-force-reading-the-socket.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 721ba9faafb79aac73973410ee1dd3624ded97a5 Mon Sep 17 00:00:00 2001 -From: Aleix Pol <aleixpol@kde.org> -Date: Wed, 16 Sep 2020 02:27:13 +0200 -Subject: [PATCH 06/10] Don't brute-force reading the socket - -The package will arrive eventually, and dataReceived will be emitted. -Otherwise we just end up calling dataReceived to no end. - -Thanks Matthias Gerstner <mgerstner@suse.de> for reporting this. ---- - core/backends/lan/socketlinereader.cpp | 8 ------- - tests/testsocketlinereader.cpp | 31 ++++++++++++++++++++++++-- - 2 files changed, 29 insertions(+), 10 deletions(-) - -diff --git a/core/backends/lan/socketlinereader.cpp b/core/backends/lan/socketlinereader.cpp -index f67fdf3f..da77052a 100644 ---- a/core/backends/lan/socketlinereader.cpp -+++ b/core/backends/lan/socketlinereader.cpp -@@ -38,14 +38,6 @@ void SocketLineReader::dataReceived() - } - } - -- //If we still have things to read from the socket, call dataReceived again -- //We do this manually because we do not trust readyRead to be emitted again -- //So we call this method again just in case. -- if (m_socket->bytesAvailable() > 0) { -- QMetaObject::invokeMethod(this, "dataReceived", Qt::QueuedConnection); -- return; -- } -- - //If we have any packets, tell it to the world. - if (!m_packets.isEmpty()) { - Q_EMIT readyRead(); -diff --git a/tests/testsocketlinereader.cpp b/tests/testsocketlinereader.cpp -index 75584556..b6425b03 100644 ---- a/tests/testsocketlinereader.cpp -+++ b/tests/testsocketlinereader.cpp -@@ -25,16 +25,19 @@ - #include <QProcess> - #include <QEventLoop> - #include <QTimer> -+#include <QSignalSpy> - - class TestSocketLineReader : public QObject - { - Q_OBJECT - public Q_SLOTS: -- void initTestCase(); -+ void init(); -+ void cleanup() { delete m_server; } - void newPacket(); - - private Q_SLOTS: - void socketLineReader(); -+ void badData(); - - private: - QTimer m_timer; -@@ -45,8 +48,9 @@ private: - SocketLineReader* m_reader; - }; - --void TestSocketLineReader::initTestCase() -+void TestSocketLineReader::init() - { -+ m_packets.clear(); - m_server = new Server(this); - - QVERIFY2(m_server->listen(QHostAddress::LocalHost, 8694), "Failed to create local tcp server"); -@@ -97,6 +101,29 @@ void TestSocketLineReader::socketLineReader() - } - } - -+void TestSocketLineReader::badData() -+{ -+ const QList<QByteArray> dataToSend = { "data1\n", "data" }; //does not end in a \n -+ for (const QByteArray& line : qAsConst(dataToSend)) { -+ m_conn->write(line); -+ } -+ m_conn->flush(); -+ -+ QSignalSpy spy(m_server, &QTcpServer::newConnection); -+ QVERIFY(m_server->hasPendingConnections() || spy.wait(1000)); -+ QSslSocket* sock = m_server->nextPendingConnection(); -+ -+ QVERIFY2(sock != nullptr, "Could not open a connection to the client"); -+ -+ m_reader = new SocketLineReader(sock, this); -+ connect(m_reader, &SocketLineReader::readyRead, this, &TestSocketLineReader::newPacket); -+ m_timer.start(); -+ m_loop.exec(); -+ -+ QCOMPARE(m_packets.count(), 1); -+ QCOMPARE(m_packets[0], dataToSend[0]); -+} -+ - void TestSocketLineReader::newPacket() - { - if (!m_reader->bytesAvailable()) { --- -2.28.0 - |