blob: afd021820bcf44d6f06e239754bc7ca44202bd67 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync_wifi/network_state_helper_chromeos.h"
#include <memory>
#include "base/logging.h"
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/network/network_type_pattern.h"
#include "components/sync_wifi/wifi_security_class.h"
namespace sync_wifi {
WifiCredential::CredentialSet GetWifiCredentialsForShillProfile(
chromeos::NetworkStateHandler* network_state_handler,
const std::string& shill_profile_path) {
DCHECK(network_state_handler);
chromeos::NetworkStateHandler::NetworkStateList networks;
network_state_handler->GetNetworkListByType(
chromeos::NetworkTypePattern::WiFi(), true /* configured_only */,
false /* visible_only */, 0 /* unlimited result size */, &networks);
auto credentials(WifiCredential::MakeSet());
for (const chromeos::NetworkState* network : networks) {
if (network->profile_path() != shill_profile_path)
continue;
// TODO(quiche): Fill in the actual passphrase via an asynchronous
// call to a chromeos::NetworkConfigurationHandler instance's
// GetProperties method.
std::unique_ptr<WifiCredential> credential = WifiCredential::Create(
network->raw_ssid(),
WifiSecurityClassFromShillSecurity(network->security_class()),
"" /* empty passphrase */);
if (!credential)
LOG(ERROR) << "Failed to create credential";
else
credentials.insert(*credential);
}
return credentials;
}
} // namespace sync_wifi