Index: ppapi/proxy/udp_socket_resource_base.cc |
diff --git a/ppapi/proxy/udp_socket_resource_base.cc b/ppapi/proxy/udp_socket_resource_base.cc |
index 166f2e30856e1eb868159d1f971dcdd13d4b3715..8ef3835fecabb378ce916533fcbd3f1db5561073 100644 |
--- a/ppapi/proxy/udp_socket_resource_base.cc |
+++ b/ppapi/proxy/udp_socket_resource_base.cc |
@@ -11,6 +11,7 @@ |
#include "ppapi/c/pp_bool.h" |
#include "ppapi/c/pp_completion_callback.h" |
#include "ppapi/c/pp_errors.h" |
+#include "ppapi/proxy/error_conversion.h" |
#include "ppapi/proxy/ppapi_messages.h" |
#include "ppapi/shared_impl/socket_option_data.h" |
#include "ppapi/thunk/enter.h" |
@@ -19,23 +20,6 @@ |
namespace ppapi { |
namespace proxy { |
-namespace { |
- |
-int32_t ConvertPPError(int32_t pp_error, bool private_api) { |
- // The private API doesn't return network-specific error codes or |
- // PP_ERROR_NOACCESS. In order to preserve the behavior, we convert those to |
- // PP_ERROR_FAILED. |
- if (private_api && |
- (pp_error <= PP_ERROR_CONNECTION_CLOSED || |
- pp_error == PP_ERROR_NOACCESS)) { |
- return PP_ERROR_FAILED; |
- } |
- |
- return pp_error; |
-} |
- |
-} // namespace |
- |
const int32_t UDPSocketResourceBase::kMaxReadSize = 1024 * 1024; |
const int32_t UDPSocketResourceBase::kMaxWriteSize = 1024 * 1024; |
const int32_t UDPSocketResourceBase::kMaxSendBufferSize = |
@@ -227,7 +211,7 @@ void UDPSocketResourceBase::OnPluginMsgSetOptionReply( |
scoped_refptr<TrackedCallback> callback, |
const ResourceMessageReplyParams& params) { |
if (TrackedCallback::IsPending(callback)) |
- callback->Run(ConvertPPError(params.result(), private_api_)); |
+ RunCallback(callback, params.result()); |
} |
void UDPSocketResourceBase::OnPluginMsgBindReply( |
@@ -243,7 +227,7 @@ void UDPSocketResourceBase::OnPluginMsgBindReply( |
if (params.result() == PP_OK) |
bound_ = true; |
bound_addr_ = bound_addr; |
- bind_callback_->Run(ConvertPPError(params.result(), private_api_)); |
+ RunCallback(bind_callback_, params.result()); |
} |
void UDPSocketResourceBase::OnPluginMsgRecvFromReply( |
@@ -280,9 +264,9 @@ void UDPSocketResourceBase::OnPluginMsgRecvFromReply( |
recvfrom_addr_ = addr; |
if (result == PP_OK) |
- recvfrom_callback_->Run(static_cast<int32_t>(data.size())); |
+ RunCallback(recvfrom_callback_, static_cast<int32_t>(data.size())); |
else |
- recvfrom_callback_->Run(ConvertPPError(result, private_api_)); |
+ RunCallback(recvfrom_callback_, result); |
} |
void UDPSocketResourceBase::OnPluginMsgSendToReply( |
@@ -292,9 +276,15 @@ void UDPSocketResourceBase::OnPluginMsgSendToReply( |
return; |
if (params.result() == PP_OK) |
- sendto_callback_->Run(bytes_written); |
+ RunCallback(sendto_callback_, bytes_written); |
else |
- sendto_callback_->Run(ConvertPPError(params.result(), private_api_)); |
+ RunCallback(sendto_callback_, params.result()); |
+} |
+ |
+void UDPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback, |
+ int32_t pp_result) { |
+ callback->Run(ConvertNetworkAPIErrorForCompatibility(pp_result, |
+ private_api_)); |
} |
} // namespace proxy |