Skip to content

Commit

Permalink
add: a "working" QvTrojanPlugin
Browse files Browse the repository at this point in the history
  • Loading branch information
Qv2ray-dev authored and Qv2ray-dev committed Apr 17, 2020
1 parent 2f2e5a4 commit 21a796c
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
12 changes: 6 additions & 6 deletions core/Common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ struct TrojanObject
QString address;
QString password;
QString sni;
bool ignoreCertificate;
bool ignoreHostname;
bool reuseSession;
bool sessionTicket;
bool reusePort;
bool tcpFastOpen;
bool ignoreCertificate = false;
bool ignoreHostname = false;
bool reuseSession = false;
bool sessionTicket = false;
bool reusePort = false;
bool tcpFastOpen = false;

#define _X(name) json[#name] = name
QJsonObject toJson() const
Expand Down
25 changes: 20 additions & 5 deletions core/Kernel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,24 @@ void TrojanKernel::SetConnectionSettings(const QString &listenAddress, const QMa
socksPort = inbound["socks"];
httpListenAddress = listenAddress;
//
Config config;
TrojanObject o;
o.loadJson(settings);
config.run_type = Config::CLIENT;
//
config.password[Config::SHA224(o.password.toStdString())] = o.password.toStdString();
config.remote_addr = o.address.toStdString();
config.remote_port = o.port;
config.ssl.sni = o.sni.toStdString();
config.ssl.verify = !o.ignoreCertificate;
config.ssl.verify_hostname = !o.ignoreHostname;
config.ssl.reuse_session = o.reuseSession;
config.ssl.session_ticket = o.sessionTicket;
config.tcp.reuse_port = o.reusePort;
config.tcp.fast_open = o.tcpFastOpen;
//
Config config;
config.populate(QJsonDocument(settings).toJson().toStdString());
config.local_addr = listenAddress.toStdString();
config.local_port = 0;
config.local_port = socksPort;
thread.SetConfig(config);
}

Expand All @@ -60,6 +71,7 @@ const QList<Qv2rayPlugin::QvPluginOutboundProtocolObject> TrojanKernel::KernelOu

TrojanKernel::~TrojanKernel()
{
thread.stop();
}

// ================================================== Kernel Thread ==================================================
Expand All @@ -70,6 +82,7 @@ void TrojanKernelThread::stop()
{
service->stop();
wait();
service.reset();
}
}

Expand All @@ -82,12 +95,14 @@ void TrojanKernelThread::run()
try
{
service = std::make_unique<Service>(config);
service->run();
Log::level = Log::Level::INFO;
Log::logger = TrojanPluginKernelLogger;
service->run();
}
catch (const std::exception &e)
{
Log::log_with_date_time(std::string("fatal: ") + e.what(), Log::FATAL);
// Log::log_with_date_time(std::string("fatal: ") + e.what(), Log::FATAL);
emit OnKernelCrashed_s(QString(e.what()));
stop();
}
}

0 comments on commit 21a796c

Please sign in to comment.