shill: wifi: Implement FindService
Implement FindService so that WiFi::GetService can return an
already exisiting service if one exists. We consider services
that we haven't found in WiFi::GetService to be hidden unless
the caller specifies otherwise.
BUG=chromium-os:22074
TEST=New Unit Test
Change-Id: If5a41509c0f58c5bdb4a01d550922bb778d0d259
Reviewed-on: https://gerrit.chromium.org/gerrit/11458
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index a189698..9f61866 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -187,6 +187,10 @@
return true;
}
+bool WiFiService::IsSecurityMatch(const string &security) const {
+ return GetSecurityClass(security) == GetSecurityClass(security_);
+}
+
// private methods
void WiFiService::ConnectTask() {
std::map<string, DBus::Variant> params;
@@ -338,6 +342,7 @@
}
}
+// static
bool WiFiService::SanitizeSSID(string *ssid) {
CHECK(ssid);
@@ -355,15 +360,20 @@
return changed;
}
-string WiFiService::GetGenericStorageIdentifier() const {
- if (security_ == flimflam::kSecurityRsn ||
- security_ == flimflam::kSecurityWpa) {
- return GetStorageIdentifierForSecurity(flimflam::kSecurityPsk);
+// static
+string WiFiService::GetSecurityClass(const string &security) {
+ if (security == flimflam::kSecurityRsn ||
+ security == flimflam::kSecurityWpa) {
+ return flimflam::kSecurityPsk;
} else {
- return GetStorageIdentifierForSecurity(security_);
+ return security;
}
}
+string WiFiService::GetGenericStorageIdentifier() const {
+ return GetStorageIdentifierForSecurity(GetSecurityClass(security_));
+}
+
string WiFiService::GetSpecificStorageIdentifier() const {
return GetStorageIdentifierForSecurity(security_);
}