WireGuard rework for Linux
This commit is contained in:
parent
f62076d3fd
commit
279692afea
30 changed files with 2319 additions and 36 deletions
57
client/platforms/linux/linuxnetworkwatcher.cpp
Normal file
57
client/platforms/linux/linuxnetworkwatcher.cpp
Normal file
|
@ -0,0 +1,57 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "linuxnetworkwatcher.h"
|
||||
|
||||
#include <QTimer>
|
||||
|
||||
#include "leakdetector.h"
|
||||
#include "linuxnetworkwatcherworker.h"
|
||||
#include "logger.h"
|
||||
|
||||
namespace {
|
||||
Logger logger("LinuxNetworkWatcher");
|
||||
}
|
||||
|
||||
LinuxNetworkWatcher::LinuxNetworkWatcher(QObject* parent)
|
||||
: NetworkWatcherImpl(parent) {
|
||||
MZ_COUNT_CTOR(LinuxNetworkWatcher);
|
||||
|
||||
m_thread.start();
|
||||
}
|
||||
|
||||
LinuxNetworkWatcher::~LinuxNetworkWatcher() {
|
||||
MZ_COUNT_DTOR(LinuxNetworkWatcher);
|
||||
|
||||
delete m_worker;
|
||||
|
||||
m_thread.quit();
|
||||
m_thread.wait();
|
||||
}
|
||||
|
||||
void LinuxNetworkWatcher::initialize() {
|
||||
logger.debug() << "initialize";
|
||||
|
||||
m_worker = new LinuxNetworkWatcherWorker(&m_thread);
|
||||
|
||||
connect(this, &LinuxNetworkWatcher::checkDevicesInThread, m_worker,
|
||||
&LinuxNetworkWatcherWorker::checkDevices);
|
||||
|
||||
connect(m_worker, &LinuxNetworkWatcherWorker::unsecuredNetwork, this,
|
||||
&LinuxNetworkWatcher::unsecuredNetwork);
|
||||
|
||||
// Let's wait a few seconds to allow the UI to be fully loaded and shown.
|
||||
// This is not strictly needed, but it's better for user experience because
|
||||
// it makes the UI faster to appear, plus it gives a bit of delay between the
|
||||
// UI to appear and the first notification.
|
||||
QTimer::singleShot(2000, this, [this]() {
|
||||
QMetaObject::invokeMethod(m_worker, "initialize", Qt::QueuedConnection);
|
||||
});
|
||||
}
|
||||
|
||||
void LinuxNetworkWatcher::start() {
|
||||
logger.debug() << "actived";
|
||||
NetworkWatcherImpl::start();
|
||||
emit checkDevicesInThread();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue