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

Unified Diff: ppapi/proxy/ppb_udp_socket_private_proxy.cc

Issue 10735056: AllowBroadcast() is exposed to NaCl. (Closed) Base URL: http://git.chromium.org/chromium/src.git@udp_broadcast
Patch Set: Fixed comments. Created 8 years, 4 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/proxy/ppb_udp_socket_private_proxy.cc
diff --git a/ppapi/proxy/ppb_udp_socket_private_proxy.cc b/ppapi/proxy/ppb_udp_socket_private_proxy.cc
index 1e3a002cfb83c9bbc3e40806a6a79d9bcf862fd5..990d201b1ebe650eab54170f81f909ab865157fa 100644
--- a/ppapi/proxy/ppb_udp_socket_private_proxy.cc
+++ b/ppapi/proxy/ppb_udp_socket_private_proxy.cc
@@ -7,6 +7,7 @@
#include <map>
#include "base/logging.h"
+#include "ppapi/c/private/ppb_udp_socket_private.h"
#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/plugin_globals.h"
#include "ppapi/proxy/plugin_proxy_delegate.h"
@@ -29,6 +30,8 @@ class UDPSocket : public UDPSocketPrivateImpl {
UDPSocket(const HostResource& resource, uint32 socket_id);
virtual ~UDPSocket();
+ virtual void SendSetSocketFeature(PP_UDPSocketFeature_Private name,
+ PP_Var value) OVERRIDE;
virtual void SendBind(const PP_NetAddress_Private& addr) OVERRIDE;
virtual void SendRecvFrom(int32_t num_bytes) OVERRIDE;
virtual void SendSendTo(const std::string& data,
@@ -53,6 +56,21 @@ UDPSocket::~UDPSocket() {
Close();
}
+void UDPSocket::SendSetSocketFeature(PP_UDPSocketFeature_Private name,
+ PP_Var value) {
+ switch (name) {
+ case PP_UDPSOCKETFEATURE_ADDRESS_REUSE:
+ case PP_UDPSOCKETFEATURE_BROADCAST:
+ DCHECK_EQ(PP_VARTYPE_BOOL, value.type);
+ SendToBrowser(new PpapiHostMsg_PPBUDPSocket_SetBoolSocketFeature(
+ API_ID_PPB_UDPSOCKET_PRIVATE, socket_id_,
+ name, (value.value.as_bool == PP_TRUE)));
brettw 2012/08/20 04:34:45 You can use PP_ToBool. Actually, I'd probably just
ygorshenin1 2012/08/20 12:08:01 Done. Yes, I considered this way. It's possible t
brettw 2012/08/20 17:55:15 The implementation of in process plugins and the p
ygorshenin1 2012/08/21 12:00:27 As was decided in the discussion, PpapiHostMsg_PPB
+ break;
+ default:
+ NOTREACHED();
+ }
+}
+
void UDPSocket::SendBind(const PP_NetAddress_Private& addr) {
SendToBrowser(new PpapiHostMsg_PPBUDPSocket_Bind(
API_ID_PPB_UDPSOCKET_PRIVATE, socket_id_, addr));
@@ -112,6 +130,8 @@ PP_Resource PPB_UDPSocket_Private_Proxy::CreateProxyResource(
bool PPB_UDPSocket_Private_Proxy::OnMessageReceived(const IPC::Message& msg) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PPB_UDPSocket_Private_Proxy, msg)
+ IPC_MESSAGE_HANDLER(PpapiMsg_PPBUDPSocket_SetSocketFeatureACK,
+ OnMsgSetSocketFeatureACK)
IPC_MESSAGE_HANDLER(PpapiMsg_PPBUDPSocket_BindACK,
OnMsgBindACK)
IPC_MESSAGE_HANDLER(PpapiMsg_PPBUDPSocket_RecvFromACK,
@@ -123,6 +143,20 @@ bool PPB_UDPSocket_Private_Proxy::OnMessageReceived(const IPC::Message& msg) {
return handled;
}
+void PPB_UDPSocket_Private_Proxy::OnMsgSetSocketFeatureACK(
+ uint32 /* plugin_dispatcher_id */,
+ uint32 socket_id,
+ bool succeeded) {
+ if (!g_id_to_socket) {
+ NOTREACHED();
+ return;
+ }
+ IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id);
+ if (iter == g_id_to_socket->end())
+ return;
+ iter->second->OnSetSocketFeatureCompleted(succeeded);
+}
+
void PPB_UDPSocket_Private_Proxy::OnMsgBindACK(
uint32 /* plugin_dispatcher_id */,
uint32 socket_id,

Powered by Google App Engine
This is Rietveld 408576698