summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIru Dog <mytbk920423@gmail.com>2014-11-06 23:44:14 +0800
committerIru Dog <mytbk920423@gmail.com>2014-11-06 23:44:14 +0800
commit833a96f230cd47e64987a97c88dbf7c132a931ac (patch)
treede675f9d74ed1a44ef965e10809cf204f0dcc609 /src
parent6f0369acf0695b6f3a0e223e87af7e81d0db8b5f (diff)
parentcbb190cd66de3d5af4324b9e6a9416c19b092518 (diff)
downloadfqterm-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.cpp9
-rw-r--r--src/fqterm/main.cpp3
-rw-r--r--src/protocol/fqterm_local_socket.cpp10
-rw-r--r--src/protocol/fqterm_local_socket.h5
-rw-r--r--src/terminal/internal/fqterm_telnet.cpp2
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();
}