From 75db95f0e6a7b55a770372a1e5d92c034bd934b3 Mon Sep 17 00:00:00 2001 From: Kimmo Ollila Date: Mon, 6 Jun 2016 15:04:03 +0300 Subject: Fixed WPA supplicant and made it default backend for wifi settings. Change-Id: Ic539098e2edc5d736da0331e06f5bfc6c51947e1 Reviewed-by: Teemu Holappa --- .../wpasupplicant/qnetworksettingsinterface_p.cpp | 2 +- .../wpasupplicant/qnetworksettingsmanager_p.cpp | 25 ++++++++++++++-------- .../wpasupplicant/qnetworksettingsmanager_p.h | 7 +++--- .../wpasupplicant/qnetworksettingsservice_p.cpp | 8 +++---- 4 files changed, 25 insertions(+), 17 deletions(-) (limited to 'src/networksettings/wpasupplicant') diff --git a/src/networksettings/wpasupplicant/qnetworksettingsinterface_p.cpp b/src/networksettings/wpasupplicant/qnetworksettingsinterface_p.cpp index 6cb80ec..a2440a1 100644 --- a/src/networksettings/wpasupplicant/qnetworksettingsinterface_p.cpp +++ b/src/networksettings/wpasupplicant/qnetworksettingsinterface_p.cpp @@ -34,7 +34,7 @@ QNetworkSettingsInterfacePrivate::QNetworkSettingsInterfacePrivate(QNetworkSetti :QObject(parent) ,q_ptr(parent) { - m_name = QWifiDevice::wifiInterfaceName(); + m_name = QString::fromLatin1(QWifiDevice::wifiInterfaceName()); m_type.setType(QNetworkSettingsType::Wifi); m_powered = true; //We don't really know } diff --git a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.cpp b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.cpp index 7664427..30f3f61 100644 --- a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.cpp +++ b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.cpp @@ -38,7 +38,14 @@ QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsM :QObject(parent) ,q_ptr(parent) { - m_serviceFilter.setSourceModel(&m_serviceModel); + + QNetworkSettingsUserAgent* userAgent = new QNetworkSettingsUserAgent(this); + this->setUserAgent(userAgent); + + m_serviceModel = new QNetworkSettingsServiceModel(this); + m_serviceFilter = new QNetworkSettingsServiceFilter(this); + m_serviceFilter->setSourceModel(m_serviceModel); + m_wifiController = new QWifiController(this); m_wifiController->asyncCall(QWifiController::InitializeBackend); @@ -97,7 +104,7 @@ void QNetworkSettingsManagerPrivate::connectNetwork(const QString& ssid) void QNetworkSettingsManagerPrivate::userInteractionReady(bool cancel) { if (cancel) { - m_currentSSID = ""; + m_currentSSID = QStringLiteral(""); return; } bool networkKnown = false; @@ -323,7 +330,7 @@ WpaSupplicantService* QNetworkSettingsManagerPrivate::networkForSSID(const QStri WpaSupplicantService* QNetworkSettingsManagerPrivate::networkForSSID(const QString& ssid, int& pos) { - QList services = m_serviceModel.getModel(); + QList services = m_serviceModel->getModel(); pos = 0; foreach (QNetworkSettingsService *service, services) { if (service->name() == ssid) { @@ -384,20 +391,20 @@ void QNetworkSettingsManagerPrivate::parseScanResults(const QString &results) network->setFlags(info.at(3)); network->wirelessConfig()->setSignalStrength(signalStrength); network->setName(ssid); - m_serviceModel.append(network); + m_serviceModel->append(network); } else { if (knownNetwork->wirelessConfig()->outOfRange()) { // known network has come back into a range knownNetwork->wirelessConfig()->setOutOfRange(false); - m_serviceModel.append(knownNetwork); - pos = m_serviceModel.getModel().size() - 1; + m_serviceModel->append(knownNetwork); + pos = m_serviceModel->getModel().size() - 1; } // ssids are the same, compare bssids.. if (knownNetwork->id() == info.at(0)) { // same access point, simply update the signal strength knownNetwork->wirelessConfig()->setSignalStrength(signalStrength); knownNetwork->wirelessConfig()->setOutOfRange(false); - m_serviceModel.updated(pos); + m_serviceModel->updated(pos); } else if (knownNetwork->wirelessConfig()->signalStrength() < signalStrength) { // replace with a stronger access point within the same network knownNetwork->wirelessConfig()->setOutOfRange(false); @@ -405,7 +412,7 @@ void QNetworkSettingsManagerPrivate::parseScanResults(const QString &results) knownNetwork->setFlags(info.at(3)); knownNetwork->wirelessConfig()->setSignalStrength(signalStrength); knownNetwork->setName(ssid); - m_serviceModel.updated(pos); + m_serviceModel->updated(pos); } } } @@ -414,7 +421,7 @@ void QNetworkSettingsManagerPrivate::parseScanResults(const QString &results) for (int i = 0; i < networks.size();) { if (!sensibleNetworks.contains(networks.at(i)->name())) { WpaSupplicantService *n = qobject_cast(networks.at(i)); - m_serviceModel.remove(i); + m_serviceModel->remove(i); if (n) { n->wirelessConfig()->setOutOfRange(true); m_outOfRangeServiceModel.append(n); diff --git a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h index 572166e..d042ece 100644 --- a/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h +++ b/src/networksettings/wpasupplicant/qnetworksettingsmanager_p.h @@ -51,6 +51,7 @@ public: void disconnectNetwork(); QString call(const QString &command); bool checkedCall(const QString &command); + QNetworkSettingsUserAgent *getUserAgent() {return m_agent;} protected: bool event(QEvent *event); @@ -73,11 +74,11 @@ private: WpaSupplicantService* outOfRangeListContains(const QString& ssid); QNetworkSettingsInterfaceModel m_interfaceModel; - QNetworkSettingsServiceModel m_serviceModel; + QNetworkSettingsServiceModel *m_serviceModel; QNetworkSettingsServiceModel m_outOfRangeServiceModel; - QNetworkSettingsServiceFilter m_serviceFilter; + QNetworkSettingsServiceFilter *m_serviceFilter; QWifiController *m_wifiController; - QNetworkSettingsUserAgent *m_agent; //Not owned + QNetworkSettingsUserAgent *m_agent; QWifiController::BackendState m_backendState; QString m_currentSSID; diff --git a/src/networksettings/wpasupplicant/qnetworksettingsservice_p.cpp b/src/networksettings/wpasupplicant/qnetworksettingsservice_p.cpp index 30fcacd..974f85b 100644 --- a/src/networksettings/wpasupplicant/qnetworksettingsservice_p.cpp +++ b/src/networksettings/wpasupplicant/qnetworksettingsservice_p.cpp @@ -78,7 +78,7 @@ void QNetworkSettingsServicePrivate::setupIpv4Config() } WpaSupplicantService::WpaSupplicantService(QNetworkSettingsManagerPrivate* manager, QObject* parent) - :QNetworkSettingsService("", parent) + :QNetworkSettingsService(QStringLiteral(""), parent) { Q_D(QNetworkSettingsService); d->setManager(manager); @@ -101,13 +101,13 @@ void WpaSupplicantService::setFlags(const QString& aFlags) { Q_D(QNetworkSettingsService); - if (aFlags.contains("WPA-")) { + if (aFlags.contains(QStringLiteral("WPA-"))) { d->m_wifiConfig.setSecurity(QNetworkSettingsWireless::WPA); } - if (aFlags.contains("WPA2-")) { + if (aFlags.contains(QStringLiteral("WPA2-"))) { d->m_wifiConfig.setSecurity(QNetworkSettingsWireless::WPA2); } - if (aFlags.contains("WEP-")) { + if (aFlags.contains(QStringLiteral("WEP-"))) { d->m_wifiConfig.setSecurity(QNetworkSettingsWireless::WEP); } } -- cgit v1.2.3