[shill] Use flimflam-esque storage ids
Devices:
device_<MAC>
IPConfig:
ipconfig_<MAC of associated device>_0
Services:
ethernet_<MAC of associated device>
wifi_<MAC of associated device>_<SSID>_<mode>_<security>
cellular_<MAC of associated device>_<Network_name>
BUG=chromium-os:17744
TEST=unit
Change-Id: Ibf061f9c184e7c86f5afcf97d48e321fc74bde1c
Reviewed-on: http://gerrit.chromium.org/gerrit/6412
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index 4bded51..6a2bdee 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -7,6 +7,9 @@
#include <string>
#include <base/logging.h>
+#include <base/stringprintf.h>
+#include <base/string_number_conversions.h>
+#include <base/string_util.h>
#include <chromeos/dbus/service_constants.h>
#include "shill/control_interface.h"
@@ -18,6 +21,9 @@
namespace shill {
+// static
+const char WiFiService::kServiceType[] = "wifi";
+
WiFiService::WiFiService(ControlInterface *control_interface,
EventDispatcher *dispatcher,
Manager *manager,
@@ -26,6 +32,7 @@
const std::string &mode,
const std::string &key_management)
: Service(control_interface, dispatcher, manager),
+ security_(flimflam::kSecurityNone),
mode_(mode),
task_factory_(this),
wifi_(device),
@@ -64,6 +71,16 @@
// XXX remove from favorite networks list?
}
+string WiFiService::GetStorageIdentifier(const std::string &mac) {
+ string ssid_hex = base::HexEncode(&(*ssid_.begin()), ssid_.size());
+ return StringToLowerASCII(base::StringPrintf("%s_%s_%s_%s_%s",
+ kServiceType,
+ mac.c_str(),
+ ssid_hex.c_str(),
+ mode_.c_str(),
+ security_.c_str()));
+}
+
const string &WiFiService::mode() const {
return mode_;
}