shill: implement manager.RequestScan (for WiFi only)
BUG=chromium-os:19831
TEST=unittests, WiFiManager/000_SSID_Length_Limit
note that 000_SSID_Length_Limit does not pass yet,
because we don't do IP configuration yet. but it
does get scan results.
Change-Id: I8993b3c646eda705271d1f7ad7d7341c692ae06b
Reviewed-on: http://gerrit.chromium.org/gerrit/7407
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index bdfa6e7..4127b55 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -21,9 +21,6 @@
namespace shill {
-// static
-const char WiFiService::kServiceType[] = "wifi";
-
WiFiService::WiFiService(ControlInterface *control_interface,
EventDispatcher *dispatcher,
Manager *manager,
@@ -33,6 +30,7 @@
const std::string &key_management)
: Service(control_interface, dispatcher, manager),
security_(flimflam::kSecurityNone),
+ type_(flimflam::kTypeWifi),
mode_(mode),
task_factory_(this),
wifi_(device),
@@ -51,7 +49,13 @@
store->RegisterConstBool(flimflam::kWifiHiddenSsid, &hidden_ssid_);
store->RegisterConstUint16(flimflam::kWifiFrequency, &frequency_);
store->RegisterConstUint16(flimflam::kWifiPhyMode, &physical_mode_);
- store->RegisterConstUint16(flimflam::kWifiHexSsid, &hex_ssid_);
+ store->RegisterConstString(flimflam::kWifiHexSsid, &hex_ssid_);
+
+ hex_ssid_ = base::HexEncode(&(*ssid_.begin()), ssid_.size());
+ // TODO(quiche): set based on security properties
+ need_passphrase_ = false;
+ // TODO(quiche): figure out when to set true
+ hidden_ssid_ = false;
}
WiFiService::~WiFiService() {
@@ -73,11 +77,10 @@
}
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,
+ flimflam::kTypeWifi,
mac.c_str(),
- ssid_hex.c_str(),
+ hex_ssid_.c_str(),
mode_.c_str(),
security_.c_str()));
}
@@ -94,8 +97,9 @@
return ssid_;
}
+// private methods
void WiFiService::ConnectTask() {
- wifi_->ConnectTo(*this);
+ wifi_->ConnectTo(this);
}
string WiFiService::GetDeviceRpcId() {