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..0d6de68fcc0ffb063d4980a4d1c0303b91d19f24 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,14 @@ PepperUDPSocket::~PepperUDPSocket() { |
socket_->Close(); |
} |
+void PepperUDPSocket::AllowAddressReuse(bool value) { |
+ allow_address_reuse_ = value; |
+} |
+ |
+void PepperUDPSocket::AllowBroadcast(bool value) { |
+ allow_broadcast_ = value; |
+} |
+ |
void PepperUDPSocket::Bind(const PP_NetAddress_Private& addr) { |
socket_.reset(new net::UDPServerSocket(NULL, net::NetLog::Source())); |
@@ -47,6 +57,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 && |