[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