| Index: ppapi/shared_impl/private/net_address_private_impl.cc
|
| diff --git a/ppapi/shared_impl/private/net_address_private_impl.cc b/ppapi/shared_impl/private/net_address_private_impl.cc
|
| index 74f9f3da6f3061e13032d2967d90cd9363ca85f4..fb9d47b9a5698c9789fff98c4f18c1255cd5d051 100644
|
| --- a/ppapi/shared_impl/private/net_address_private_impl.cc
|
| +++ b/ppapi/shared_impl/private/net_address_private_impl.cc
|
| @@ -330,6 +330,30 @@ void GetAnyAddress(PP_Bool is_ipv6, PP_NetAddress_Private* addr) {
|
| }
|
| }
|
|
|
| +void CreateFromIPv4Address(const uint8_t ip[4],
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out) {
|
| + sockaddr_in* a = reinterpret_cast<sockaddr_in*>(addr_out->data);
|
| + addr_out->size = sizeof(*a);
|
| + memset(a, 0, sizeof(*a));
|
| + a->sin_family = AF_INET;
|
| + memcpy(&(a->sin_addr), ip, sizeof(a->sin_addr));
|
| + a->sin_port = htons(port);
|
| +}
|
| +
|
| +void CreateFromIPv6Address(const uint8_t ip[16],
|
| + uint32_t scope_id,
|
| + uint16_t port,
|
| + struct PP_NetAddress_Private* addr_out) {
|
| + sockaddr_in6* a = reinterpret_cast<sockaddr_in6*>(addr_out->data);
|
| + addr_out->size = sizeof(*a);
|
| + memset(a, 0, sizeof(*a));
|
| + a->sin6_family = AF_INET6;
|
| + memcpy(&(a->sin6_addr), ip, sizeof(a->sin6_addr));
|
| + a->sin6_port = htons(port);
|
| + a->sin6_scope_id = scope_id;
|
| +}
|
| +
|
| const PPB_NetAddress_Private_0_1 net_address_private_interface_0_1 = {
|
| &AreEqual,
|
| &AreHostsEqual,
|
| @@ -346,7 +370,9 @@ const PPB_NetAddress_Private_1_0 net_address_private_interface_1_0 = {
|
| &GetAnyAddress,
|
| &GetFamily,
|
| &GetPort,
|
| - &GetAddress
|
| + &GetAddress,
|
| + &CreateFromIPv4Address,
|
| + &CreateFromIPv6Address
|
| };
|
|
|
| } // namespace
|
|
|