| Index: ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc
|
| diff --git a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc
|
| index f8ca72bd87d23f74d0e56b52ec10b1f72dfd6b78..5a30213add58ad5e00d619dcb040fd7f43bf5adc 100644
|
| --- a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc
|
| +++ b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc
|
| @@ -252,3 +252,87 @@ void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetAddress(
|
| rpc->result = NACL_SRPC_RESULT_OK;
|
| }
|
|
|
| +void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetScopeID(
|
| + NaClSrpcRpc* rpc,
|
| + NaClSrpcClosure* done,
|
| + // input
|
| + nacl_abi_size_t addr_bytes, char* addr,
|
| + // output
|
| + int32_t* scope_id) {
|
| + NaClSrpcClosureRunner runner(done);
|
| + rpc->result = NACL_SRPC_RESULT_APP_ERROR;
|
| +
|
| + if (addr_bytes !=
|
| + static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
|
| + return;
|
| + }
|
| +
|
| + *scope_id = PPBNetAddressPrivateInterface()->GetScopeID(
|
| + reinterpret_cast<PP_NetAddress_Private*>(addr));
|
| +
|
| + DebugPrintf("PPB_NetAddress_Private::GetScopeID\n");
|
| +
|
| + rpc->result = NACL_SRPC_RESULT_OK;
|
| +}
|
| +
|
| +void
|
| +PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_CreateFromIPv4Address(
|
| + NaClSrpcRpc* rpc,
|
| + NaClSrpcClosure* done,
|
| + // input
|
| + nacl_abi_size_t ip_bytes, char* ip,
|
| + int32_t port,
|
| + // output
|
| + nacl_abi_size_t* addr_bytes, char* addr) {
|
| + NaClSrpcClosureRunner runner(done);
|
| + rpc->result = NACL_SRPC_RESULT_APP_ERROR;
|
| +
|
| + if (ip_bytes != static_cast<nacl_abi_size_t>(4))
|
| + return;
|
| + if (port < 0 || port > std::numeric_limits<uint16_t>::max())
|
| + return;
|
| + if (*addr_bytes !=
|
| + static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
|
| + return;
|
| + }
|
| +
|
| + PPBNetAddressPrivateInterface()->CreateFromIPv4Address(
|
| + reinterpret_cast<uint8_t*>(addr), static_cast<uint16_t>(port),
|
| + reinterpret_cast<PP_NetAddress_Private*>(addr));
|
| +
|
| + DebugPrintf("PPB_NetAddress_Private::CreateFromIPv4Address\n");
|
| +
|
| + rpc->result = NACL_SRPC_RESULT_OK;
|
| +}
|
| +
|
| +void
|
| +PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_CreateFromIPv6Address(
|
| + NaClSrpcRpc* rpc,
|
| + NaClSrpcClosure* done,
|
| + // input
|
| + nacl_abi_size_t ip_bytes, char* ip,
|
| + int32_t scope_id,
|
| + int32_t port,
|
| + // output
|
| + nacl_abi_size_t* addr_bytes, char* addr) {
|
| + NaClSrpcClosureRunner runner(done);
|
| + rpc->result = NACL_SRPC_RESULT_APP_ERROR;
|
| +
|
| + if (ip_bytes != static_cast<nacl_abi_size_t>(16))
|
| + return;
|
| + if (port < 0 || port > std::numeric_limits<uint16_t>::max())
|
| + return;
|
| + if (*addr_bytes !=
|
| + static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
|
| + return;
|
| + }
|
| +
|
| + PPBNetAddressPrivateInterface()->CreateFromIPv6Address(
|
| + reinterpret_cast<uint8_t*>(addr), static_cast<uint32_t>(scope_id),
|
| + static_cast<uint16_t>(port),
|
| + reinterpret_cast<PP_NetAddress_Private*>(addr));
|
| +
|
| + DebugPrintf("PPB_NetAddress_Private::CreateFromIPv6Address\n");
|
| +
|
| + rpc->result = NACL_SRPC_RESULT_OK;
|
| +}
|
|
|