Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(636)

Unified Diff: ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc

Issue 9808028: NaCl proxy for PPB_NetAddress_Private_1_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc
index 557775eeb136bead9308e4b9db6c178c35714620..7bee1711baca663c8b83d372bc90405fa44cfe1e 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc
@@ -227,6 +227,74 @@ PP_Bool GetAddress(const PP_NetAddress_Private* addr,
return PP_FALSE;
}
+uint32_t GetScopeID(const PP_NetAddress_Private* addr) {
+ DebugPrintf("PPB_NetAddress_Private::GetScopeID\n");
+
+ nacl_abi_size_t addr_bytes =
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private));
+ char* const raw_addr =
+ reinterpret_cast<char*>(const_cast<PP_NetAddress_Private*>(addr));
+ int32_t scope_id;
+
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetScopeID(
+ GetMainSrpcChannel(),
+ addr_bytes,
+ raw_addr, &scope_id);
+
+ DebugPrintf("PPB_NetAddress_Private::GetScopeID: %s\n",
+ NaClSrpcErrorString(srpc_result));
+
+ return static_cast<uint32_t>(scope_id);
+}
+
+void CreateFromIPv4Address(const uint8_t ip[4],
+ uint16_t port,
+ struct PP_NetAddress_Private* addr) {
+ DebugPrintf("PPB_NetAddress_Private::CreateFromIPv4Address\n");
+
+ char* raw_ip = reinterpret_cast<char*>(const_cast<uint8_t*>(ip));
+
+ nacl_abi_size_t addr_bytes =
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private));
+ char* const raw_addr =
+ reinterpret_cast<char*>(const_cast<PP_NetAddress_Private*>(addr));
+
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::
+ PPB_NetAddress_Private_CreateFromIPv4Address(
+ GetMainSrpcChannel(),
+ 4, raw_ip, port,
+ &addr_bytes, raw_addr);
+
+ DebugPrintf("PPB_NetAddress_Private::CreateFromIPv4Address: %s\n",
+ NaClSrpcErrorString(srpc_result));
+}
+
+void CreateFromIPv6Address(const uint8_t ip[16],
+ uint32_t scope_id,
+ uint16_t port,
+ struct PP_NetAddress_Private* addr) {
+ DebugPrintf("PPB_NetAddress_Private::CreateFromIPv6Address\n");
+
+ char* raw_ip = reinterpret_cast<char*>(const_cast<uint8_t*>(ip));
+
+ nacl_abi_size_t addr_bytes =
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private));
+ char* const raw_addr =
+ reinterpret_cast<char*>(const_cast<PP_NetAddress_Private*>(addr));
+
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::
+ PPB_NetAddress_Private_CreateFromIPv6Address(
+ GetMainSrpcChannel(),
+ 16, raw_ip, scope_id, port,
+ &addr_bytes, raw_addr);
+
+ DebugPrintf("PPB_NetAddress_Private::CreateFromIPv6Address: %s\n",
+ NaClSrpcErrorString(srpc_result));
+}
+
} // namespace
// static
@@ -256,4 +324,22 @@ const PPB_NetAddress_Private_1_0* PluginNetAddressPrivate::GetInterface1_0() {
return &netaddress_private_interface;
}
+// static
+const PPB_NetAddress_Private_1_1* PluginNetAddressPrivate::GetInterface1_1() {
+ static const PPB_NetAddress_Private_1_1 netaddress_private_interface = {
+ AreEqual,
+ AreHostsEqual,
+ Describe,
+ ReplacePort,
+ GetAnyAddress,
+ GetFamily,
+ GetPort,
+ GetAddress,
+ GetScopeID,
+ CreateFromIPv4Address,
+ CreateFromIPv6Address
+ };
+ return &netaddress_private_interface;
+}
+
} // namespace ppapi_proxy

Powered by Google App Engine
This is Rietveld 408576698