diff options
author | Iru Dog <mytbk920423@gmail.com> | 2014-11-06 23:44:14 +0800 |
---|---|---|
committer | Iru Dog <mytbk920423@gmail.com> | 2014-11-06 23:44:14 +0800 |
commit | 833a96f230cd47e64987a97c88dbf7c132a931ac (patch) | |
tree | de675f9d74ed1a44ef965e10809cf204f0dcc609 /src | |
parent | 6f0369acf0695b6f3a0e223e87af7e81d0db8b5f (diff) | |
parent | cbb190cd66de3d5af4324b9e6a9416c19b092518 (diff) | |
download | fqterm-833a96f230cd47e64987a97c88dbf7c132a931ac.tar.xz |
Merge branch 'master' into local_socket_test
Conflicts:
src/protocol/fqterm_local_socket.cpp
src/terminal/internal/fqterm_telnet.cpp
Diffstat (limited to 'src')
-rw-r--r-- | src/common/fqterm_path.cpp | 9 | ||||
-rw-r--r-- | src/fqterm/main.cpp | 3 | ||||
-rw-r--r-- | src/protocol/fqterm_local_socket.cpp | 10 | ||||
-rw-r--r-- | src/protocol/fqterm_local_socket.h | 5 | ||||
-rw-r--r-- | src/terminal/internal/fqterm_telnet.cpp | 2 |
5 files changed, 20 insertions, 9 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 c062449..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,8 +24,12 @@ FQTermLocalSocket::~FQTermLocalSocket() void FQTermLocalSocket::connectToHost( const QString &host, quint16 port ) { - shell_process_->start("/bin/bash", - 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 758415c..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("/bin/bash"); + socket = new FQTermLocalSocket(); } else { socket = new FQTermTelnetSocket(); } |