Blob Blame History Raw
From ea572b6e35b73fbcbf5c99db112e80b09e57af7f Mon Sep 17 00:00:00 2001
From: "Lamarque V. Souza" <lamarque@kde.org>
Date: Mon, 26 Dec 2011 00:51:21 -0200
Subject: [PATCH 23/26] Configure adhoc WPA wifi like nm-applet does.

CCBUG: 289812
(cherry picked from commit e14f5841d6261f81334e0d3c220588036ef599b2)
---
 .../settings/802-11-wireless-securitydbus.cpp      |    1 +
 libs/ui/security/wirelesssecuritysettingwidget.cpp |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/backends/NetworkManager/settings/802-11-wireless-securitydbus.cpp b/backends/NetworkManager/settings/802-11-wireless-securitydbus.cpp
index 4ea8f30..933a5b7 100644
--- a/backends/NetworkManager/settings/802-11-wireless-securitydbus.cpp
+++ b/backends/NetworkManager/settings/802-11-wireless-securitydbus.cpp
@@ -38,6 +38,7 @@ void WirelessSecurityDbus::fromMap(const QVariantMap & map)
       else if (map.value(QLatin1String(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)) == "wpa-none")
       {
           setting->setKeymgmt(Knm::WirelessSecuritySetting::EnumKeymgmt::WPANone);
+          setting->setSecurityType(Knm::WirelessSecuritySetting::EnumSecurityType::WpaPsk);
       }
       else if (map.value(QLatin1String(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)) == "wpa-psk")
       {
diff --git a/libs/ui/security/wirelesssecuritysettingwidget.cpp b/libs/ui/security/wirelesssecuritysettingwidget.cpp
index 3296256..c3dfe07 100644
--- a/libs/ui/security/wirelesssecuritysettingwidget.cpp
+++ b/libs/ui/security/wirelesssecuritysettingwidget.cpp
@@ -328,7 +328,14 @@ void WirelessSecuritySettingWidget::writeConfig()
     else if (d->ui.cboType->currentIndex() == d->wpaPsk.first) {
         d->setting8021x->setEnabled(false);
         d->settingSecurity->setSecurityType(Knm::WirelessSecuritySetting::EnumSecurityType::WpaPsk); // FIXME
-        d->settingSecurity->setKeymgmt(Knm::WirelessSecuritySetting::EnumKeymgmt::WPAPSK);
+        if (d->settingWireless->mode() == Knm::WirelessSetting::EnumMode::adhoc) {
+            d->settingSecurity->setKeymgmt(Knm::WirelessSecuritySetting::EnumKeymgmt::WPANone);
+            d->settingSecurity->setProto(QStringList() << "wpa");
+            d->settingSecurity->setPairwise(QStringList() << "none");
+            d->settingSecurity->setGroup(QStringList() << "tkip");
+        } else {
+            d->settingSecurity->setKeymgmt(Knm::WirelessSecuritySetting::EnumKeymgmt::WPAPSK);
+        }
     }
     else if (d->ui.cboType->currentIndex() == d->wpaEap.first) {
         d->setting8021x->setEnabled(true);
-- 
1.7.7.5