aboutsummaryrefslogtreecommitdiff
path: root/deskutils/kdeconnect-kde/files/patch-core_backends_lan_lanlinkprovider.cpp
blob: 1d7ee57c379e9fbcd0c433d2d2b63ee9bc895fa0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- core/backends/lan/lanlinkprovider.cpp.orig	2018-05-30 21:41:03 UTC
+++ core/backends/lan/lanlinkprovider.cpp
@@ -196,6 +196,17 @@ void LanLinkProvider::newUdpConnection() //udpBroadcas
 
         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;
+            }
+        }
+
         //qCDebug(KDECONNECT_CORE) << "Received Udp identity packet from" << sender << " asking for a tcp connection on port " << tcpPort;
 
         QSslSocket* socket = new QSslSocket(this);