Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Side by Side Diff: ppapi/thunk/ppb_tcp_socket_private_thunk.cc

Issue 9699100: Add functionality to pppapi TCPSocket to support secure sockets in flash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/c/pp_completion_callback.h" 5 #include "ppapi/c/pp_completion_callback.h"
6 #include "ppapi/c/pp_errors.h" 6 #include "ppapi/c/pp_errors.h"
7 #include "ppapi/c/private/ppb_tcp_socket_private.h" 7 #include "ppapi/c/private/ppb_tcp_socket_private.h"
8 #include "ppapi/thunk/enter.h" 8 #include "ppapi/thunk/enter.h"
9 #include "ppapi/thunk/thunk.h" 9 #include "ppapi/thunk/thunk.h"
10 #include "ppapi/thunk/ppb_tcp_socket_private_api.h" 10 #include "ppapi/thunk/ppb_tcp_socket_private_api.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 const char* server_name, 68 const char* server_name,
69 uint16_t server_port, 69 uint16_t server_port,
70 PP_CompletionCallback callback) { 70 PP_CompletionCallback callback) {
71 EnterTCP enter(tcp_socket, callback, true); 71 EnterTCP enter(tcp_socket, callback, true);
72 if (enter.failed()) 72 if (enter.failed())
73 return enter.retval(); 73 return enter.retval();
74 return enter.SetResult(enter.object()->SSLHandshake(server_name, server_port, 74 return enter.SetResult(enter.object()->SSLHandshake(server_name, server_port,
75 callback)); 75 callback));
76 } 76 }
77 77
78 PP_Resource GetServerCertificate(PP_Resource tcp_socket) {
79 EnterTCP enter(tcp_socket, true);
80 if (enter.failed())
81 return 0;
82 return enter.object()->GetServerCertificate();
83 }
84
85 PP_Bool AddChainBuildingCertificate(PP_Resource tcp_socket,
86 PP_Resource certificate,
87 PP_Bool trusted) {
88 EnterTCP enter(tcp_socket, true);
89 if (enter.failed())
90 return PP_FALSE;
91 return enter.object()->AddChainBuildingCertificate(certificate, trusted);
92 }
93
78 int32_t Read(PP_Resource tcp_socket, 94 int32_t Read(PP_Resource tcp_socket,
79 char* buffer, 95 char* buffer,
80 int32_t bytes_to_read, 96 int32_t bytes_to_read,
81 PP_CompletionCallback callback) { 97 PP_CompletionCallback callback) {
82 EnterTCP enter(tcp_socket, callback, true); 98 EnterTCP enter(tcp_socket, callback, true);
83 if (enter.failed()) 99 if (enter.failed())
84 return enter.retval(); 100 return enter.retval();
85 return enter.SetResult(enter.object()->Read(buffer, bytes_to_read, callback)); 101 return enter.SetResult(enter.object()->Read(buffer, bytes_to_read, callback));
86 } 102 }
87 103
88 int32_t Write(PP_Resource tcp_socket, 104 int32_t Write(PP_Resource tcp_socket,
89 const char* buffer, 105 const char* buffer,
90 int32_t bytes_to_write, 106 int32_t bytes_to_write,
91 PP_CompletionCallback callback) { 107 PP_CompletionCallback callback) {
92 EnterTCP enter(tcp_socket, callback, true); 108 EnterTCP enter(tcp_socket, callback, true);
93 if (enter.failed()) 109 if (enter.failed())
94 return enter.retval(); 110 return enter.retval();
95 return enter.SetResult(enter.object()->Write(buffer, bytes_to_write, 111 return enter.SetResult(enter.object()->Write(buffer, bytes_to_write,
96 callback)); 112 callback));
97 } 113 }
98 114
99 void Disconnect(PP_Resource tcp_socket) { 115 void Disconnect(PP_Resource tcp_socket) {
100 EnterTCP enter(tcp_socket, true); 116 EnterTCP enter(tcp_socket, true);
101 if (enter.succeeded()) 117 if (enter.succeeded())
102 enter.object()->Disconnect(); 118 enter.object()->Disconnect();
103 } 119 }
104 120
105 const PPB_TCPSocket_Private g_ppb_tcp_socket_thunk = { 121 const PPB_TCPSocket_Private_0_3 g_ppb_tcp_socket_thunk_0_3 = {
106 &Create, 122 &Create,
107 &IsTCPSocket, 123 &IsTCPSocket,
108 &Connect, 124 &Connect,
125 &ConnectWithNetAddress,
126 &GetLocalAddress,
127 &GetRemoteAddress,
128 &SSLHandshake,
129 &Read,
130 &Write,
131 &Disconnect
132 };
133
134 const PPB_TCPSocket_Private g_ppb_tcp_socket_thunk_0_4 = {
135 &Create,
136 &IsTCPSocket,
137 &Connect,
109 &ConnectWithNetAddress, 138 &ConnectWithNetAddress,
110 &GetLocalAddress, 139 &GetLocalAddress,
111 &GetRemoteAddress, 140 &GetRemoteAddress,
112 &SSLHandshake, 141 &SSLHandshake,
142 &GetServerCertificate,
143 &AddChainBuildingCertificate,
113 &Read, 144 &Read,
114 &Write, 145 &Write,
115 &Disconnect 146 &Disconnect
116 }; 147 };
117 148
118 } // namespace 149 } // namespace
119 150
120 const PPB_TCPSocket_Private_0_3* GetPPB_TCPSocket_Private_0_3_Thunk() { 151 const PPB_TCPSocket_Private_0_3* GetPPB_TCPSocket_Private_0_3_Thunk() {
121 return &g_ppb_tcp_socket_thunk; 152 return &g_ppb_tcp_socket_thunk_0_3;
153 }
154
155 const PPB_TCPSocket_Private_0_4* GetPPB_TCPSocket_Private_0_4_Thunk() {
156 return &g_ppb_tcp_socket_thunk_0_4;
122 } 157 }
123 158
124 } // namespace thunk 159 } // namespace thunk
125 } // namespace ppapi 160 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698