[SCM] kdeconnect packaging branch, master, updated. upstream/1.0.1-206-gf661872

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 18:27:09 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=f845b33

The following commit has been merged in the master branch:
commit f845b33392c502ff8fef097e9bb4b1f2e912ebff
Author: Albert Vaca <albertvaka at gmail.com>
Date:   Sun Nov 20 04:24:28 2016 +0100

    Fixed bug on Windows
---
 core/backends/lan/lanlinkprovider.cpp | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/core/backends/lan/lanlinkprovider.cpp b/core/backends/lan/lanlinkprovider.cpp
index a1f994e..be050ef 100644
--- a/core/backends/lan/lanlinkprovider.cpp
+++ b/core/backends/lan/lanlinkprovider.cpp
@@ -125,10 +125,35 @@ void LanLinkProvider::broadcastToNetwork()
     Q_ASSERT(mTcpPort != 0);
 
     qCDebug(KDECONNECT_CORE()) << "Broadcasting identity packet";
+
+    QHostAddress destAddress = mTestMode? QHostAddress::LocalHost : QHostAddress("255.255.255.255");
+
     NetworkPackage np("");
     NetworkPackage::createIdentityPackage(&np);
     np.set("tcpPort", mTcpPort);
-    mUdpSocket.writeDatagram(np.serialize(), mTestMode ? QHostAddress::LocalHost : QHostAddress("255.255.255.255"), PORT);
+
+#ifdef Q_OS_WIN
+    //On Windows we need to broadcast from every local IP address to reach all networks
+    QUdpSocket sendSocket;
+    for (const QNetworkInterface &iface : QNetworkInterface::allInterfaces()) {
+        if ( (iface.flags() & QNetworkInterface::IsUp)
+          && (iface.flags() & QNetworkInterface::IsRunning)
+          && (iface.flags() & QNetworkInterface::CanBroadcast)) {
+            for (const QNetworkAddressEntry &ifaceAddress : iface.addressEntries()) {
+                QHostAddress sourceAddress = ifaceAddress.ip();
+                if (sourceAddress.protocol() == QAbstractSocket::IPv4Protocol && sourceAddress != QHostAddress::LocalHost) {
+                    qCDebug(KDECONNECT_CORE()) << "Broadcasting as" << sourceAddress;
+                    sendSocket.bind(sourceAddress, PORT);
+                    sendSocket.writeDatagram(np.serialize(), destAddress, PORT);
+                    sendSocket.close();
+                }
+            }
+        }
+    }
+#else
+    mUdpSocket.writeDatagram(np.serialize(), destAddress, PORT);
+#endif
+
 }
 
 //I'm the existing device, a new device is kindly introducing itself.

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list