Index: ppapi/proxy/udp_socket_private_resource.cc |
diff --git a/ppapi/proxy/udp_socket_private_resource.cc b/ppapi/proxy/udp_socket_private_resource.cc |
index cd2333c9df9b79930a8035d34525bdb4bb914e1c..650bd325e907a506e791b224be600f092fa777ee 100644 |
--- a/ppapi/proxy/udp_socket_private_resource.cc |
+++ b/ppapi/proxy/udp_socket_private_resource.cc |
@@ -4,6 +4,8 @@ |
#include "ppapi/proxy/udp_socket_private_resource.h" |
+#include "base/logging.h" |
+#include "ppapi/c/dev/ppb_udp_socket_dev.h" |
#include "ppapi/shared_impl/tracked_callback.h" |
namespace ppapi { |
@@ -11,7 +13,7 @@ namespace proxy { |
UDPSocketPrivateResource::UDPSocketPrivateResource(Connection connection, |
PP_Instance instance) |
- : UDPSocketResourceBase(connection, instance) { |
+ : UDPSocketResourceBase(connection, instance, true) { |
} |
UDPSocketPrivateResource::~UDPSocketPrivateResource() { |
@@ -25,7 +27,22 @@ UDPSocketPrivateResource::AsPPB_UDPSocket_Private_API() { |
int32_t UDPSocketPrivateResource::SetSocketFeature( |
PP_UDPSocketFeature_Private name, |
PP_Var value) { |
- return SetSocketFeatureImpl(name, value); |
+ PP_UDPSocket_Option_Dev public_name = PP_UDPSOCKET_OPTION_ADDRESS_REUSE; |
+ switch (name) { |
+ case PP_UDPSOCKETFEATURE_ADDRESS_REUSE: |
+ // |public_name| has been initialized above. |
+ break; |
+ case PP_UDPSOCKETFEATURE_BROADCAST: |
+ public_name = PP_UDPSOCKET_OPTION_BROADCAST; |
+ break; |
+ case PP_UDPSOCKETFEATURE_COUNT: |
+ return PP_ERROR_BADARGUMENT; |
+ default: |
+ NOTREACHED(); |
+ return PP_ERROR_BADARGUMENT; |
+ } |
+ int32_t result = SetOptionImpl(public_name, value, NULL); |
+ return result == PP_OK_COMPLETIONPENDING ? PP_OK : result; |
} |
int32_t UDPSocketPrivateResource::Bind( |