[PATCH 2/5] Allow incomplete secrets even for plain text storage

Andrey Borzenkov arvidjaar at gmail.com
Fri Nov 26 18:19:42 CET 2010


From: Andrey Borzenkov <arvidjaar at mail.ru>

Signed-off-by: Andrey Borzenkov <arvidjaar at mail.ru>
---
 libs/internals/connectionpersistence.cpp           |    4 +-
 .../802-11-wireless-securitypersistence.cpp        |   21 +------------------
 libs/internals/settings/802-1xpersistence.cpp      |    1 +
 libs/internals/settings/cdmapersistence.cpp        |    1 +
 libs/internals/settings/gsmpersistence.cpp         |   11 ++-------
 libs/internals/settings/vpnpersistence.cpp         |    1 +
 6 files changed, 10 insertions(+), 29 deletions(-)

diff --git a/libs/internals/connectionpersistence.cpp b/libs/internals/connectionpersistence.cpp
index 0c31aae..df26574 100644
--- a/libs/internals/connectionpersistence.cpp
+++ b/libs/internals/connectionpersistence.cpp
@@ -217,8 +217,8 @@ void ConnectionPersistence::loadSecrets()
 
         if (m_storageMode != ConnectionPersistence::Secure) {
 
-            foreach (Setting * setting, m_connection->settings()) {
-                setting->setSecretsAvailable(true);
+            if (!m_connection->secretsAvailable()){
+                errorCode = EnumError::MissingContents;
             }
 
         } else if (!m_connection->hasSecrets() ||
diff --git a/libs/internals/settings/802-11-wireless-securitypersistence.cpp b/libs/internals/settings/802-11-wireless-securitypersistence.cpp
index 3565a2c..ddfa78c 100644
--- a/libs/internals/settings/802-11-wireless-securitypersistence.cpp
+++ b/libs/internals/settings/802-11-wireless-securitypersistence.cpp
@@ -69,33 +69,16 @@ void WirelessSecurityPersistence::load()
   setting->setPairwise(m_config->readEntry("pairwise", QStringList()));
   setting->setGroup(m_config->readEntry("group", QStringList()));
   setting->setLeapusername(m_config->readEntry("leapusername", ""));
-  // SECRET
+  // SECRETS
   if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setWepkey0(m_config->readEntry("wepkey0", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setWepkey1(m_config->readEntry("wepkey1", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setWepkey2(m_config->readEntry("wepkey2", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setWepkey3(m_config->readEntry("wepkey3", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setPsk(m_config->readEntry("psk", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setLeappassword(m_config->readEntry("leappassword", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setWeppassphrase(m_config->readEntry("weppassphrase", ""));
+    setting->setSecretsAvailable(true);
   }
   } else {
       setting->setSecurityType(WirelessSecuritySetting::EnumSecurityType::None);
diff --git a/libs/internals/settings/802-1xpersistence.cpp b/libs/internals/settings/802-1xpersistence.cpp
index d334a9e..740da06 100644
--- a/libs/internals/settings/802-1xpersistence.cpp
+++ b/libs/internals/settings/802-1xpersistence.cpp
@@ -94,6 +94,7 @@ void Security8021xPersistence::load()
   // SECRET
   if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setPhase2privatekeypassword(m_config->readEntry("phase2privatekeypassword", ""));
+    setting->setSecretsAvailable(true);
   }
   setting->setPin(m_config->readEntry("pin", ""));
   setting->setPsk(m_config->readEntry("psk", ""));
diff --git a/libs/internals/settings/cdmapersistence.cpp b/libs/internals/settings/cdmapersistence.cpp
index 2cc23f3..78a38b8 100644
--- a/libs/internals/settings/cdmapersistence.cpp
+++ b/libs/internals/settings/cdmapersistence.cpp
@@ -23,6 +23,7 @@ void CdmaPersistence::load()
   // SECRET
   if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setPassword(m_config->readEntry("password", ""));
+    setting->setSecretsAvailable(true);
   }
   setting->setInitialized();
 }
diff --git a/libs/internals/settings/gsmpersistence.cpp b/libs/internals/settings/gsmpersistence.cpp
index 01d4d29..1ddf3ca 100644
--- a/libs/internals/settings/gsmpersistence.cpp
+++ b/libs/internals/settings/gsmpersistence.cpp
@@ -20,21 +20,16 @@ void GsmPersistence::load()
   GsmSetting * setting = static_cast<GsmSetting *>(m_setting);
   setting->setNumber(m_config->readEntry("number", "*99#"));
   setting->setUsername(m_config->readEntry("username", ""));
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
-    setting->setPassword(m_config->readEntry("password", ""));
-  }
   setting->setApn(m_config->readEntry("apn", ""));
   setting->setNetworkid(m_config->readEntry("networkid", ""));
   setting->setNetworktype(m_config->readEntry("networktype", 0));
   setting->setBand(m_config->readEntry("band", 0));
-  // SECRET
+  // SECRETS
   if (m_storageMode != ConnectionPersistence::Secure) {
+    setting->setPassword(m_config->readEntry("password", ""));
     setting->setPin(m_config->readEntry("pin", ""));
-  }
-  // SECRET
-  if (m_storageMode != ConnectionPersistence::Secure) {
     setting->setPuk(m_config->readEntry("puk", ""));
+    setting->setSecretsAvailable(true);
   }
   setting->setInitialized();
 }
diff --git a/libs/internals/settings/vpnpersistence.cpp b/libs/internals/settings/vpnpersistence.cpp
index c9ed029..a90c277 100644
--- a/libs/internals/settings/vpnpersistence.cpp
+++ b/libs/internals/settings/vpnpersistence.cpp
@@ -27,6 +27,7 @@ void VpnPersistence::load()
   if (m_storageMode != ConnectionPersistence::Secure) {
       // the map is flattened to a list of key,value,key,value
       setting->setVpnSecrets(variantMapFromStringList(m_config->readEntry("VpnSecrets", QStringList())));
+    setting->setSecretsAvailable(true);
   }
   setting->setPluginName(m_config->readEntry("PluginName", ""));
   setting->setInitialized();
-- 
1.7.3.2



More information about the kde-networkmanager mailing list