summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ppapi/cpp/private/flash_tcp_socket.cc10
-rw-r--r--ppapi/thunk/ppb_flash_tcp_socket_thunk.cc28
2 files changed, 22 insertions, 16 deletions
diff --git a/ppapi/cpp/private/flash_tcp_socket.cc b/ppapi/cpp/private/flash_tcp_socket.cc
index f5b4633..82e6414 100644
--- a/ppapi/cpp/private/flash_tcp_socket.cc
+++ b/ppapi/cpp/private/flash_tcp_socket.cc
@@ -36,7 +36,7 @@ int32_t TCPSocket::Connect(const char* host,
uint16_t port,
const CompletionCallback& callback) {
if (!has_interface<PPB_Flash_TCPSocket>())
- return PP_ERROR_NOINTERFACE;
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_Flash_TCPSocket>()->Connect(
pp_resource(), host, port, callback.pp_completion_callback());
}
@@ -44,7 +44,7 @@ int32_t TCPSocket::Connect(const char* host,
int32_t TCPSocket::ConnectWithNetAddress(const PP_Flash_NetAddress* addr,
const CompletionCallback& callback) {
if (!has_interface<PPB_Flash_TCPSocket>())
- return PP_ERROR_NOINTERFACE;
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_Flash_TCPSocket>()->ConnectWithNetAddress(
pp_resource(), addr, callback.pp_completion_callback());
}
@@ -69,7 +69,7 @@ bool TCPSocket::GetRemoteAddress(PP_Flash_NetAddress* remote_addr) {
int32_t TCPSocket::InitiateSSL(const char* server_name,
const CompletionCallback& callback) {
if (!has_interface<PPB_Flash_TCPSocket>())
- return PP_ERROR_NOINTERFACE;
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_Flash_TCPSocket>()->InitiateSSL(
pp_resource(), server_name, callback.pp_completion_callback());
}
@@ -78,7 +78,7 @@ int32_t TCPSocket::Read(char* buffer,
int32_t bytes_to_read,
const CompletionCallback& callback) {
if (!has_interface<PPB_Flash_TCPSocket>())
- return PP_ERROR_NOINTERFACE;
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_Flash_TCPSocket>()->Read(
pp_resource(), buffer, bytes_to_read, callback.pp_completion_callback());
}
@@ -87,7 +87,7 @@ int32_t TCPSocket::Write(const char* buffer,
int32_t bytes_to_write,
const CompletionCallback& callback) {
if (!has_interface<PPB_Flash_TCPSocket>())
- return PP_ERROR_NOINTERFACE;
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
return get_interface<PPB_Flash_TCPSocket>()->Write(
pp_resource(), buffer, bytes_to_write, callback.pp_completion_callback());
}
diff --git a/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc b/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc
index 815dd53..6154d60 100644
--- a/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc
+++ b/ppapi/thunk/ppb_flash_tcp_socket_thunk.cc
@@ -5,8 +5,9 @@
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_flash_tcp_socket.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/common.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/thunk.h"
#include "ppapi/thunk/ppb_flash_tcp_socket_api.h"
#include "ppapi/thunk/resource_creation_api.h"
@@ -33,8 +34,9 @@ int32_t Connect(PP_Resource tcp_socket,
PP_CompletionCallback callback) {
EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true);
if (enter.failed())
- return PP_ERROR_BADRESOURCE;
- return enter.object()->Connect(host, port, callback);
+ return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
+ int32_t result = enter.object()->Connect(host, port, callback);
+ return MayForceCallback(callback, result);
}
int32_t ConnectWithNetAddress(PP_Resource tcp_socket,
@@ -42,8 +44,9 @@ int32_t ConnectWithNetAddress(PP_Resource tcp_socket,
PP_CompletionCallback callback) {
EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true);
if (enter.failed())
- return PP_ERROR_BADRESOURCE;
- return enter.object()->ConnectWithNetAddress(addr, callback);
+ return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
+ int32_t result = enter.object()->ConnectWithNetAddress(addr, callback);
+ return MayForceCallback(callback, result);
}
PP_Bool GetLocalAddress(PP_Resource tcp_socket,
@@ -67,8 +70,9 @@ int32_t InitiateSSL(PP_Resource tcp_socket,
PP_CompletionCallback callback) {
EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true);
if (enter.failed())
- return PP_ERROR_BADRESOURCE;
- return enter.object()->InitiateSSL(server_name, callback);
+ return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
+ int32_t result = enter.object()->InitiateSSL(server_name, callback);
+ return MayForceCallback(callback, result);
}
int32_t Read(PP_Resource tcp_socket,
@@ -77,8 +81,9 @@ int32_t Read(PP_Resource tcp_socket,
PP_CompletionCallback callback) {
EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true);
if (enter.failed())
- return PP_ERROR_BADRESOURCE;
- return enter.object()->Read(buffer, bytes_to_read, callback);
+ return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
+ int32_t result = enter.object()->Read(buffer, bytes_to_read, callback);
+ return MayForceCallback(callback, result);
}
int32_t Write(PP_Resource tcp_socket,
@@ -87,8 +92,9 @@ int32_t Write(PP_Resource tcp_socket,
PP_CompletionCallback callback) {
EnterResource<PPB_Flash_TCPSocket_API> enter(tcp_socket, true);
if (enter.failed())
- return PP_ERROR_BADRESOURCE;
- return enter.object()->Write(buffer, bytes_to_write, callback);
+ return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
+ int32_t result = enter.object()->Write(buffer, bytes_to_write, callback);
+ return MayForceCallback(callback, result);
}
void Disconnect(PP_Resource tcp_socket) {