[X2Go-Commits] [x2goclient] 01/01: src/{onmainwindow, sshmasterconnection}.cpp: enable use of SSH proxy configuration with x2goplugin. Fixes: #798.

git-admin at x2go.org git-admin at x2go.org
Fri Mar 20 05:39:50 CET 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch bugfix/x2goplugin-patch
in repository x2goclient.

commit db490c324354a1ae26c8a3b289bc3fb2b4bf4caa
Author: Nicolas Husson <nicolas.husson at tactualities.com>
Date:   Tue Mar 10 06:03:28 2015 +0100

    src/{onmainwindow,sshmasterconnection}.cpp: enable use of SSH proxy configuration with x2goplugin. Fixes: #798.
    
    v2: refactor patch, fix whitespace issues. (Mihai Moldovan)
---
 debian/changelog            |    6 ++
 src/onmainwindow.cpp        |  149 +++++++++++++++++++++++++++++--------------
 src/sshmasterconnection.cpp |    5 +-
 3 files changed, 112 insertions(+), 48 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index f14053e..4f00b77 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -260,6 +260,12 @@ x2goclient (4.0.4.0-0x2go1) UNRELEASED; urgency=low
       correctly: remove the %i flag and replace %c with the application name.
       Fixes: #827.
 
+  [ Nicolas Husson ]
+  * New upstream release (4.0.4.0):
+    - src/{onmainwindow,sshmasterconnection}.cpp: enable use of SSH proxy
+      configuration with x2goplugin. Fixes: #798.
+      + v2: refactor patch, fix whitespace issues. (Mihai Moldovan)
+
  -- X2Go Release Manager <git-admin at x2go.org>  Thu, 19 Feb 2015 13:25:28 +0100
 
 x2goclient (4.0.3.2-0x2go1) unstable; urgency=medium
diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp
index e8c0026..b40f3c0 100644
--- a/src/onmainwindow.cpp
+++ b/src/onmainwindow.cpp
@@ -3300,50 +3300,53 @@ bool ONMainWindow::startSession ( const QString& sid )
         currentKey=findSshKeyForServer(user, host, sshPort);
     }
 
-    useproxy=(st->setting()->value (
-                  sid+"/usesshproxy",
-                  false
-              ).toBool() );
+    if (!embedMode) {
+        useproxy = (st->setting ()->value (sid + "/usesshproxy",
+                                           false).toBool ());
 
-    QString prtype= st->setting()->value (
-                        sid+"/sshproxytype",
-                        "SSH"
-                    ).toString() ;
+        QString prtype = (st->setting ()->value (sid + "/sshproxytype",
+                                                 "SSH").toString ());
+        if (prtype.toLower () == "http") {
+            proxyType = SshMasterConnection::PROXYHTTP;
+        }
+        else {
+            proxyType = SshMasterConnection::PROXYSSH;
+        }
 
-    if(prtype=="HTTP")
-    {
-        proxyType=SshMasterConnection::PROXYHTTP;
-    }
-    else
-    {
-        proxyType=SshMasterConnection::PROXYSSH;
-    }
+        proxylogin = (st->setting ()->value (sid + "/sshproxyuser",
+                                             QString ()).toString ());
 
-    proxylogin=(st->setting()->value (
-                    sid+"/sshproxyuser",
-                    QString()
-                ).toString() );
+        proxyKey = (st->setting ()->value (sid + "/sshproxykeyfile",
+                                           QString ()).toString ());
+        proxyKey = expandHome (proxyKey);
 
-    proxyKey=(st->setting()->value (
-                  sid+"/sshproxykeyfile",
-                  QString()
-              ).toString() );
-    proxyKey=expandHome(proxyKey);
+        proxyserver = (st->setting ()->value (sid + "/sshproxyhost",
+                                              QString ()).toString ());
 
-    proxyserver=(st->setting()->value (
-                     sid+"/sshproxyhost",
-                     QString()
-                 ).toString() );
+        proxyport = (st->setting ()->value (sid + "/sshproxyport",
+                                            22).toInt ());
 
-    proxyport=(st->setting()->value (
-                   sid+"/sshproxyport",
-                   22
-               ).toInt() );
-    if(proxyserver.indexOf(":")!=-1)
-    {
-        QStringList parts=proxyserver.split(":");
-        proxyserver=parts[0];
-        proxyport=parts[1].toInt();
+        proxyAutologin = (st->setting ()->value (sid + "/sshproxyautologin",
+                                                 false).toBool ());
+
+        proxyKrbLogin = (st->setting ()->value (sid + "/sshproxykrblogin",
+                                                false).toBool ());
+    }
+    else {
+        useproxy = config.useproxy;
+        proxyType = config.proxyType;
+        proxylogin = config.proxylogin;
+        proxyKey = config.proxyKey;
+        proxyserver = config.proxyserver;
+        proxyport = config.proxyport;
+        proxyAutologin = config.proxyAutologin;
+        proxyKrbLogin = config.proxyKrbLogin;
+    }
+
+    if (proxyserver.indexOf (":") != -1) {
+        QStringList parts = proxyserver.split (":");
+        proxyserver = parts[0];
+        proxyport = parts[1].toInt ();
     }
 
     bool proxySamePass=(st->setting()->value (
@@ -3354,15 +3357,6 @@ bool ONMainWindow::startSession ( const QString& sid )
                             sid+"/sshproxysameuser",
                             false
                         ).toBool() );
-    proxyAutologin=(st->setting()->value (
-                        sid+"/sshproxyautologin",
-                        false
-                    ).toBool() );
-
-    proxyKrbLogin=(st->setting()->value (
-                       sid+"/sshproxykrblogin",
-                       false
-                   ).toBool() );
 
     if(proxyKey.length()<=0 && proxyType==SshMasterConnection::PROXYSSH)
     {
@@ -10749,6 +10743,67 @@ void ONMainWindow::processCfgLine ( QString line )
         config.connectionts=lst[1];
         return;
     }
+    if (lst[0] == "usesshproxy")
+    {
+        config.useproxy = true;
+        if (lst[1].toLower () == "true") {
+          config.useproxy = true;
+        }
+        else {
+          config.useproxy = false;
+        }
+        return;
+    }
+    if (lst[0] == "sshproxytype")
+    {
+        if (lst[1].toLower () == "http") {
+            config.proxyType = SshMasterConnection::PROXYHTTP;
+        }
+        else {
+            config.proxyType = SshMasterConnection::PROXYSSH;
+        }
+        return;
+    }
+    if (lst[0] == "sshproxyuser")
+    {
+        config.proxylogin = lst[1];
+        return;
+    }
+    if (lst[0] == "sshproxyhost")
+    {
+        config.proxyserver = lst[1];
+        return;
+    }
+    if (lst[0] == "sshproxyport")
+    {
+        config.proxyport = lst[1].toInt ();
+        return;
+    }
+    if (lst[0] == "sshproxyautologin")
+    {
+        if (lst[1].toLower () == "true") {
+            config.proxyAutologin = true;
+        }
+        else {
+            config.proxyAutologin = false;
+        }
+        return;
+    }
+    if (lst[0] == "sshproxykrblogin")
+    {
+        if (lst[1].toLower () == "true") {
+            config.proxyKrbLogin = true;
+        }
+        else {
+            config.proxyKrbLogin = false;
+        }
+        return;
+    }
+    if (lst[0] == "sshproxykeyfile")
+    {
+        config.proxyKey = lst[1];
+        return;
+    }
 }
 
 void ONMainWindow::slotChangeKbdLayout(const QString& layout)
diff --git a/src/sshmasterconnection.cpp b/src/sshmasterconnection.cpp
index e9a7008..1e11c62 100644
--- a/src/sshmasterconnection.cpp
+++ b/src/sshmasterconnection.cpp
@@ -165,6 +165,9 @@ SshMasterConnection::SshMasterConnection (QObject* parent, QString host, int por
 
     breakLoop=false;
     kerberosDelegation=false;
+    x2goDebug << "SshMasterConnection, host " << host << "port " << port << "user " << user
+              << "useproxy " << useproxy << "proxyserver " << proxyserver
+              << "proxyport " << proxyport;
     this->host=host;
     this->port=port;
     this->user=user;
@@ -443,7 +446,7 @@ void SshMasterConnection::run()
 #endif
     if(useproxy && proxytype==PROXYSSH)
     {
-
+        x2goDebug << "proxyserver: " << proxyserver << "proxyport: " << proxyport << "proxylogin: " << proxylogin;
         sshProxy=new SshMasterConnection (0, proxyserver, proxyport,acceptUnknownServers,
                                           proxylogin, proxypassword, proxykey, proxyautologin, proxyKrbLogin, false);
         connect ( sshProxy, SIGNAL ( connectionOk(QString) ), this, SLOT ( slotSshProxyConnectionOk() ) );

--
Alioth's /srv/git/code.x2go.org/x2goclient.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list