[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:28:03 UTC 2016


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

The following commit has been merged in the master branch:
commit ddb9190fbeee9c8533c9eeabb66f6967ac59a550
Author: Albert Vaca <albertvaka at gmail.com>
Date:   Fri Oct 10 11:26:50 2014 -0700

    More robust fix to problem with device ids being non exportable on dbus
---
 core/CMakeLists.txt                                |  1 +
 core/backends/lan/lanlinkprovider.cpp              |  9 ++++++---
 core/daemon.cpp                                    |  4 ++--
 core/{backends/linkprovider.cpp => dbushelper.cpp} | 15 +++++++++++----
 core/{backends/linkprovider.cpp => dbushelper.h}   | 12 +++++++-----
 core/networkpackage.cpp                            | 17 ++++++++---------
 6 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
index e71074c..e165a36 100644
--- a/core/CMakeLists.txt
+++ b/core/CMakeLists.txt
@@ -23,6 +23,7 @@ set(kded_kdeconnect_SRCS
     kdeconnectplugin.cpp
     pluginloader.cpp
 
+    dbushelper.cpp
     networkpackage.cpp
     filetransferjob.cpp
     daemon.cpp
diff --git a/core/backends/lan/lanlinkprovider.cpp b/core/backends/lan/lanlinkprovider.cpp
index 22dcb04..0d71d39 100644
--- a/core/backends/lan/lanlinkprovider.cpp
+++ b/core/backends/lan/lanlinkprovider.cpp
@@ -29,6 +29,9 @@
 #include <QTcpServer>
 #include <QUdpSocket>
 
+#include <KSharedConfig>
+#include <KConfigGroup>
+
 #include "../../kdebugnamespace.h"
 #include "landevicelink.h"
 
@@ -129,11 +132,11 @@ void LanLinkProvider::newUdpConnection()
             delete receivedPackage;
         }
 
-        NetworkPackage np2("");
-        NetworkPackage::createIdentityPackage(&np2);
+        KSharedConfigPtr config = KSharedConfig::openConfig("kdeconnectrc");
+        const QString myId = config->group("myself").readEntry<QString>("id","");
 
-        if (receivedPackage->get<QString>("deviceId") == np2.get<QString>("deviceId")) {
             //kDebug(debugArea()) << "Ignoring my own broadcast";
+        if (receivedPackage->get<QString>("deviceId") == myId) {
             return;
         }
 
diff --git a/core/daemon.cpp b/core/daemon.cpp
index 3f917d9..e2a8b35 100644
--- a/core/daemon.cpp
+++ b/core/daemon.cpp
@@ -33,6 +33,7 @@
 #include <KConfigGroup>
 #include <KStandardDirs>
 
+#include "dbushelper.h"
 #include "kdebugnamespace.h"
 #include "networkpackage.h"
 #include "backends/lan/lanlinkprovider.h"
@@ -68,8 +69,7 @@ Daemon::Daemon(QObject *parent)
 
     if (!config->group("myself").hasKey("id")) {
         QString uuid = QUuid::createUuid().toString();
-        //uuids contain charcaters that are not exportable in dbus paths
-        uuid = uuid.mid(1, uuid.length() - 2).replace("-", "_");
+        DbusHelper::filterNonExportableCharacters(uuid);
         config->group("myself").writeEntry("id", uuid);
         config->sync();
         kDebug(debugArea()) << "My id:" << uuid;
diff --git a/core/backends/linkprovider.cpp b/core/dbushelper.cpp
similarity index 74%
copy from core/backends/linkprovider.cpp
copy to core/dbushelper.cpp
index 1d6c0bf..14f4d35 100644
--- a/core/backends/linkprovider.cpp
+++ b/core/dbushelper.cpp
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Albert Vaca <albertvaka at gmail.com>
+ * Copyright 2014 Albert Vaca <albertvaka at gmail.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -18,10 +18,17 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "linkprovider.h"
+#include "dbushelper.h"
 
-LinkProvider::LinkProvider()
+#include <QRegExp>
+#include <kdebug.h>
+
+namespace DbusHelper {
+
+void filterNonExportableCharacters(QString& s)
 {
-    //gcc complains if we don't add something to compile on a class with virtual functions
+    static QRegExp regexp("[^A-Za-z0-9_]", Qt::CaseSensitive, QRegExp::Wildcard);
+    s.replace(regexp,"_");
 }
 
+}
\ No newline at end of file
diff --git a/core/backends/linkprovider.cpp b/core/dbushelper.h
similarity index 79%
copy from core/backends/linkprovider.cpp
copy to core/dbushelper.h
index 1d6c0bf..43b2286 100644
--- a/core/backends/linkprovider.cpp
+++ b/core/dbushelper.h
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Albert Vaca <albertvaka at gmail.com>
+ * Copyright 2014 Albert Vaca <albertvaka at gmail.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -18,10 +18,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "linkprovider.h"
+#ifndef KDECONNECT_DBUSHELPER_H
+#define KDECONNECT_DBUSHELPER_H
+#include <QString>
 
-LinkProvider::LinkProvider()
-{
-    //gcc complains if we don't add something to compile on a class with virtual functions
+namespace DbusHelper {
+    void filterNonExportableCharacters(QString& s);
 }
 
+#endif
\ No newline at end of file
diff --git a/core/networkpackage.cpp b/core/networkpackage.cpp
index 749a1a4..57a5f2b 100644
--- a/core/networkpackage.cpp
+++ b/core/networkpackage.cpp
@@ -32,6 +32,7 @@
 #include <qjson/serializer.h>
 #include <qjson/qobjecthelper.h>
 
+#include "dbushelper.h"
 #include "filetransferjob.h"
 #include "pluginloader.h"
 
@@ -120,15 +121,13 @@ bool NetworkPackage::unserialize(const QByteArray& a, NetworkPackage* np)
     }
     np->mPayloadTransferInfo = variant["payloadTransferInfo"].toMap(); //Will return an empty qvariantmap if was not present, which is ok
 
-    //uuids contain charcaters that are not exportable in dbus paths
-    np->mId = np->mId.mid(1, np->mId.length() - 2).replace("-", "_");
-
-	if (np->mBody.contains("deviceId"))
-	{
-		QString deviceId = np->get<QString>("deviceId");
-		deviceId = deviceId.mid(1, deviceId.length() - 2).replace("-", "_");
-		np->set("deviceId", deviceId);
-	}
+    //Ids containing characters that are not allowed as dbus paths would make app crash
+    if (np->mBody.contains("deviceId"))
+    {
+        QString deviceId = np->get<QString>("deviceId");
+        DbusHelper::filterNonExportableCharacters(deviceId);
+        np->set("deviceId", deviceId);
+    }
 
     return true;
 

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list