| Index: remoting/client/plugin/pepper_network_manager.cc
|
| diff --git a/remoting/client/plugin/pepper_network_manager.cc b/remoting/client/plugin/pepper_network_manager.cc
|
| index afe79a00419098765a497a7ae976c88a63791b22..d4fa68f5dd1d166ed0f71a2b7b67b38d709963c3 100644
|
| --- a/remoting/client/plugin/pepper_network_manager.cc
|
| +++ b/remoting/client/plugin/pepper_network_manager.cc
|
| @@ -9,8 +9,10 @@
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/thread_task_runner_handle.h"
|
| #include "ppapi/cpp/module.h"
|
| +#include "ppapi/cpp/net_address.h"
|
| #include "ppapi/cpp/private/network_list_private.h"
|
| -#include "ppapi/cpp/private/net_address_private.h"
|
| +#include "remoting/client/plugin/pepper_util.h"
|
| +#include "third_party/libjingle/source/talk/base/socketaddress.h"
|
|
|
| namespace remoting {
|
|
|
| @@ -56,47 +58,21 @@ void PepperNetworkManager::OnNetworkList(const pp::NetworkListPrivate& list) {
|
| std::vector<talk_base::Network*> networks;
|
| size_t count = list.GetCount();
|
| for (size_t i = 0; i < count; i++) {
|
| - std::vector<PP_NetAddress_Private> addresses;
|
| + std::vector<pp::NetAddress> addresses;
|
| list.GetIpAddresses(i, &addresses);
|
|
|
| if (addresses.size() == 0)
|
| continue;
|
|
|
| - char address_bytes[sizeof(in6_addr)];
|
| - if (!pp::NetAddressPrivate::GetAddress(
|
| - addresses[0], &address_bytes, sizeof(address_bytes))) {
|
| - LOG(ERROR) << "Failed to get address for network interface.";
|
| - continue;
|
| - }
|
| + talk_base::Network* network = new talk_base::Network(
|
| + list.GetName(i), list.GetDisplayName(i), talk_base::IPAddress(), 0);
|
|
|
| - int prefix_length;
|
| -
|
| - // TODO(sergeyu): Copy all addresses, not only the first one.
|
| - talk_base::IPAddress address;
|
| - switch (pp::NetAddressPrivate::GetFamily(addresses[0])) {
|
| - case PP_NETADDRESSFAMILY_PRIVATE_IPV4: {
|
| - in_addr* address_ipv4 = reinterpret_cast<in_addr*>(address_bytes);
|
| - address = talk_base::IPAddress(*address_ipv4);
|
| - prefix_length = sizeof(in_addr) * 8;
|
| - break;
|
| - }
|
| -
|
| - case PP_NETADDRESSFAMILY_PRIVATE_IPV6: {
|
| - in6_addr* address_ipv6 = reinterpret_cast<in6_addr*>(address_bytes);
|
| - address = talk_base::IPAddress(*address_ipv6);
|
| - prefix_length = sizeof(in6_addr) * 8;
|
| - break;
|
| - }
|
| -
|
| - default:
|
| - LOG(WARNING) << "Skipping address with unknown family: "
|
| - << pp::NetAddressPrivate::GetFamily(addresses[0]);
|
| - continue;
|
| + for (size_t i = 0; i < addresses.size(); ++i) {
|
| + talk_base::SocketAddress address;
|
| + PpNetAddressToSocketAddress(addresses[i], &address);
|
| + network->AddIP(address.ipaddr());
|
| }
|
|
|
| - talk_base::Network* network = new talk_base::Network(
|
| - list.GetName(i), list.GetDisplayName(i), address, prefix_length);
|
| - network->AddIP(address);
|
| networks.push_back(network);
|
| }
|
|
|
|
|