Custom routing done
ShadowSocks enabled by default
This commit is contained in:
parent
f91854594c
commit
a1cb4ac544
36 changed files with 482 additions and 780 deletions
|
|
@ -14,8 +14,6 @@
|
|||
#endif
|
||||
|
||||
LocalServer::LocalServer(QObject *parent) : QObject(parent),
|
||||
// m_clientConnection(nullptr),
|
||||
// m_clientConnected(false),
|
||||
m_ipcServer(this)
|
||||
{
|
||||
// Create the server and listen outside of QtRO
|
||||
|
|
@ -27,15 +25,6 @@ LocalServer::LocalServer(QObject *parent) : QObject(parent),
|
|||
return;
|
||||
}
|
||||
|
||||
// connect(m_server.data(), &QLocalServer::newConnection, this, &LocalServer::onNewConnection);
|
||||
|
||||
// qDebug().noquote() << QString("Local server started on '%1'").arg(m_server->serverName());
|
||||
|
||||
// m_serverNode.setHostUrl(QUrl(QStringLiteral(IPC_SERVICE_URL))); // create host node without Registry
|
||||
|
||||
|
||||
|
||||
// Make sure any connections are handed to QtRO
|
||||
QObject::connect(m_server.data(), &QLocalServer::newConnection, this, [this]() {
|
||||
qDebug() << "LocalServer new connection";
|
||||
m_serverNode.addHostSideConnection(m_server->nextPendingConnection());
|
||||
|
|
@ -49,186 +38,6 @@ LocalServer::LocalServer(QObject *parent) : QObject(parent),
|
|||
|
||||
LocalServer::~LocalServer()
|
||||
{
|
||||
// m_clientConnected = false;
|
||||
// m_server->disconnect();
|
||||
|
||||
// QFile::remove(Utils::serverName());
|
||||
|
||||
qDebug() << "Local server stopped";
|
||||
}
|
||||
|
||||
//bool LocalServer::isRunning() const
|
||||
//{
|
||||
// return true;
|
||||
// //return m_server->isListening();
|
||||
//}
|
||||
|
||||
//void LocalServer::onNewConnection()
|
||||
//{
|
||||
// if (m_clientConnection) {
|
||||
// m_clientConnection->deleteLater();
|
||||
// }
|
||||
|
||||
// m_clientConnection = m_server->nextPendingConnection();
|
||||
// connect(m_clientConnection, &QLocalSocket::disconnected, this, &LocalServer::onDisconnected);
|
||||
// m_clientConnected = true;
|
||||
|
||||
// qDebug() << "New connection";
|
||||
|
||||
// for(;;) {
|
||||
// qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||
// if (!m_clientConnected || !m_clientConnection) {
|
||||
// break;
|
||||
// }
|
||||
|
||||
// if (m_clientConnection->waitForReadyRead(1000) && m_clientConnection->canReadLine()) {
|
||||
// char buf[1024];
|
||||
// qint64 lineLength = m_clientConnection->readLine(buf, sizeof(buf));
|
||||
// if (lineLength != -1) {
|
||||
// QString line = buf;
|
||||
// line = line.simplified();
|
||||
// qDebug().noquote() << QString("Read line: '%1'").arg(line);
|
||||
// Message incomingMessage(line);
|
||||
// if (!incomingMessage.isValid()) {
|
||||
// qWarning().noquote() << "Message is not valid!";
|
||||
// continue;
|
||||
// }
|
||||
// else {
|
||||
// qDebug().noquote() << QString("Got message id: '%1'").arg(static_cast<int>(incomingMessage.state()));
|
||||
// //qDebug().noquote() << incomingMessage.rawData();
|
||||
// }
|
||||
|
||||
// switch (incomingMessage.state()) {
|
||||
// case Message::State::Initialize:
|
||||
// #ifdef Q_OS_WIN
|
||||
// TapController::Instance().checkAndSetup();
|
||||
// #endif
|
||||
// sendMessage(Message(Message::State::Initialize, QStringList({"Server"})));
|
||||
// break;
|
||||
// case Message::State::StartRequest:
|
||||
// startProcess(incomingMessage.args());
|
||||
// break;
|
||||
// case Message::State::FinishRequest:
|
||||
// finishProcess(incomingMessage.args());
|
||||
// break;
|
||||
|
||||
// case Message::State::RoutesAddRequest:
|
||||
// routesAddRequest(incomingMessage.args());
|
||||
// break;
|
||||
// case Message::State::RouteDeleteRequest:
|
||||
// routeDeleteRequest(incomingMessage.args());
|
||||
// break;
|
||||
// case Message::State::ClearSavedRoutesRequest:
|
||||
// Router::Instance().clearSavedRoutes();
|
||||
// break;
|
||||
// case Message::State::FlushDnsRequest:
|
||||
// Router::Instance().flushDns();
|
||||
// break;
|
||||
// case Message::State::InstallDriverRequest:
|
||||
// checkAndInstallDriver(incomingMessage.args());
|
||||
// break;
|
||||
|
||||
// default:
|
||||
// ;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// qDebug() << "Released";
|
||||
//}
|
||||
|
||||
//void LocalServer::finishProcess(const QStringList& args)
|
||||
//{
|
||||
// Q_UNUSED(args)
|
||||
//}
|
||||
|
||||
//void LocalServer::startProcess(const QStringList& messageArgs)
|
||||
//{
|
||||
// if (messageArgs.size() < 1) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
// QProcess* process = new QProcess();
|
||||
// connect(process, SIGNAL(started()), this, SLOT(onStarted()));
|
||||
// connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(onFinished(int, QProcess::ExitStatus)));
|
||||
|
||||
// const QString program = messageArgs.at(0);
|
||||
// QStringList args;
|
||||
// for (int i = 1; i < messageArgs.size(); i++) {
|
||||
// args.append(messageArgs.at(i));
|
||||
// }
|
||||
|
||||
// QFileInfo fi(program);
|
||||
// const QString baseName = fi.baseName();
|
||||
// if (!fi.exists()) {
|
||||
// qWarning() << "This program does not exist";
|
||||
// sendMessage(Message(Message::State::Started, QStringList({baseName})));
|
||||
// sendMessage(Message(Message::State::Finished, QStringList({baseName, QString::number(-1)})));
|
||||
// return;
|
||||
// }
|
||||
|
||||
// process->setObjectName(baseName);
|
||||
|
||||
// qDebug().noquote() << QString("Start process '%1' - '%2' with args '%3'")
|
||||
// .arg(baseName).arg(program).arg(args.join(","));
|
||||
|
||||
// process->start(program, args);
|
||||
// m_processList.append(process);
|
||||
//}
|
||||
|
||||
//void LocalServer::routesAddRequest(const QStringList &messageArgs)
|
||||
//{
|
||||
// Router::Instance().routeAddList(messageArgs.first(), messageArgs.mid(1));
|
||||
//}
|
||||
|
||||
//void LocalServer::routeDeleteRequest(const QStringList &messageArgs)
|
||||
//{
|
||||
// Router::Instance().routeDelete(messageArgs.first());
|
||||
//}
|
||||
|
||||
//void LocalServer::checkAndInstallDriver(const QStringList &messageArgs)
|
||||
//{
|
||||
|
||||
//}
|
||||
|
||||
//void LocalServer::onFinished(int exitCode, QProcess::ExitStatus exitStatus)
|
||||
//{
|
||||
// Q_UNUSED(exitStatus)
|
||||
|
||||
// QProcess* process = (QProcess*)sender();
|
||||
// sendMessage(Message(Message::State::Finished, QStringList({process->objectName(), QString::number(exitCode)})));
|
||||
//}
|
||||
|
||||
//void LocalServer::onStarted()
|
||||
//{
|
||||
// QProcess* process = (QProcess*)sender();
|
||||
// sendMessage(Message(Message::State::Started, QStringList({process->objectName()})));
|
||||
//}
|
||||
|
||||
//void LocalServer::onDisconnected()
|
||||
//{
|
||||
// if (!m_clientConnected) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
// m_clientConnected = false;
|
||||
// QLocalSocket* clientConnection = (QLocalSocket*)sender();
|
||||
// clientConnection->deleteLater();
|
||||
|
||||
// qDebug() << "Diconnected";
|
||||
//}
|
||||
|
||||
//void LocalServer::sendMessage(const Message& message)
|
||||
//{
|
||||
// if (!m_clientConnection || !m_clientConnected) {
|
||||
// qDebug()<< "Cannot send data, remote peer is not connected";
|
||||
// return;
|
||||
// }
|
||||
|
||||
// const QString data = message.toString();
|
||||
// bool status = m_clientConnection->write(QString(data + "\n").toUtf8());
|
||||
|
||||
// qDebug().noquote() << QString("Send message '%1', status '%2'").arg(data).arg(Utils::toString(status));
|
||||
//}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include <QStringList>
|
||||
#include <QVector>
|
||||
|
||||
#include "message.h"
|
||||
#include "ipcserver.h"
|
||||
|
||||
class QLocalServer;
|
||||
|
|
@ -23,30 +22,7 @@ public:
|
|||
explicit LocalServer(QObject* parent = nullptr);
|
||||
~LocalServer();
|
||||
|
||||
// bool isRunning() const;
|
||||
|
||||
protected slots:
|
||||
// void onDisconnected();
|
||||
// void onNewConnection();
|
||||
|
||||
// void onFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||
// void onStarted();
|
||||
|
||||
private:
|
||||
// void finishProcess(const QStringList& messageArgs);
|
||||
// void sendMessage(const Message& message);
|
||||
// void startProcess(const QStringList& messageArgs);
|
||||
|
||||
// void routesAddRequest(const QStringList& messageArgs);
|
||||
// void routeDeleteRequest(const QStringList& messageArgs);
|
||||
|
||||
// void checkAndInstallDriver(const QStringList& messageArgs);
|
||||
|
||||
QSharedPointer<QLocalServer> m_server;
|
||||
// QPointer <QLocalSocket> m_clientConnection;
|
||||
|
||||
// QVector<QProcess*> m_processList;
|
||||
// bool m_clientConnected;
|
||||
|
||||
IpcServer m_ipcServer;
|
||||
QRemoteObjectHost m_serverNode;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ CONFIG += console qt no_batch
|
|||
QT += core network remoteobjects
|
||||
|
||||
HEADERS = \
|
||||
../../client/message.h \
|
||||
../../client/utils.h \
|
||||
../../ipc/ipc.h \
|
||||
../../ipc/ipcserver.h \
|
||||
|
|
@ -15,7 +14,6 @@ HEADERS = \
|
|||
systemservice.h
|
||||
|
||||
SOURCES = \
|
||||
../../client/message.cpp \
|
||||
../../client/utils.cpp \
|
||||
../../ipc/ipcserver.cpp \
|
||||
../../ipc/ipcserverprocess.cpp \
|
||||
|
|
|
|||
|
|
@ -95,6 +95,10 @@ QStringList TapController::getTapList()
|
|||
else tapList.append(s);
|
||||
}
|
||||
|
||||
if (! tapList.isEmpty()) {
|
||||
enableTapAdapter(tapList.first());
|
||||
}
|
||||
|
||||
return tapList;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef TAPCONTROLLER_H
|
||||
#ifndef TAPCONTROLLER_H
|
||||
#define TAPCONTROLLER_H
|
||||
|
||||
#include <QObject>
|
||||
|
|
@ -35,7 +35,6 @@ private:
|
|||
static bool setupDriverCertificate();
|
||||
static bool removeDriver(const QString& tapInstanceId);
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // TAPCONTROLLER_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue