
* Crash fix in management server * Openvpn scripts fixes some refactoring * deploy fix * Scripts fix for macos * OpenVpn runtime error codes handling * MacOS deploy script fix * easyrsa scripts for MacOS * Refactoring Ui improvements Bug fixes * new server page fix * Fix some warnings, fix installation scripts (macOS) * Fix crash on fatal error, remove moc files from Windows installation * ss files * Fix issue with easyrsa * ss files * shadowsocks impl * ss fix * ui fix * Macos doc icon * travis scripts * server scripts fix * icon changed * Server scripts fix * travis fix * Bug fixes: - auto install tap - share connectionState - service crash fix * travis release * macos deploy
79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
#include "communicator.h"
|
|
#include "defines.h"
|
|
#include "localclient.h"
|
|
#include "utils.h"
|
|
|
|
Communicator::Communicator(QObject* parent) : QObject(parent),
|
|
m_localClient(nullptr)
|
|
{
|
|
connectToServer();
|
|
}
|
|
|
|
Communicator::~Communicator()
|
|
{
|
|
|
|
}
|
|
|
|
void Communicator::connectToServer()
|
|
{
|
|
if (m_localClient) {
|
|
delete m_localClient;
|
|
}
|
|
|
|
m_localClient = new LocalClient(this);
|
|
connect(m_localClient, &LocalClient::connected, this, &Communicator::onConnected);
|
|
connect(m_localClient, &LocalClient::lineAvailable, this, &Communicator::onLineAvailable);
|
|
|
|
m_localClient->connectToServer(Utils::serverName());
|
|
}
|
|
|
|
void Communicator::onConnected()
|
|
{
|
|
qDebug().noquote() << QString("Connected to local server '%1'").arg(m_localClient->serverName());
|
|
Message message(Message::State::Initialize, QStringList({"Client"}));
|
|
sendMessage(message);
|
|
}
|
|
|
|
void Communicator::onLineAvailable(const QString& line)
|
|
{
|
|
Message message(line);
|
|
if (!message.isValid()) {
|
|
qDebug() << "Message is not valid";
|
|
return;
|
|
}
|
|
|
|
emit messageReceived(message);
|
|
}
|
|
|
|
bool Communicator::isConnected() const
|
|
{
|
|
if (!m_localClient) {
|
|
return false;
|
|
}
|
|
|
|
return m_localClient->connectedState();
|
|
}
|
|
|
|
QString Communicator::readData()
|
|
{
|
|
return QString();
|
|
}
|
|
|
|
bool Communicator::writeData(const QString& data)
|
|
{
|
|
return m_localClient->write(data.toUtf8());
|
|
}
|
|
|
|
void Communicator::sendMessage(const Message& message)
|
|
{
|
|
if (!isConnected()) {
|
|
return;
|
|
}
|
|
const QString data = message.toString();
|
|
bool status = writeData(data + "\n");
|
|
|
|
qDebug().noquote() << QString("Send message '%1',%2 status '%2'").
|
|
arg(static_cast<int>(message.state())).
|
|
arg(data).
|
|
arg(Utils::toString(status));
|
|
}
|