diff options
Diffstat (limited to 'deskutils/kdeconnect-kde/files')
| -rw-r--r-- | deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp | 45 | ||||
| -rw-r--r-- | deskutils/kdeconnect-kde/files/patch-plugins_sftp_mounter.cpp | 6 |
2 files changed, 19 insertions, 32 deletions
diff --git a/deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp b/deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp index 9fb5f425bff6..61b97c9f081a 100644 --- a/deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp +++ b/deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp @@ -1,32 +1,19 @@ ---- core/backends/lan/lanlinkprovider.cpp.orig 2025-11-01 18:19:03 UTC +--- core/backends/lan/lanlinkprovider.cpp.orig 2025-12-03 23:06:29 UTC +++ core/backends/lan/lanlinkprovider.cpp -@@ -427,6 +427,7 @@ void LanLinkProvider::encrypted() +@@ -303,6 +303,16 @@ void LanLinkProvider::udpBroadcastReceived() + m_lastConnectionTime[deviceId] = now; - NetworkPacket *identityPacket = m_receivedIdentityPackets[socket].np; - -+ QString deviceId = identityPacket->get<QString>(QStringLiteral("deviceId")); - int protocolVersion = identityPacket->get<int>(QStringLiteral("protocolVersion"), -1); - if (protocolVersion >= 8) { - disconnect(socket, &QObject::destroyed, nullptr, nullptr); -@@ -435,7 +436,7 @@ void LanLinkProvider::encrypted() - NetworkPacket myIdentity = KdeConnectConfig::instance().deviceInfo().toIdentityPacket(); - socket->write(myIdentity.serialize()); - socket->flush(); -- connect(socket, &QIODevice::readyRead, this, [this, socket, protocolVersion]() { -+ connect(socket, &QIODevice::readyRead, this, [this, socket, protocolVersion, deviceId]() { - if (!socket->canReadLine()) { - // This can happen if the packet is large enough to be split in two chunks - return; -@@ -452,6 +453,12 @@ void LanLinkProvider::encrypted() - int newProtocolVersion = secureIdentityPacket->get<int>(QStringLiteral("protocolVersion"), 0); - if (newProtocolVersion != protocolVersion) { - qCWarning(KDECONNECT_CORE) << "Protocol version changed half-way through the handshake:" << protocolVersion << "->" << newProtocolVersion; -+ return; + int tcpPort = receivedPacket->get<int>(QStringLiteral("tcpPort")); ++ // convert IPv6 addresses of type "v4-mapped" to IPv4 ++ QHostAddress addr = sender; ++ if (addr.protocol() == QAbstractSocket::IPv6Protocol) { ++ bool success; ++ QHostAddress convertedAddr = QHostAddress(addr.toIPv4Address(&success)); ++ if (success) { ++ // qCDebug(KDECONNECT_CORE) << "Converting IPv6" << addr << "to IPv4" << convertedAddr; ++ sender = convertedAddr; + } -+ QString newDeviceId = secureIdentityPacket->get<QString>(QStringLiteral("deviceId")); -+ if (newDeviceId != deviceId) { -+ qCWarning(KDECONNECT_CORE) << "Device ID changed half-way through the handshake:" << deviceId << "->" << newDeviceId; -+ return; - } - DeviceInfo deviceInfo = DeviceInfo::FromIdentityPacketAndCert(*secureIdentityPacket, socket->peerCertificate()); - ++ } + if (tcpPort < MIN_TCP_PORT || tcpPort > MAX_TCP_PORT) { + qCDebug(KDECONNECT_CORE) << "TCP port outside of kdeconnect's range"; + delete receivedPacket; diff --git a/deskutils/kdeconnect-kde/files/patch-plugins_sftp_mounter.cpp b/deskutils/kdeconnect-kde/files/patch-plugins_sftp_mounter.cpp index 5554b24703e9..abdb880a32f4 100644 --- a/deskutils/kdeconnect-kde/files/patch-plugins_sftp_mounter.cpp +++ b/deskutils/kdeconnect-kde/files/patch-plugins_sftp_mounter.cpp @@ -1,6 +1,6 @@ ---- plugins/sftp/mounter.cpp.orig 2023-12-18 22:14:59 UTC +--- plugins/sftp/mounter.cpp.orig 2025-12-03 23:06:29 UTC +++ plugins/sftp/mounter.cpp -@@ -128,7 +128,7 @@ void Mounter::onPacketReceived(const NetworkPacket &np +@@ -102,7 +102,7 @@ void Mounter::onPacketReceived(const NetworkPacket &np << QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid()) << QStringLiteral("-o") << QStringLiteral("reconnect") << QStringLiteral("-o") << QStringLiteral("ServerAliveInterval=30") @@ -9,7 +9,7 @@ // clang-format on m_proc->setProgram(program, arguments); -@@ -137,8 +137,8 @@ void Mounter::onPacketReceived(const NetworkPacket &np +@@ -111,8 +111,8 @@ void Mounter::onPacketReceived(const NetworkPacket &np m_proc->start(); // qCDebug(KDECONNECT_PLUGIN_SFTP) << "Passing password: " << np.get<QString>("password").toLatin1(); |
