| Index: ppapi/cpp/private/net_address_private.cc
|
| diff --git a/ppapi/cpp/private/net_address_private.cc b/ppapi/cpp/private/net_address_private.cc
|
| index 1da2115cecf8cbfedb67e0bfd7a4f43ba2f5ebbd..0e881c7c97b41e687e1f4d420c8e277155ea03c3 100644
|
| --- a/ppapi/cpp/private/net_address_private.cc
|
| +++ b/ppapi/cpp/private/net_address_private.cc
|
| @@ -13,6 +13,10 @@ namespace pp {
|
|
|
| namespace {
|
|
|
| +template <> const char* interface_name<PPB_NetAddress_Private_1_1>() {
|
| + return PPB_NETADDRESS_PRIVATE_INTERFACE_1_1;
|
| +}
|
| +
|
| template <> const char* interface_name<PPB_NetAddress_Private_1_0>() {
|
| return PPB_NETADDRESS_PRIVATE_INTERFACE_1_0;
|
| }
|
| @@ -25,13 +29,18 @@ template <> const char* interface_name<PPB_NetAddress_Private_0_1>() {
|
|
|
| // static
|
| bool NetAddressPrivate::IsAvailable() {
|
| - return has_interface<PPB_NetAddress_Private_1_0>() ||
|
| - has_interface<PPB_NetAddress_Private_0_1>();
|
| + return has_interface<PPB_NetAddress_Private_1_1>() ||
|
| + has_interface<PPB_NetAddress_Private_1_0>() ||
|
| + has_interface<PPB_NetAddress_Private_0_1>();
|
| }
|
|
|
| // static
|
| bool NetAddressPrivate::AreEqual(const PP_NetAddress_Private& addr1,
|
| const PP_NetAddress_Private& addr2) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + return !!get_interface<PPB_NetAddress_Private_1_1>()->AreEqual(&addr1,
|
| + &addr2);
|
| + }
|
| if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| return !!get_interface<PPB_NetAddress_Private_1_0>()->AreEqual(&addr1,
|
| &addr2);
|
| @@ -46,6 +55,10 @@ bool NetAddressPrivate::AreEqual(const PP_NetAddress_Private& addr1,
|
| // static
|
| bool NetAddressPrivate::AreHostsEqual(const PP_NetAddress_Private& addr1,
|
| const PP_NetAddress_Private& addr2) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + return !!get_interface<PPB_NetAddress_Private_1_1>()->AreHostsEqual(&addr1,
|
| + &addr2);
|
| + }
|
| if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| return !!get_interface<PPB_NetAddress_Private_1_0>()->AreHostsEqual(&addr1,
|
| &addr2);
|
| @@ -65,7 +78,12 @@ std::string NetAddressPrivate::Describe(const PP_NetAddress_Private& addr,
|
| return std::string();
|
|
|
| PP_Var result_pp_var = PP_MakeUndefined();
|
| - if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + result_pp_var = get_interface<PPB_NetAddress_Private_1_1>()->Describe(
|
| + module->pp_module(),
|
| + &addr,
|
| + PP_FromBool(include_port));
|
| + } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| result_pp_var = get_interface<PPB_NetAddress_Private_1_0>()->Describe(
|
| module->pp_module(),
|
| &addr,
|
| @@ -85,6 +103,11 @@ std::string NetAddressPrivate::Describe(const PP_NetAddress_Private& addr,
|
| bool NetAddressPrivate::ReplacePort(const PP_NetAddress_Private& addr_in,
|
| uint16_t port,
|
| PP_NetAddress_Private* addr_out) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + return !!get_interface<PPB_NetAddress_Private_1_1>()->ReplacePort(&addr_in,
|
| + port,
|
| + addr_out);
|
| + }
|
| if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| return !!get_interface<PPB_NetAddress_Private_1_0>()->ReplacePort(&addr_in,
|
| port,
|
| @@ -99,22 +122,32 @@ bool NetAddressPrivate::ReplacePort(const PP_NetAddress_Private& addr_in,
|
| }
|
|
|
| // static
|
| -void NetAddressPrivate::GetAnyAddress(bool is_ipv6,
|
| +bool NetAddressPrivate::GetAnyAddress(bool is_ipv6,
|
| PP_NetAddress_Private* addr) {
|
| - if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + get_interface<PPB_NetAddress_Private_1_1>()->GetAnyAddress(
|
| + PP_FromBool(is_ipv6),
|
| + addr);
|
| + return true;
|
| + } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| get_interface<PPB_NetAddress_Private_1_0>()->GetAnyAddress(
|
| PP_FromBool(is_ipv6),
|
| addr);
|
| + return true;
|
| } else if (has_interface<PPB_NetAddress_Private_0_1>()) {
|
| get_interface<PPB_NetAddress_Private_0_1>()->GetAnyAddress(
|
| PP_FromBool(is_ipv6),
|
| addr);
|
| + return true;
|
| }
|
| + return false;
|
| }
|
|
|
| // static
|
| PP_NetAddressFamily_Private NetAddressPrivate::GetFamily(
|
| const PP_NetAddress_Private& addr) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>())
|
| + return get_interface<PPB_NetAddress_Private_1_1>()->GetFamily(&addr);
|
| if (has_interface<PPB_NetAddress_Private_1_0>())
|
| return get_interface<PPB_NetAddress_Private_1_0>()->GetFamily(&addr);
|
| return PP_NETADDRESSFAMILY_UNSPECIFIED;
|
| @@ -122,6 +155,8 @@ PP_NetAddressFamily_Private NetAddressPrivate::GetFamily(
|
|
|
| // static
|
| uint16_t NetAddressPrivate::GetPort(const PP_NetAddress_Private& addr) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>())
|
| + return get_interface<PPB_NetAddress_Private_1_1>()->GetPort(&addr);
|
| if (has_interface<PPB_NetAddress_Private_1_0>())
|
| return get_interface<PPB_NetAddress_Private_1_0>()->GetPort(&addr);
|
| return 0;
|
| @@ -131,6 +166,12 @@ uint16_t NetAddressPrivate::GetPort(const PP_NetAddress_Private& addr) {
|
| bool NetAddressPrivate::GetAddress(const PP_NetAddress_Private& addr,
|
| void* address,
|
| uint16_t address_size) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + return PP_ToBool(get_interface<PPB_NetAddress_Private_1_1>()->GetAddress(
|
| + &addr,
|
| + address,
|
| + address_size));
|
| + }
|
| if (has_interface<PPB_NetAddress_Private_1_0>()) {
|
| return PP_ToBool(get_interface<PPB_NetAddress_Private_1_0>()->GetAddress(
|
| &addr,
|
| @@ -140,4 +181,38 @@ bool NetAddressPrivate::GetAddress(const PP_NetAddress_Private& addr,
|
| return false;
|
| }
|
|
|
| +// static
|
| +uint32_t NetAddressPrivate::GetScopeID(const PP_NetAddress_Private& addr) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>())
|
| + return get_interface<PPB_NetAddress_Private_1_1>()->GetScopeID(&addr);
|
| + return 0;
|
| +}
|
| +
|
| +// static
|
| +bool NetAddressPrivate::CreateFromIPv4Address(
|
| + const uint8_t ip[4],
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv4Address(
|
| + ip, port, addr_out);
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +// static
|
| +bool NetAddressPrivate::CreateFromIPv6Address(
|
| + const uint8_t ip[16],
|
| + uint32_t scope_id,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out) {
|
| + if (has_interface<PPB_NetAddress_Private_1_1>()) {
|
| + get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv6Address(
|
| + ip, scope_id, port, addr_out);
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| } // namespace pp
|
|
|