summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/protocol/CMakeLists.txt4
-rw-r--r--src/protocol/fqterm_local_socket.cpp81
-rw-r--r--src/protocol/fqterm_local_socket.h34
-rw-r--r--src/protocol/fqterm_socket.cpp129
-rw-r--r--src/protocol/fqterm_socket.h44
-rw-r--r--src/protocol/fqterm_telnet_socket.cpp55
-rw-r--r--src/protocol/fqterm_telnet_socket.h26
-rw-r--r--src/terminal/internal/fqterm_telnet.cpp2
8 files changed, 202 insertions, 173 deletions
diff --git a/src/protocol/CMakeLists.txt b/src/protocol/CMakeLists.txt
index c515590..fd0f9c9 100644
--- a/src/protocol/CMakeLists.txt
+++ b/src/protocol/CMakeLists.txt
@@ -1,6 +1,10 @@
set(export_SRCS
fqterm_socket.cpp
fqterm_socket.h
+ fqterm_telnet_socket.cpp
+ fqterm_telnet_socket.h
+ fqterm_local_socket.cpp
+ fqterm_local_socket.h
fqterm_ssh_socket.h
fqterm_ssh_socket.cpp
)
diff --git a/src/protocol/fqterm_local_socket.cpp b/src/protocol/fqterm_local_socket.cpp
new file mode 100644
index 0000000..e15f8d9
--- /dev/null
+++ b/src/protocol/fqterm_local_socket.cpp
@@ -0,0 +1,81 @@
+#include "fqterm.h"
+#include "fqterm_local_socket.h"
+
+namespace FQTerm {
+
+FQTermLocalSocket::FQTermLocalSocket( const QString& shell_bin ) : shell_bin_(shell_bin)
+{
+ shell_process_ = new QProcess();
+ shell_process_->setProcessChannelMode(QProcess::MergedChannels);
+ FQ_VERIFY(connect(shell_process_, SIGNAL(started()), this, SIGNAL(connected())));
+ FQ_VERIFY(connect(shell_process_, SIGNAL(stateChanged(QProcess::ProcessState)), this , SLOT(stateChanged(QProcess::ProcessState))));
+ FQ_VERIFY(connect(shell_process_, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(finished(int, QProcess::ExitStatus))));
+ //FQ_VERIFY(connect(shell_process_, SIGNAL(delayedCloseFinished()), this, SIGNAL(delayedCloseFinished())));
+ FQ_VERIFY(connect(shell_process_, SIGNAL(readyRead()), this, SIGNAL(readyRead())));
+ //TODO: Error
+ //FQ_VERIFY(connect(shell_process_, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError))));
+ //FQ_VERIFY(connect(shell_process_, SIGNAL(socketState(int)), this, SIGNAL(socketState(int))));
+}
+
+FQTermLocalSocket::~FQTermLocalSocket()
+{
+ delete shell_process_;
+}
+
+void FQTermLocalSocket::connectToHost( const QString &host, quint16 port )
+{
+ shell_process_->start("", QIODevice::ReadWrite | QIODevice::Unbuffered);
+}
+
+void FQTermLocalSocket::close()
+{
+ shell_process_->close();
+}
+
+QByteArray FQTermLocalSocket::readBlock( unsigned long maxlen )
+{
+ return shell_process_->read(maxlen);
+}
+
+long FQTermLocalSocket::writeBlock( const QByteArray &data )
+{
+ int count = shell_process_->write(data);
+
+ //char c;
+// shell_process_->getChar(&c);
+// shell_process_->ungetChar(c);
+ if (bytesAvailable())
+ {
+ emit readyRead();
+ }
+ return count;
+}
+
+unsigned long FQTermLocalSocket::bytesAvailable()
+{
+ return shell_process_->bytesAvailable();
+}
+
+void FQTermLocalSocket::finished( int exitCode, QProcess::ExitStatus exitStatus )
+{
+ emit connectionClosed();
+}
+void FQTermLocalSocket::stateChanged(QProcess::ProcessState newState)
+{
+ switch(newState)
+ {
+ case QProcess::NotRunning:
+ break;
+ case QProcess::Starting:
+ emit hostFound();
+ // shell_process_->write("dir\n");
+ break;
+ case QProcess::Running:
+ break;
+
+ }
+}
+
+}
+
+#include "fqterm_local_socket.moc"
diff --git a/src/protocol/fqterm_local_socket.h b/src/protocol/fqterm_local_socket.h
new file mode 100644
index 0000000..87bd692
--- /dev/null
+++ b/src/protocol/fqterm_local_socket.h
@@ -0,0 +1,34 @@
+#ifndef FQTERM_LOCAL_SOCKET_H
+#define FQTERM_LOCAL_SOCKET_H
+
+#include "fqterm_socket.h"
+
+namespace FQTerm {
+
+class FQTermLocalSocket: public FQTermSocket {
+ Q_OBJECT;
+private:
+ QString shell_bin_;
+ QProcess* shell_process_;
+public:
+ FQTermLocalSocket(const QString& shell_bin);
+ ~FQTermLocalSocket();
+ void flush(){}
+ void setProxy(int nProxyType, bool bAuth, const QString &strProxyHost,
+ quint16 uProxyPort, const QString &strProxyUsr,
+ const QString &strProxyPwd){}
+ void connectToHost(const QString &host, quint16 port);
+ void close();
+ QByteArray readBlock(unsigned long maxlen);
+ long writeBlock(const QByteArray &data);
+ unsigned long bytesAvailable();
+
+public slots:
+ void stateChanged(QProcess::ProcessState newState);
+ void finished (int exitCode, QProcess::ExitStatus exitStatus);
+
+};
+
+}
+
+#endif
diff --git a/src/protocol/fqterm_socket.cpp b/src/protocol/fqterm_socket.cpp
index 131044a..87d0bc3 100644
--- a/src/protocol/fqterm_socket.cpp
+++ b/src/protocol/fqterm_socket.cpp
@@ -538,135 +538,6 @@ static int parse_http_status_line(const char *line, const char
}
-//==============================================================================
-//FQTermTelnetSocket
-//==============================================================================
-
-FQTermTelnetSocket::FQTermTelnetSocket()
- : FQTermSocket() {
- private_socket_ = new FQTermSocketPrivate();
- FQ_VERIFY(connect(private_socket_, SIGNAL(connected()), this, SIGNAL(connected())));
- FQ_VERIFY(connect(private_socket_, SIGNAL(hostFound()), this, SIGNAL(hostFound())));
- FQ_VERIFY(connect(private_socket_, SIGNAL(connectionClosed()), this, SIGNAL(connectionClosed())));
- FQ_VERIFY(connect(private_socket_, SIGNAL(delayedCloseFinished()),
- this, SIGNAL(delayedCloseFinished())));
- FQ_VERIFY(connect(private_socket_, SIGNAL(readyRead()), this, SIGNAL(readyRead())));
- FQ_VERIFY(connect(private_socket_, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError))));
- FQ_VERIFY(connect(private_socket_, SIGNAL(socketState(int)), this, SIGNAL(socketState(int))));
-}
-
-FQTermTelnetSocket::~FQTermTelnetSocket() {
- delete private_socket_;
-}
-
-void FQTermTelnetSocket::flush() {
- private_socket_->flush();
-}
-
-void FQTermTelnetSocket::setProxy(int nProxyType, bool bAuth,
- const QString &strProxyHost,
- quint16 uProxyPort,
- const QString &strProxyUsr,
- const QString &strProxyPwd) {
- private_socket_->setProxy(nProxyType, bAuth, strProxyHost, uProxyPort, strProxyUsr,
- strProxyPwd);
-}
-
-void FQTermTelnetSocket::connectToHost(const QString &host, quint16 port) {
- private_socket_->connectToHost(host, port);
-}
-
-void FQTermTelnetSocket::close() {
- private_socket_->close();
-}
-
-QByteArray FQTermTelnetSocket::readBlock(unsigned long maxlen) {
- return private_socket_->readBlock(maxlen);
-}
-
-long FQTermTelnetSocket::writeBlock(const QByteArray &data) {
- return private_socket_->writeBlock(data);
-}
-
-unsigned long FQTermTelnetSocket::bytesAvailable() {
- return private_socket_->bytesAvailable();
-}
-
-
-FQTermLocalSocket::FQTermLocalSocket( const QString& shell_bin ) : shell_bin_(shell_bin)
-{
- shell_process_ = new QProcess();
- shell_process_->setProcessChannelMode(QProcess::MergedChannels);
- FQ_VERIFY(connect(shell_process_, SIGNAL(started()), this, SIGNAL(connected())));
- FQ_VERIFY(connect(shell_process_, SIGNAL(stateChanged(QProcess::ProcessState)), this , SLOT(stateChanged(QProcess::ProcessState))));
- FQ_VERIFY(connect(shell_process_, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(finished(int, QProcess::ExitStatus))));
- //FQ_VERIFY(connect(shell_process_, SIGNAL(delayedCloseFinished()), this, SIGNAL(delayedCloseFinished())));
- FQ_VERIFY(connect(shell_process_, SIGNAL(readyRead()), this, SIGNAL(readyRead())));
- //TODO: Error
- //FQ_VERIFY(connect(shell_process_, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError))));
- //FQ_VERIFY(connect(shell_process_, SIGNAL(socketState(int)), this, SIGNAL(socketState(int))));
-}
-
-FQTermLocalSocket::~FQTermLocalSocket()
-{
- delete shell_process_;
-}
-
-void FQTermLocalSocket::connectToHost( const QString &host, quint16 port )
-{
- shell_process_->start("E:/yxl/test.exe"/*C:/Windows/System32/cmd.exeshell_bin*/, QIODevice::ReadWrite | QIODevice::Unbuffered);
-}
-
-void FQTermLocalSocket::close()
-{
- shell_process_->close();
-}
-
-QByteArray FQTermLocalSocket::readBlock( unsigned long maxlen )
-{
- return shell_process_->read(maxlen);
-}
-
-long FQTermLocalSocket::writeBlock( const QByteArray &data )
-{
- int count = shell_process_->write(data);
-
- //char c;
-// shell_process_->getChar(&c);
-// shell_process_->ungetChar(c);
- if (bytesAvailable())
- {
- emit readyRead();
- }
- return count;
-}
-
-unsigned long FQTermLocalSocket::bytesAvailable()
-{
- return shell_process_->bytesAvailable();
-}
-
-void FQTermLocalSocket::finished( int exitCode, QProcess::ExitStatus exitStatus )
-{
- emit connectionClosed();
-}
-void FQTermLocalSocket::stateChanged(QProcess::ProcessState newState)
-{
- switch(newState)
- {
- case QProcess::NotRunning:
- break;
- case QProcess::Starting:
- emit hostFound();
- shell_process_->write("dir\n");
- break;
- case QProcess::Running:
- break;
-
- }
-}
-
-
} // namespace FQTerm
#include "fqterm_socket.moc"
diff --git a/src/protocol/fqterm_socket.h b/src/protocol/fqterm_socket.h
index 2d6240b..11112c3 100644
--- a/src/protocol/fqterm_socket.h
+++ b/src/protocol/fqterm_socket.h
@@ -146,50 +146,6 @@ class FQTermSocket: public QObject {
void requestUserPwd(QString *user, QString *pwd, bool *isOK);
};
-class FQTermTelnetSocket: public FQTermSocket {
- private:
- FQTermSocketPrivate *private_socket_;
-
- public:
- FQTermTelnetSocket();
-
- ~FQTermTelnetSocket();
-
- void flush();
- void setProxy(int nProxyType, bool bAuth, const QString &strProxyHost,
- quint16 uProxyPort, const QString &strProxyUsr,
- const QString &strProxyPwd);
- void connectToHost(const QString &host, quint16 port);
- void close();
- QByteArray readBlock(unsigned long maxlen);
- long writeBlock(const QByteArray &data);
- unsigned long bytesAvailable();
-};
-
-class FQTermLocalSocket: public FQTermSocket {
- Q_OBJECT;
-private:
- QString shell_bin_;
- QProcess* shell_process_;
-public:
- FQTermLocalSocket(const QString& shell_bin);
- ~FQTermLocalSocket();
- void flush(){}
- void setProxy(int nProxyType, bool bAuth, const QString &strProxyHost,
- quint16 uProxyPort, const QString &strProxyUsr,
- const QString &strProxyPwd){}
- void connectToHost(const QString &host, quint16 port);
- void close();
- QByteArray readBlock(unsigned long maxlen);
- long writeBlock(const QByteArray &data);
- unsigned long bytesAvailable();
-
-public slots:
- void stateChanged(QProcess::ProcessState newState);
- void finished (int exitCode, QProcess::ExitStatus exitStatus);
-};
-
-
} // namespace FQTerm
diff --git a/src/protocol/fqterm_telnet_socket.cpp b/src/protocol/fqterm_telnet_socket.cpp
new file mode 100644
index 0000000..af04a8c
--- /dev/null
+++ b/src/protocol/fqterm_telnet_socket.cpp
@@ -0,0 +1,55 @@
+#include "fqterm.h"
+#include "fqterm_telnet_socket.h"
+
+namespace FQTerm {
+FQTermTelnetSocket::FQTermTelnetSocket()
+ : FQTermSocket() {
+ private_socket_ = new FQTermSocketPrivate();
+ FQ_VERIFY(connect(private_socket_, SIGNAL(connected()), this, SIGNAL(connected())));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(hostFound()), this, SIGNAL(hostFound())));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(connectionClosed()), this, SIGNAL(connectionClosed())));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(delayedCloseFinished()),
+ this, SIGNAL(delayedCloseFinished())));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(readyRead()), this, SIGNAL(readyRead())));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError))));
+ FQ_VERIFY(connect(private_socket_, SIGNAL(socketState(int)), this, SIGNAL(socketState(int))));
+}
+
+FQTermTelnetSocket::~FQTermTelnetSocket() {
+ delete private_socket_;
+}
+
+void FQTermTelnetSocket::flush() {
+ private_socket_->flush();
+}
+
+void FQTermTelnetSocket::setProxy(int nProxyType, bool bAuth,
+ const QString &strProxyHost,
+ quint16 uProxyPort,
+ const QString &strProxyUsr,
+ const QString &strProxyPwd) {
+ private_socket_->setProxy(nProxyType, bAuth, strProxyHost, uProxyPort, strProxyUsr,
+ strProxyPwd);
+}
+
+void FQTermTelnetSocket::connectToHost(const QString &host, quint16 port) {
+ private_socket_->connectToHost(host, port);
+}
+
+void FQTermTelnetSocket::close() {
+ private_socket_->close();
+}
+
+QByteArray FQTermTelnetSocket::readBlock(unsigned long maxlen) {
+ return private_socket_->readBlock(maxlen);
+}
+
+long FQTermTelnetSocket::writeBlock(const QByteArray &data) {
+ return private_socket_->writeBlock(data);
+}
+
+unsigned long FQTermTelnetSocket::bytesAvailable() {
+ return private_socket_->bytesAvailable();
+}
+
+}
diff --git a/src/protocol/fqterm_telnet_socket.h b/src/protocol/fqterm_telnet_socket.h
new file mode 100644
index 0000000..147a6cc
--- /dev/null
+++ b/src/protocol/fqterm_telnet_socket.h
@@ -0,0 +1,26 @@
+#include "fqterm_socket.h"
+
+namespace FQTerm {
+
+class FQTermTelnetSocket: public FQTermSocket {
+ private:
+ FQTermSocketPrivate *private_socket_;
+
+ public:
+ FQTermTelnetSocket();
+
+ ~FQTermTelnetSocket();
+
+ void flush();
+ void setProxy(int nProxyType, bool bAuth, const QString &strProxyHost,
+ quint16 uProxyPort, const QString &strProxyUsr,
+ const QString &strProxyPwd);
+ void connectToHost(const QString &host, quint16 port);
+ void close();
+ QByteArray readBlock(unsigned long maxlen);
+ long writeBlock(const QByteArray &data);
+ unsigned long bytesAvailable();
+};
+
+
+}
diff --git a/src/terminal/internal/fqterm_telnet.cpp b/src/terminal/internal/fqterm_telnet.cpp
index a561f1e..c87865a 100644
--- a/src/terminal/internal/fqterm_telnet.cpp
+++ b/src/terminal/internal/fqterm_telnet.cpp
@@ -27,6 +27,8 @@
#include "fqterm.h"
#include "fqterm_telnet.h"
#include "fqterm_socket.h"
+#include "fqterm_telnet_socket.h"
+#include "fqterm_local_socket.h"
#ifndef _NO_SSH_COMPILED
#include "fqterm_ssh_socket.h"