| Index: ppapi/cpp/private/tcp_socket_private.cc
|
| diff --git a/ppapi/cpp/private/tcp_socket_private.cc b/ppapi/cpp/private/tcp_socket_private.cc
|
| index f60f2ef71643468c505ce4e2dca68a19980820dd..996e0a0f513f7c76d452e11b03963709033a0241 100644
|
| --- a/ppapi/cpp/private/tcp_socket_private.cc
|
| +++ b/ppapi/cpp/private/tcp_socket_private.cc
|
| @@ -15,6 +15,10 @@ namespace pp {
|
|
|
| namespace {
|
|
|
| +template <> const char* interface_name<PPB_TCPSocket_Private_0_5>() {
|
| + return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5;
|
| +}
|
| +
|
| template <> const char* interface_name<PPB_TCPSocket_Private_0_4>() {
|
| return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4;
|
| }
|
| @@ -26,7 +30,10 @@ template <> const char* interface_name<PPB_TCPSocket_Private_0_3>() {
|
| } // namespace
|
|
|
| TCPSocketPrivate::TCPSocketPrivate(const InstanceHandle& instance) {
|
| - if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_5>()->Create(
|
| + instance.pp_instance()));
|
| + } else if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_4>()->Create(
|
| instance.pp_instance()));
|
| } else if (has_interface<PPB_TCPSocket_Private_0_3>()) {
|
| @@ -41,13 +48,18 @@ TCPSocketPrivate::TCPSocketPrivate(PassRef, PP_Resource resource)
|
|
|
| // static
|
| bool TCPSocketPrivate::IsAvailable() {
|
| - return has_interface<PPB_TCPSocket_Private_0_4>() ||
|
| + return has_interface<PPB_TCPSocket_Private_0_5>() ||
|
| + has_interface<PPB_TCPSocket_Private_0_4>() ||
|
| has_interface<PPB_TCPSocket_Private_0_3>();
|
| }
|
|
|
| int32_t TCPSocketPrivate::Connect(const char* host,
|
| uint16_t port,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->Connect(
|
| + pp_resource(), host, port, callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->Connect(
|
| pp_resource(), host, port, callback.pp_completion_callback());
|
| @@ -62,6 +74,10 @@ int32_t TCPSocketPrivate::Connect(const char* host,
|
| int32_t TCPSocketPrivate::ConnectWithNetAddress(
|
| const PP_NetAddress_Private* addr,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->ConnectWithNetAddress(
|
| + pp_resource(), addr, callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->ConnectWithNetAddress(
|
| pp_resource(), addr, callback.pp_completion_callback());
|
| @@ -74,6 +90,11 @@ int32_t TCPSocketPrivate::ConnectWithNetAddress(
|
| }
|
|
|
| bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
|
| + GetLocalAddress(pp_resource(), local_addr);
|
| + return PP_ToBool(result);
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
|
| GetLocalAddress(pp_resource(), local_addr);
|
| @@ -88,6 +109,11 @@ bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) {
|
| }
|
|
|
| bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
|
| + GetRemoteAddress(pp_resource(), remote_addr);
|
| + return PP_ToBool(result);
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
|
| GetRemoteAddress(pp_resource(), remote_addr);
|
| @@ -104,6 +130,11 @@ bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) {
|
| int32_t TCPSocketPrivate::SSLHandshake(const char* server_name,
|
| uint16_t server_port,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->SSLHandshake(
|
| + pp_resource(), server_name, server_port,
|
| + callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->SSLHandshake(
|
| pp_resource(), server_name, server_port,
|
| @@ -118,6 +149,11 @@ int32_t TCPSocketPrivate::SSLHandshake(const char* server_name,
|
| }
|
|
|
| X509CertificatePrivate TCPSocketPrivate::GetServerCertificate() {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return X509CertificatePrivate(PASS_REF,
|
| + get_interface<PPB_TCPSocket_Private_0_5>()->GetServerCertificate(
|
| + pp_resource()));
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return X509CertificatePrivate(PASS_REF,
|
| get_interface<PPB_TCPSocket_Private_0_4>()->GetServerCertificate(
|
| @@ -129,6 +165,11 @@ X509CertificatePrivate TCPSocketPrivate::GetServerCertificate() {
|
| bool TCPSocketPrivate::AddChainBuildingCertificate(
|
| const X509CertificatePrivate& cert,
|
| bool trusted) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_5>()->
|
| + AddChainBuildingCertificate(pp_resource(), cert.pp_resource(),
|
| + PP_FromBool(trusted)));
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_4>()->
|
| AddChainBuildingCertificate(pp_resource(), cert.pp_resource(),
|
| @@ -140,6 +181,11 @@ bool TCPSocketPrivate::AddChainBuildingCertificate(
|
| int32_t TCPSocketPrivate::Read(char* buffer,
|
| int32_t bytes_to_read,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->Read(
|
| + pp_resource(), buffer, bytes_to_read,
|
| + callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->Read(
|
| pp_resource(), buffer, bytes_to_read,
|
| @@ -156,6 +202,11 @@ int32_t TCPSocketPrivate::Read(char* buffer,
|
| int32_t TCPSocketPrivate::Write(const char* buffer,
|
| int32_t bytes_to_write,
|
| const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->Write(
|
| + pp_resource(), buffer, bytes_to_write,
|
| + callback.pp_completion_callback());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->Write(
|
| pp_resource(), buffer, bytes_to_write,
|
| @@ -170,6 +221,10 @@ int32_t TCPSocketPrivate::Write(const char* buffer,
|
| }
|
|
|
| void TCPSocketPrivate::Disconnect() {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->Disconnect(
|
| + pp_resource());
|
| + }
|
| if (has_interface<PPB_TCPSocket_Private_0_4>()) {
|
| return get_interface<PPB_TCPSocket_Private_0_4>()->Disconnect(
|
| pp_resource());
|
| @@ -180,4 +235,14 @@ void TCPSocketPrivate::Disconnect() {
|
| }
|
| }
|
|
|
| +int32_t TCPSocketPrivate::SetOption(PP_TCPSocketOption_Private name,
|
| + const Var& value,
|
| + const CompletionCallback& callback) {
|
| + if (has_interface<PPB_TCPSocket_Private_0_5>()) {
|
| + return get_interface<PPB_TCPSocket_Private_0_5>()->SetOption(
|
| + pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
|
| + }
|
| + return callback.MayForce(PP_ERROR_NOINTERFACE);
|
| +}
|
| +
|
| } // namespace pp
|
|
|