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

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:27:17 UTC 2016


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

The following commit has been merged in the master branch:
commit f9bad88aebbff0ef1927dd5c4694e789d42ce22d
Author: Samoilenko Yuri <kinnalru at gmail.com>
Date:   Fri Jan 17 12:57:07 2014 +0400

    using key for auth. A lot of debug outputs
---
 kded/device.cpp                  |  5 +++
 kded/device.h                    |  2 +
 kded/plugins/sftp/sftpplugin.cpp | 94 ++++++++++++++++++++++++++++++++--------
 kded/plugins/sftp/sftpplugin.h   |  3 ++
 4 files changed, 85 insertions(+), 19 deletions(-)

diff --git a/kded/device.cpp b/kded/device.cpp
index 3d5c7a6..3d0566e 100644
--- a/kded/device.cpp
+++ b/kded/device.cpp
@@ -255,6 +255,11 @@ void Device::removeLink(DeviceLink* link)
     }
 }
 
+QString Device::privateKey() const
+{
+    return KSharedConfig::openConfig("kdeconnectrc")->group("myself").readEntry("privateKey");
+}
+
 bool Device::sendPackage(NetworkPackage& np)
 {
     if (np.type() != PACKAGE_TYPE_PAIR && isPaired()) {
diff --git a/kded/device.h b/kded/device.h
index 526b25b..4750a62 100644
--- a/kded/device.h
+++ b/kded/device.h
@@ -83,6 +83,8 @@ public:
     void addLink(const NetworkPackage& identityPackage, DeviceLink*);
     void removeLink(DeviceLink*);
 
+    QString privateKey() const;
+    
     Q_SCRIPTABLE bool isPaired() const { return m_pairStatus==Device::Paired; }
     Q_SCRIPTABLE bool pairRequested() const { return m_pairStatus==Device::Requested; }
 
diff --git a/kded/plugins/sftp/sftpplugin.cpp b/kded/plugins/sftp/sftpplugin.cpp
index 5691e1b..2598777 100644
--- a/kded/plugins/sftp/sftpplugin.cpp
+++ b/kded/plugins/sftp/sftpplugin.cpp
@@ -42,9 +42,8 @@ K_PLUGIN_FACTORY( KdeConnectPluginFactory, registerPlugin< SftpPlugin >(); )
 K_EXPORT_PLUGIN( KdeConnectPluginFactory("kdeconnect_sftp", "kdeconnect_sftp") )
 
 static const char* passwd_c = "sftppassword";
-static const char* mountpoint_c = "sftpmountpoint";
 static const char* timestamp_c = "timestamp";
-static const QSet<QString> fields_c = QSet<QString>() << "ip" << "port" << "user" << "port" << "password" << "path";
+static const QSet<QString> fields_c = QSet<QString>() << "ip" << "port" << "user" << "port" << "path";
 
 inline bool isTimeout(QObject* o, const KConfigGroup& cfg)
 {
@@ -70,7 +69,7 @@ SftpPlugin::SftpPlugin(QObject *parent, const QVariantList &args)
     : KdeConnectPlugin(parent, args)
     , m_d(new Pimpl)
 { 
-    QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents);
+    kDebug(kdeconnect_kded()) << "creating [" << device()->name() << "]...";
     
     m_d->idleTimer = startTimer(20 * 1000);
     
@@ -79,7 +78,17 @@ SftpPlugin::SftpPlugin(QObject *parent, const QVariantList &args)
     //Add KIO entry to Dolphin's Places
     m_d->m_placesModel = new KFilePlacesModel();
     addToDolphin();
+    kDebug(kdeconnect_kded()) << "created [" << device()->name() << "]";
+}
+
+SftpPlugin::~SftpPlugin()
+{
+    kDebug(kdeconnect_kded()) << "destroying [" << device()->name() << "]...";
 
+    QDBusConnection::sessionBus().unregisterObject(dbusPath(), QDBusConnection::UnregisterTree);
+    umount();
+    removeFromDolphin();
+    kDebug(kdeconnect_kded()) << "destroyed [" << device()->name() << "]";
 }
 
 void SftpPlugin::addToDolphin()
@@ -102,18 +111,13 @@ void SftpPlugin::removeFromDolphin()
 
 void SftpPlugin::connected()
 {
-
-}
-
-SftpPlugin::~SftpPlugin()
-{
-    QDBusConnection::sessionBus().unregisterObject(dbusPath(), QDBusConnection::UnregisterTree);
-    umount();
-    removeFromDolphin();
+    kDebug(kdeconnect_kded()) << "exposing DBUS interface: "
+        << QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents);
 }
 
 void SftpPlugin::mount()
 {
+    kDebug(kdeconnect_kded()) << "start mounting device:" << device()->name();
     if (m_d->mountTimer.isActive() || m_d->mountProc)
     {
         return;
@@ -178,6 +182,9 @@ bool SftpPlugin::receivePackage(const NetworkPackage& np)
     connect(m_d->mountProc, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(onFinished(int,QProcess::ExitStatus)));
     connect(m_d->mountProc, SIGNAL(finished(int,QProcess::ExitStatus)), m_d->mountProc, SLOT(deleteLater()));
     
+    connect(m_d->mountProc, SIGNAL(readyReadStandardError()), this, SLOT(readProcessStderr()));
+    connect(m_d->mountProc, SIGNAL(readyReadStandardOutput()), this, SLOT(readProcessStdout()));
+    
     const QString mpoint = mountPoint();
     QDir().mkpath(mpoint);
     
@@ -187,14 +194,13 @@ bool SftpPlugin::receivePackage(const NetworkPackage& np)
             .arg(np.get<QString>("user"))
             .arg(np.get<QString>("ip"))
             .arg(np.get<QString>("path"))
+        << mpoint            
         << "-p" << np.get<QString>("port")
         << "-d"
         << "-f"
-        << "-o" << "password_stdin"
-        << mpoint;
+        << "-o" << "IdentityFile=" + device()->privateKey();
     
     m_d->mountProc->setProgram(program, arguments);
-    m_d->mountProc->setProperty(passwd_c, np.get<QString>("password"));
 
     cleanMountPoint();
     m_d->mountProc->start();
@@ -224,10 +230,9 @@ void SftpPlugin::timerEvent(QTimerEvent* event)
 
 void SftpPlugin::onStarted()
 {
-    m_d->mountProc->setProperty(timestamp_c, QDateTime::currentDateTime());
+    kDebug(kdeconnect_kded()) << qobject_cast<KProcess*>(sender())->program();
     
-    m_d->mountProc->write(m_d->mountProc->property(passwd_c).toString().toLocal8Bit() + "
");
-    m_d->mountProc->closeWriteChannel();
+    m_d->mountProc->setProperty(timestamp_c, QDateTime::currentDateTime());
     
     knotify(KNotification::Notification
         , i18n("Filesystem mounted at %1").arg(mountPoint())
@@ -239,11 +244,13 @@ void SftpPlugin::onStarted()
         m_d->waitForMount = false;
         new KRun(KUrl::fromLocalFile(mountPoint()), 0);
     }
-
 }
 
 void SftpPlugin::onError(QProcess::ProcessError error)
 {
+    kDebug(kdeconnect_kded()) << qobject_cast<KProcess*>(sender())->program(); 
+    kDebug(kdeconnect_kded()) << "ARGS: error=" << error;
+    
     if (error == QProcess::FailedToStart)
     {
         knotify(KNotification::Error
@@ -256,7 +263,8 @@ void SftpPlugin::onError(QProcess::ProcessError error)
 
 void SftpPlugin::onFinished(int exitCode, QProcess::ExitStatus exitStatus)
 {
-    Q_UNUSED(exitCode);
+    kDebug(kdeconnect_kded()) << qobject_cast<KProcess*>(sender())->program();
+    kDebug(kdeconnect_kded()) << "ARGS: exitCode=" << exitCode << " exitStatus=" << exitStatus;
 
     if (exitStatus == QProcess::NormalExit)
     {
@@ -307,3 +315,51 @@ void SftpPlugin::mountTimeout()
     );
 }
 
+void SftpPlugin::readProcessStderr()
+{
+    kError(kdeconnect_kded()) << "sshfs:" << m_d->mountProc->readAllStandardError();
+}
+
+void SftpPlugin::readProcessStdout()
+{
+    m_d->mountProc->setProperty(timestamp_c, QDateTime::currentDateTime());    
+    m_d->mountProc->readAllStandardOutput();
+}
+
+// void SftpPlugin::startAgent()
+// {
+//     m_d->agentProc = new KProcess(this);
+//     m_d->agentProc->setOutputChannelMode(KProcess::SeparateChannels);
+//     connect(m_d->agentProc, SIGNAL(finished(int,QProcess::ExitStatus)), m_d->agentProc, SLOT(deleteLater()));
+//     
+//     m_d->agentProc->setProgram("ssh-agent", QStringList("-c"));
+//     m_d->agentProc->setReadChannel(QProcess::StandardOutput);
+// 
+//     kDebug(kdeconnect_kded()) << "1";
+//     m_d->agentProc->start();
+//     if (!m_d->agentProc->waitForFinished(5000))
+//     {
+//         kDebug(kdeconnect_kded()) << "2";
+//         m_d->agentProc->deleteLater();
+//         return;
+//     }
+//     
+//     kDebug(kdeconnect_kded()) << "3";
+//     m_d->env = QProcessEnvironment::systemEnvironment();
+//     QRegExp envrx("setenv (.*) (.*);");
+//     
+//     kDebug(kdeconnect_kded()) << "4";
+//     QByteArray data = m_d->agentProc->readLine();
+//     kDebug(kdeconnect_kded()) << "line readed:" << data;
+//     if (envrx.indexIn(data) == -1)
+//     {
+//         kError(kdeconnect_kded()) << "can't start ssh-agent";
+//         return;
+//     }
+//     m_d->env.insert(envrx.cap(1), envrx.cap(2));
+// 
+//     KProcess add;
+//     add.setProgram("ssh-add", QStringList() << device()->privateKey());
+//     add.setProcessEnvironment(m_d->env);
+//     add.execute(5000);
+// }
diff --git a/kded/plugins/sftp/sftpplugin.h b/kded/plugins/sftp/sftpplugin.h
index 068b738..9947275 100644
--- a/kded/plugins/sftp/sftpplugin.h
+++ b/kded/plugins/sftp/sftpplugin.h
@@ -64,6 +64,9 @@ private Q_SLOTS:
     void onFinished(int exitCode, QProcess::ExitStatus exitStatus);
     void mountTimeout();
     
+    void readProcessStderr();
+    void readProcessStdout();
+    
 private:
     QString dbusPath() const { return "/modules/kdeconnect/devices/" + device()->id() + "/sftp"; }
     void knotify(int type, const QString& text, const QPixmap& icon) const;

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list