| Index: content/browser/renderer_host/pepper/pepper_udp_socket.cc
|
| diff --git a/content/browser/renderer_host/pepper/pepper_udp_socket.cc b/content/browser/renderer_host/pepper/pepper_udp_socket.cc
|
| index fa0e1b562780caf46a954e3b8e797c90ee7cf0bc..966509829b70d35eb2bf345bbdf44d2981962b08 100644
|
| --- a/content/browser/renderer_host/pepper/pepper_udp_socket.cc
|
| +++ b/content/browser/renderer_host/pepper/pepper_udp_socket.cc
|
| @@ -27,7 +27,9 @@ PepperUDPSocket::PepperUDPSocket(
|
| : manager_(manager),
|
| routing_id_(routing_id),
|
| plugin_dispatcher_id_(plugin_dispatcher_id),
|
| - socket_id_(socket_id) {
|
| + socket_id_(socket_id),
|
| + allow_address_reuse_(false),
|
| + allow_broadcast_(false) {
|
| DCHECK(manager);
|
| }
|
|
|
| @@ -37,6 +39,16 @@ PepperUDPSocket::~PepperUDPSocket() {
|
| socket_->Close();
|
| }
|
|
|
| +void PepperUDPSocket::AllowAddressReuse(bool value) {
|
| + allow_address_reuse_ = value;
|
| + SendSetSocketFeatureACK(true);
|
| +}
|
| +
|
| +void PepperUDPSocket::AllowBroadcast(bool value) {
|
| + allow_broadcast_ = value;
|
| + SendSetSocketFeatureACK(true);
|
| +}
|
| +
|
| void PepperUDPSocket::Bind(const PP_NetAddress_Private& addr) {
|
| socket_.reset(new net::UDPServerSocket(NULL, net::NetLog::Source()));
|
|
|
| @@ -47,6 +59,11 @@ void PepperUDPSocket::Bind(const PP_NetAddress_Private& addr) {
|
| return;
|
| }
|
|
|
| + if (allow_address_reuse_)
|
| + socket_->AllowAddressReuse();
|
| + if (allow_broadcast_)
|
| + socket_->AllowBroadcast();
|
| +
|
| int result = socket_->Listen(address);
|
|
|
| if (result == net::OK &&
|
| @@ -99,6 +116,11 @@ void PepperUDPSocket::SendTo(const std::string& data,
|
| OnSendToCompleted(result);
|
| }
|
|
|
| +void PepperUDPSocket::SendSetSocketFeatureACK(bool succeeded) {
|
| + manager_->Send(new PpapiMsg_PPBUDPSocket_SetSocketFeatureACK(
|
| + routing_id_, plugin_dispatcher_id_, socket_id_, succeeded));
|
| +}
|
| +
|
| void PepperUDPSocket::SendRecvFromACKError() {
|
| PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress;
|
| manager_->Send(new PpapiMsg_PPBUDPSocket_RecvFromACK(
|
|
|