summaryrefslogtreecommitdiffstats
path: root/ppapi/native_client
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/native_client')
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_net_address_private_rpc_server.cc74
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc6
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.cc86
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.h3
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_net_address_private.srpc19
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc53
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc46
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h16
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h13
9 files changed, 311 insertions, 5 deletions
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 55de726..6d355a9 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
@@ -177,3 +177,77 @@ void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetAnyAddress(
rpc->result = NACL_SRPC_RESULT_OK;
}
+
+void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetFamily(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ // input
+ nacl_abi_size_t addr_bytes, char* addr,
+ // output
+ int32_t* addr_family) {
+ NaClSrpcClosureRunner runner(done);
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR;
+
+ if (addr_bytes !=
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
+ return;
+ }
+
+ *addr_family = PPBNetAddressPrivateInterface()->GetFamily(
+ reinterpret_cast<PP_NetAddress_Private*>(addr));
+
+ DebugPrintf("PPB_NetAddress_Private::GetFamily\n");
+
+ rpc->result = NACL_SRPC_RESULT_OK;
+}
+
+void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetPort(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ // input
+ nacl_abi_size_t addr_bytes, char* addr,
+ // output
+ int32_t* port) {
+ NaClSrpcClosureRunner runner(done);
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR;
+
+ if (addr_bytes !=
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
+ return;
+ }
+
+ *port = PPBNetAddressPrivateInterface()->GetPort(
+ reinterpret_cast<PP_NetAddress_Private*>(addr));
+
+ DebugPrintf("PPB_NetAddress_Private::GetPort\n");
+
+ rpc->result = NACL_SRPC_RESULT_OK;
+}
+
+void PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetAddress(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ // input
+ nacl_abi_size_t addr_bytes, char* addr,
+ // output
+ nacl_abi_size_t* address_bytes, char* address,
+ int32_t* success) {
+ NaClSrpcClosureRunner runner(done);
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR;
+
+ if (addr_bytes !=
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private))) {
+ return;
+ }
+
+ PP_Bool pp_success = PPBNetAddressPrivateInterface()->GetAddress(
+ reinterpret_cast<PP_NetAddress_Private*>(addr),
+ address, static_cast<uint16_t>(*address_bytes));
+
+ DebugPrintf("PPB_NetAddress_Private::GetAddress: pp_success=%d\n",
+ pp_success);
+
+ *success = (pp_success == PP_TRUE);
+ rpc->result = NACL_SRPC_RESULT_OK;
+}
+
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc
index 8d1734d..b33400c 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb.cc
@@ -82,8 +82,10 @@ InterfaceMapElement interface_map[] = {
{ PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1,
PluginInputEvent::GetMouseInterface1_1(), true },
{ PPB_MOUSELOCK_INTERFACE, PluginMouseLock::GetInterface(), true },
- { PPB_NETADDRESS_PRIVATE_INTERFACE, PluginNetAddressPrivate::GetInterface(),
- true },
+ { PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
+ PluginNetAddressPrivate::GetInterface0_1(), true },
+ { PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
+ PluginNetAddressPrivate::GetInterface1_0(), true },
{ PPB_OPENGLES2_INTERFACE, PluginGraphics3D::GetOpenGLESInterface(),
true },
{ PPB_PDF_INTERFACE, PluginPDF::GetInterface(), true },
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 521217c..bf4989b 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
@@ -159,15 +159,97 @@ void GetAnyAddress(PP_Bool is_ipv6, PP_NetAddress_Private* addr) {
NaClSrpcErrorString(srpc_result));
}
+uint16_t GetFamily(const PP_NetAddress_Private* addr) {
+ DebugPrintf("PPB_NetAddress_Private::GetFamily\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 addr_family;
+
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetFamily(
+ GetMainSrpcChannel(),
+ addr_bytes, raw_addr,
+ &addr_family);
+
+ DebugPrintf("PPB_NetAddress_Private::GetFamily: %s\n",
+ NaClSrpcErrorString(srpc_result));
+
+ return static_cast<uint16_t>(static_cast<uint32_t>(addr_family));
+}
+
+uint16_t GetPort(const PP_NetAddress_Private* addr) {
+ DebugPrintf("PPB_NetAddress_Private::GetPort\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 port;
+
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetPort(
+ GetMainSrpcChannel(),
+ addr_bytes, raw_addr,
+ &port);
+
+ DebugPrintf("PPB_NetAddress_Private::GetPort: %s\n",
+ NaClSrpcErrorString(srpc_result));
+
+ return static_cast<uint16_t>(static_cast<uint32_t>(port));
+}
+
+PP_Bool GetAddress(const PP_NetAddress_Private* addr,
+ void* address,
+ uint16_t address_size) {
+ DebugPrintf("PP_NetAddress_Private::GetAddress");
+
+ int32_t success = 0;
+ char* const raw_addr =
+ reinterpret_cast<char*>(const_cast<PP_NetAddress_Private*>(addr));
+ nacl_abi_size_t address_bytes_size = address_size;
+ NaClSrpcError srpc_result =
+ PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetAddress(
+ GetMainSrpcChannel(),
+ static_cast<nacl_abi_size_t>(sizeof(PP_NetAddress_Private)), raw_addr,
+ &address_bytes_size, static_cast<char*>(address),
+ &success);
+
+ DebugPrintf("PPB_NetAddressPrivate::GetAddress: %s\n",
+ NaClSrpcErrorString(srpc_result));
+
+ if (srpc_result == NACL_SRPC_RESULT_OK && success)
+ return PP_TRUE;
+ return PP_FALSE;
+}
+
} // namespace
-const PPB_NetAddress_Private* PluginNetAddressPrivate::GetInterface() {
- static const PPB_NetAddress_Private netaddress_private_interface = {
+// static
+const PPB_NetAddress_Private_0_1* PluginNetAddressPrivate::GetInterface0_1() {
+ static const PPB_NetAddress_Private_0_1 netaddress_private_interface = {
+ AreEqual,
+ AreHostsEqual,
+ Describe,
+ ReplacePort,
+ GetAnyAddress
+ };
+ return &netaddress_private_interface;
+}
+
+// static
+const PPB_NetAddress_Private_1_0* PluginNetAddressPrivate::GetInterface1_0() {
+ static const PPB_NetAddress_Private_1_0 netaddress_private_interface = {
AreEqual,
AreHostsEqual,
Describe,
ReplacePort,
GetAnyAddress,
+ GetFamily,
+ GetPort,
+ GetAddress
};
return &netaddress_private_interface;
}
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.h b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.h
index 8c81c8c..e08d3b2 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.h
+++ b/ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_net_address_private.h
@@ -13,7 +13,8 @@ namespace ppapi_proxy {
// Implements the untrusted side of the PPB_NetAddress_Private interface.
class PluginNetAddressPrivate {
public:
- static const PPB_NetAddress_Private* GetInterface();
+ static const PPB_NetAddress_Private_0_1* GetInterface0_1();
+ static const PPB_NetAddress_Private_1_0* GetInterface1_0();
private:
NACL_DISALLOW_COPY_AND_ASSIGN(PluginNetAddressPrivate);
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_net_address_private.srpc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_net_address_private.srpc
index de66184..6a9f5b9 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_net_address_private.srpc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_net_address_private.srpc
@@ -44,5 +44,24 @@
'outputs': [['addr', 'char[]'], # PP_NetAddress_Private*
]
},
+ {'name': 'PPB_NetAddress_Private_GetFamily',
+ 'inputs': [['addr', 'char[]'], # PP_NetAddress_Private*
+ ],
+ 'outputs': [['addr_family', 'int32_t'], # uint16_t
+ ]
+ },
+ {'name': 'PPB_NetAddress_Private_GetPort',
+ 'inputs': [['addr', 'char[]'], # PP_NetAddress_Private*
+ ],
+ 'outputs': [['port', 'int32_t'], # uint16_t
+ ]
+ },
+ {'name': 'PPB_NetAddress_Private_GetAddress',
+ 'inputs': [['addr', 'char[]'], # PP_NetAddress_Private*
+ ],
+ 'outputs': [['address', 'char[]'],
+ ['success', 'int32_t'], # PP_Bool
+ ]
+ },
]
}
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
index a0d7d44..68c19ab 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
@@ -2026,6 +2026,59 @@ NaClSrpcError PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetAnyAddres
return retval;
}
+NaClSrpcError PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetFamily(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* addr_family) {
+ VCHECK(ppapi_proxy::PPBCoreInterface()->IsMainThread(),
+ ("%s: PPAPI calls are not supported off the main thread\n",
+ __FUNCTION__));
+ NaClSrpcError retval;
+ retval = NaClSrpcInvokeBySignature(
+ channel,
+ "PPB_NetAddress_Private_GetFamily:C:i",
+ addr_bytes, addr,
+ addr_family
+ );
+ return retval;
+}
+
+NaClSrpcError PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetPort(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* port) {
+ VCHECK(ppapi_proxy::PPBCoreInterface()->IsMainThread(),
+ ("%s: PPAPI calls are not supported off the main thread\n",
+ __FUNCTION__));
+ NaClSrpcError retval;
+ retval = NaClSrpcInvokeBySignature(
+ channel,
+ "PPB_NetAddress_Private_GetPort:C:i",
+ addr_bytes, addr,
+ port
+ );
+ return retval;
+}
+
+NaClSrpcError PpbNetAddressPrivateRpcClient::PPB_NetAddress_Private_GetAddress(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ nacl_abi_size_t* address_bytes, char* address,
+ int32_t* success) {
+ VCHECK(ppapi_proxy::PPBCoreInterface()->IsMainThread(),
+ ("%s: PPAPI calls are not supported off the main thread\n",
+ __FUNCTION__));
+ NaClSrpcError retval;
+ retval = NaClSrpcInvokeBySignature(
+ channel,
+ "PPB_NetAddress_Private_GetAddress:C:Ci",
+ addr_bytes, addr,
+ address_bytes, address,
+ success
+ );
+ return retval;
+}
+
NaClSrpcError PpbPdfRpcClient::PPB_PDF_GetLocalizedString(
NaClSrpcChannel* channel,
PP_Instance instance,
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
index 9476805..91fdd0d 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
@@ -1619,6 +1619,49 @@ static void PPB_NetAddress_Private_GetAnyAddressDispatcher(
);
}
+static void PPB_NetAddress_Private_GetFamilyDispatcher(
+ NaClSrpcRpc* rpc,
+ NaClSrpcArg** inputs,
+ NaClSrpcArg** outputs,
+ NaClSrpcClosure* done
+) {
+ PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetFamily(
+ rpc,
+ done,
+ inputs[0]->u.count, inputs[0]->arrays.carr,
+ &(outputs[0]->u.ival)
+ );
+}
+
+static void PPB_NetAddress_Private_GetPortDispatcher(
+ NaClSrpcRpc* rpc,
+ NaClSrpcArg** inputs,
+ NaClSrpcArg** outputs,
+ NaClSrpcClosure* done
+) {
+ PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetPort(
+ rpc,
+ done,
+ inputs[0]->u.count, inputs[0]->arrays.carr,
+ &(outputs[0]->u.ival)
+ );
+}
+
+static void PPB_NetAddress_Private_GetAddressDispatcher(
+ NaClSrpcRpc* rpc,
+ NaClSrpcArg** inputs,
+ NaClSrpcArg** outputs,
+ NaClSrpcClosure* done
+) {
+ PpbNetAddressPrivateRpcServer::PPB_NetAddress_Private_GetAddress(
+ rpc,
+ done,
+ inputs[0]->u.count, inputs[0]->arrays.carr,
+ &(outputs[0]->u.count), outputs[0]->arrays.carr,
+ &(outputs[1]->u.ival)
+ );
+}
+
static void PPB_PDF_GetLocalizedStringDispatcher(
NaClSrpcRpc* rpc,
NaClSrpcArg** inputs,
@@ -2973,6 +3016,9 @@ NaClSrpcHandlerDesc PpbRpcs::srpc_methods[] = {
{ "PPB_NetAddress_Private_Describe:iCi:C", PPB_NetAddress_Private_DescribeDispatcher },
{ "PPB_NetAddress_Private_ReplacePort:Ci:Ci", PPB_NetAddress_Private_ReplacePortDispatcher },
{ "PPB_NetAddress_Private_GetAnyAddress:i:C", PPB_NetAddress_Private_GetAnyAddressDispatcher },
+ { "PPB_NetAddress_Private_GetFamily:C:i", PPB_NetAddress_Private_GetFamilyDispatcher },
+ { "PPB_NetAddress_Private_GetPort:C:i", PPB_NetAddress_Private_GetPortDispatcher },
+ { "PPB_NetAddress_Private_GetAddress:C:Ci", PPB_NetAddress_Private_GetAddressDispatcher },
{ "PPB_PDF_GetLocalizedString:ii:C", PPB_PDF_GetLocalizedStringDispatcher },
{ "PPB_PDF_GetResourceImage:ii:i", PPB_PDF_GetResourceImageDispatcher },
{ "PPB_PDF_GetFontFileWithFallback:iCCi:i", PPB_PDF_GetFontFileWithFallbackDispatcher },
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h b/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
index b2fda1b25..c0e96ee 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
+++ b/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
@@ -841,6 +841,22 @@ class PpbNetAddressPrivateRpcServer {
NaClSrpcClosure* done,
int32_t is_ipv6,
nacl_abi_size_t* addr_bytes, char* addr);
+ static void PPB_NetAddress_Private_GetFamily(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* addr_family);
+ static void PPB_NetAddress_Private_GetPort(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* port);
+ static void PPB_NetAddress_Private_GetAddress(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ nacl_abi_size_t addr_bytes, char* addr,
+ nacl_abi_size_t* address_bytes, char* address,
+ int32_t* success);
private:
PpbNetAddressPrivateRpcServer();
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h b/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
index 6585b48..1f3b993 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
+++ b/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
@@ -737,6 +737,19 @@ class PpbNetAddressPrivateRpcClient {
NaClSrpcChannel* channel,
int32_t is_ipv6,
nacl_abi_size_t* addr_bytes, char* addr);
+ static NaClSrpcError PPB_NetAddress_Private_GetFamily(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* addr_family);
+ static NaClSrpcError PPB_NetAddress_Private_GetPort(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ int32_t* port);
+ static NaClSrpcError PPB_NetAddress_Private_GetAddress(
+ NaClSrpcChannel* channel,
+ nacl_abi_size_t addr_bytes, char* addr,
+ nacl_abi_size_t* address_bytes, char* address,
+ int32_t* success);
private:
PpbNetAddressPrivateRpcClient();