Reinitialize if the initial properties cannot be loaded during start of networkmanager
parent
87a039fcde
commit
43f64af331
|
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QTimer>
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
|
||||||
/*! Constructs a new \l{NetworkManager} object with the given \a parent. */
|
/*! Constructs a new \l{NetworkManager} object with the given \a parent. */
|
||||||
|
|
@ -281,8 +282,6 @@ NetworkManager::NetworkManagerError NetworkManager::startAccessPoint(const QStri
|
||||||
|
|
||||||
qCDebug(dcNetworkManager()) << "Connection added" << connectionObjectPath.path();
|
qCDebug(dcNetworkManager()) << "Connection added" << connectionObjectPath.path();
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
// Activate connection
|
// Activate connection
|
||||||
QDBusMessage query = m_networkManagerInterface->call("ActivateConnection",
|
QDBusMessage query = m_networkManagerInterface->call("ActivateConnection",
|
||||||
QVariant::fromValue(connectionObjectPath),
|
QVariant::fromValue(connectionObjectPath),
|
||||||
|
|
@ -360,24 +359,30 @@ bool NetworkManager::init()
|
||||||
m_networkManagerInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), QDBusConnection::systemBus(), this);
|
m_networkManagerInterface = new QDBusInterface(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), QDBusConnection::systemBus(), this);
|
||||||
if(!m_networkManagerInterface->isValid()) {
|
if(!m_networkManagerInterface->isValid()) {
|
||||||
qCWarning(dcNetworkManager()) << "Invalid DBus network manager interface. NetworkManagre not available.";
|
qCWarning(dcNetworkManager()) << "Invalid DBus network manager interface. NetworkManagre not available.";
|
||||||
m_networkManagerInterface->deleteLater();
|
delete m_networkManagerInterface;
|
||||||
m_networkManagerInterface = nullptr;
|
m_networkManagerInterface = nullptr;
|
||||||
setAvailable(false);
|
setAvailable(false);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qCDebug(dcNetworkManager()) << "DBus interface created successfully" << NetworkManagerUtils::networkManagerPathString();
|
||||||
|
|
||||||
// Init properties
|
// Init properties
|
||||||
|
qCDebug(dcNetworkManager()) << "Read initial properties...";
|
||||||
setVersion(m_networkManagerInterface->property("Version").toString());
|
setVersion(m_networkManagerInterface->property("Version").toString());
|
||||||
setState(static_cast<NetworkManagerState>(m_networkManagerInterface->property("State").toUInt()));
|
setState(static_cast<NetworkManagerState>(m_networkManagerInterface->property("State").toUInt()));
|
||||||
setConnectivityState(static_cast<NetworkManagerConnectivityState>(m_networkManagerInterface->property("Connectivity").toUInt()));
|
setConnectivityState(static_cast<NetworkManagerConnectivityState>(m_networkManagerInterface->property("Connectivity").toUInt()));
|
||||||
setNetworkingEnabled(m_networkManagerInterface->property("NetworkingEnabled").toBool());
|
setNetworkingEnabled(m_networkManagerInterface->property("NetworkingEnabled").toBool());
|
||||||
setWirelessEnabled(m_networkManagerInterface->property("WirelessEnabled").toBool());
|
setWirelessEnabled(m_networkManagerInterface->property("WirelessEnabled").toBool());
|
||||||
|
|
||||||
// Load network devices
|
if (m_version.isEmpty()) {
|
||||||
loadDevices();
|
qCWarning(dcNetworkManager()) << "Could not read initial properties. The networkmanager might not be initialized yet. Reinitialize in 2 seconds...";
|
||||||
|
delete m_networkManagerInterface;
|
||||||
// Create settings
|
m_networkManagerInterface = nullptr;
|
||||||
m_networkSettings = new NetworkSettings(this);
|
setAvailable(false);
|
||||||
|
QTimer::singleShot(2000, this, &NetworkManager::init);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Connect signals
|
// Connect signals
|
||||||
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "StateChanged", this, SLOT(onStateChanged(uint)));
|
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "StateChanged", this, SLOT(onStateChanged(uint)));
|
||||||
|
|
@ -385,6 +390,12 @@ bool NetworkManager::init()
|
||||||
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "DeviceRemoved", this, SLOT(onDeviceRemoved(QDBusObjectPath)));
|
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "DeviceRemoved", this, SLOT(onDeviceRemoved(QDBusObjectPath)));
|
||||||
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
|
QDBusConnection::systemBus().connect(NetworkManagerUtils::networkManagerServiceString(), NetworkManagerUtils::networkManagerPathString(), NetworkManagerUtils::networkManagerServiceString(), "PropertiesChanged", this, SLOT(onPropertiesChanged(QVariantMap)));
|
||||||
|
|
||||||
|
// Load network devices
|
||||||
|
loadDevices();
|
||||||
|
|
||||||
|
// Create settings
|
||||||
|
m_networkSettings = new NetworkSettings(this);
|
||||||
|
|
||||||
setAvailable(true);
|
setAvailable(true);
|
||||||
qCDebug(dcNetworkManager()) << "Network manager initialized successfully.";
|
qCDebug(dcNetworkManager()) << "Network manager initialized successfully.";
|
||||||
qCDebug(dcNetworkManager()) << "Start initial wireless network scan...";
|
qCDebug(dcNetworkManager()) << "Start initial wireless network scan...";
|
||||||
|
|
@ -427,6 +438,7 @@ void NetworkManager::deinit()
|
||||||
void NetworkManager::loadDevices()
|
void NetworkManager::loadDevices()
|
||||||
{
|
{
|
||||||
// Get network devices
|
// Get network devices
|
||||||
|
qCDebug(dcNetworkManager()) << "Get available devices";
|
||||||
QDBusMessage query = m_networkManagerInterface->call("GetDevices");
|
QDBusMessage query = m_networkManagerInterface->call("GetDevices");
|
||||||
if(query.type() != QDBusMessage::ReplyMessage) {
|
if(query.type() != QDBusMessage::ReplyMessage) {
|
||||||
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
|
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ QList<NetworkConnection *> NetworkSettings::connections() const
|
||||||
|
|
||||||
void NetworkSettings::loadConnections()
|
void NetworkSettings::loadConnections()
|
||||||
{
|
{
|
||||||
|
qCDebug(dcNetworkManager()) << "Load connection list";
|
||||||
QDBusMessage query = m_settingsInterface->call("ListConnections");
|
QDBusMessage query = m_settingsInterface->call("ListConnections");
|
||||||
if(query.type() != QDBusMessage::ReplyMessage) {
|
if(query.type() != QDBusMessage::ReplyMessage) {
|
||||||
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
|
qCWarning(dcNetworkManager()) << query.errorName() << query.errorMessage();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue