[Chinese-commits] [fqterm] 60/76: local socket: external program setting

Boyuan Yang hosiet-guest at moszumanska.debian.org
Thu Oct 27 03:17:02 UTC 2016


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

hosiet-guest pushed a commit to branch master
in repository fqterm.

commit cbb190cd66de3d5af4324b9e6a9416c19b092518
Author: Iru Dog <mytbk920423 at gmail.com>
Date:   Thu Nov 6 23:42:16 2014 +0800

    local socket: external program setting
---
 src/common/fqterm_path.cpp              | 9 ++++++++-
 src/fqterm/main.cpp                     | 3 +--
 src/protocol/fqterm_local_socket.cpp    | 9 +++++++--
 src/protocol/fqterm_local_socket.h      | 5 +++--
 src/terminal/internal/fqterm_telnet.cpp | 2 +-
 5 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/src/common/fqterm_path.cpp b/src/common/fqterm_path.cpp
index 88ee385..3d192ee 100644
--- a/src/common/fqterm_path.cpp
+++ b/src/common/fqterm_path.cpp
@@ -33,9 +33,10 @@
 #include "fqterm_param.h"
 #include "fqterm_path.h"
 #include "fqterm_font.h"
+#include "../protocol/fqterm_local_socket.h"
 
 namespace FQTerm {
-
+QString* FQTermLocalSocket::shell_bin_ = NULL;
 static QString getUserDataDir();
 static QString getInstallPrefix();
 static QString getResourceDir(const QString &prefix);
@@ -194,6 +195,12 @@ bool iniSettings() {
     return false;
   }
 
+  // fqterm local socket cmdline
+  QString externSSH = conf->getItemValue("global", "externSSH");
+  if (!externSSH.isEmpty()) {
+    FQTermLocalSocket::shell_bin_ = new QString(externSSH);
+  }
+
   delete conf;
   return true;
 }
diff --git a/src/fqterm/main.cpp b/src/fqterm/main.cpp
index 4f8a564..ff984ee 100644
--- a/src/fqterm/main.cpp
+++ b/src/fqterm/main.cpp
@@ -83,7 +83,6 @@
 
 
 
-
 int main(int argc, char **argv) {
 #if defined(WIN32)
 #else
@@ -120,7 +119,7 @@ int main(int argc, char **argv) {
   //                     << dumpNormalString << "\nucs2 " << ucs2.size() << " " << ucs2.at(0).unicode()
   //                     << dumpNormalString << "\nutf8   " << dumpHexString << utf8c;
   //return 0;
-  
+
   if (!iniSettings()) {
     return -1;
   }
diff --git a/src/protocol/fqterm_local_socket.cpp b/src/protocol/fqterm_local_socket.cpp
index e15f8d9..dbfb5b1 100644
--- a/src/protocol/fqterm_local_socket.cpp
+++ b/src/protocol/fqterm_local_socket.cpp
@@ -3,7 +3,7 @@
 
 namespace FQTerm {
 
-FQTermLocalSocket::FQTermLocalSocket( const QString& shell_bin ) : shell_bin_(shell_bin)
+FQTermLocalSocket::FQTermLocalSocket()
 {
   shell_process_ = new QProcess();
   shell_process_->setProcessChannelMode(QProcess::MergedChannels);
@@ -24,7 +24,12 @@ FQTermLocalSocket::~FQTermLocalSocket()
 
 void FQTermLocalSocket::connectToHost( const QString &host, quint16 port )
 {
-  shell_process_->start("", QIODevice::ReadWrite | QIODevice::Unbuffered);
+  if (shell_bin_!=NULL) {
+    shell_process_->start(FQTermLocalSocket::shell_bin_->arg(QString::number(port), host),
+                          QIODevice::ReadWrite | QIODevice::Unbuffered);
+  } else {
+    emit connectionClosed();
+  }
 }
 
 void FQTermLocalSocket::close()
diff --git a/src/protocol/fqterm_local_socket.h b/src/protocol/fqterm_local_socket.h
index 87bd692..edb0bad 100644
--- a/src/protocol/fqterm_local_socket.h
+++ b/src/protocol/fqterm_local_socket.h
@@ -8,10 +8,11 @@ namespace FQTerm {
 class FQTermLocalSocket: public FQTermSocket {
   Q_OBJECT;
 private:
-  QString shell_bin_;
   QProcess* shell_process_;
 public:
-  FQTermLocalSocket(const QString& shell_bin);
+  static QString *shell_bin_;
+
+  FQTermLocalSocket();
   ~FQTermLocalSocket();
   void flush(){}
   void setProxy(int nProxyType, bool bAuth, const QString &strProxyHost,
diff --git a/src/terminal/internal/fqterm_telnet.cpp b/src/terminal/internal/fqterm_telnet.cpp
index c87865a..c629fa8 100644
--- a/src/terminal/internal/fqterm_telnet.cpp
+++ b/src/terminal/internal/fqterm_telnet.cpp
@@ -218,7 +218,7 @@ FQTermTelnet::FQTermTelnet(const QString &strTermType, int rows, int columns,
     FQ_VERIFY(connect(socket, SIGNAL(sshAuthOK()),
 		      this, SIGNAL(onSSHAuthOK())));
   } else if (protocolType == 3) {
-    socket = new FQTermLocalSocket("");
+    socket = new FQTermLocalSocket();
   } else {
     socket = new FQTermTelnetSocket();
   }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/chinese/fqterm.git



More information about the Chinese-commits mailing list