diff options
Diffstat (limited to 'components/wifi/wifi_test.cc')
-rw-r--r-- | components/wifi/wifi_test.cc | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/components/wifi/wifi_test.cc b/components/wifi/wifi_test.cc index eae084f..ff27b0d 100644 --- a/components/wifi/wifi_test.cc +++ b/components/wifi/wifi_test.cc @@ -67,10 +67,13 @@ WiFiTest::Result WiFiTest::Main(int argc, const char* argv[]) { VLOG(0) << "Usage: " << argv[0] << " [--list]" " [--get_properties]" + " [--create]" " [--connect]" " [--disconnect]" " [--network_guid=<network_guid>]" " [--frequency=0|2400|5000]" + " [--security=none|WEP-PSK|WPA-PSK|WPA2-PSK]" + " [--password=<wifi password>]" " [<network_guid>]\n"; return RESULT_WRONG_USAGE; } @@ -88,6 +91,10 @@ bool WiFiTest::ParseCommandLine(int argc, const char* argv[]) { parsed_command_line.GetSwitchValueASCII("network_guid"); std::string frequency = parsed_command_line.GetSwitchValueASCII("frequency"); + std::string password = + parsed_command_line.GetSwitchValueASCII("password"); + std::string security = + parsed_command_line.GetSwitchValueASCII("security"); if (parsed_command_line.GetArgs().size() == 1) { #if defined(OS_WIN) @@ -127,26 +134,45 @@ bool WiFiTest::ParseCommandLine(int argc, const char* argv[]) { } } - // Optional properties (frequency, password) to use for connect. - scoped_ptr<DictionaryValue> connect_properties(new DictionaryValue()); + // Optional properties (frequency, password) to use for connect or create. + scoped_ptr<DictionaryValue> properties(new DictionaryValue()); - if (parsed_command_line.HasSwitch("frequency")) { + if (!frequency.empty()) { int value = 0; - if (!network_guid.empty() && - !frequency.empty() && - base::StringToInt(frequency, &value)) { - connect_properties->SetInteger("WiFi.Frequency", value); + if (base::StringToInt(frequency, &value)) { + properties->SetInteger("WiFi.Frequency", value); // fall through to connect. } } + if (!password.empty()) + properties->SetString("WiFi.Passphrase", password); + + if (!security.empty()) + properties->SetString("WiFi.Security", security); + + if (parsed_command_line.HasSwitch("create")) { + if (!network_guid.empty()) { + std::string error; + std::string new_network_guid; + properties->SetString("WiFi.SSID", network_guid); + VLOG(0) << "Creating Network: " << *properties; + wifi_service->CreateNetwork(false, + properties.Pass(), + &new_network_guid, + &error); + VLOG(0) << error << ":\n" << new_network_guid; + return true; + } + } + if (parsed_command_line.HasSwitch("connect")) { - if (network_guid.length() > 0) { + if (!network_guid.empty()) { std::string error; - if (!connect_properties->empty()) { - VLOG(0) << "Using connect properties: " << *connect_properties; + if (!properties->empty()) { + VLOG(0) << "Using connect properties: " << *properties; wifi_service->SetProperties(network_guid, - connect_properties.Pass(), + properties.Pass(), &error); } wifi_service->StartConnect(network_guid, &error); |