Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/proxy/ppb_flash_tcp_socket_proxy.h" | 5 #include "ppapi/proxy/ppb_flash_tcp_socket_proxy.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 82 PP_CompletionCallback callback) OVERRIDE; | 82 PP_CompletionCallback callback) OVERRIDE; |
| 83 virtual int32_t Write(const char* buffer, | 83 virtual int32_t Write(const char* buffer, |
| 84 int32_t bytes_to_write, | 84 int32_t bytes_to_write, |
| 85 PP_CompletionCallback callback) OVERRIDE; | 85 PP_CompletionCallback callback) OVERRIDE; |
| 86 virtual void Disconnect() OVERRIDE; | 86 virtual void Disconnect() OVERRIDE; |
| 87 | 87 |
| 88 // Notifications from the proxy. | 88 // Notifications from the proxy. |
| 89 void OnConnectCompleted(bool succeeded, | 89 void OnConnectCompleted(bool succeeded, |
| 90 const PP_Flash_NetAddress& local_addr, | 90 const PP_Flash_NetAddress& local_addr, |
| 91 const PP_Flash_NetAddress& remote_addr); | 91 const PP_Flash_NetAddress& remote_addr); |
| 92 void OnInitiateSSLCompleted(bool succeeded); | |
|
wtc
2011/08/09 21:21:29
I suggest that you change "InitiateSSL" to "SSLCon
yzshen1
2011/08/09 23:45:29
[I am open to making the change, just to make sure
| |
| 92 void OnReadCompleted(bool succeeded, const std::string& data); | 93 void OnReadCompleted(bool succeeded, const std::string& data); |
| 93 void OnWriteCompleted(bool succeeded, int32_t bytes_written); | 94 void OnWriteCompleted(bool succeeded, int32_t bytes_written); |
| 94 | 95 |
| 95 private: | 96 private: |
| 96 enum ConnectionState { | 97 enum ConnectionState { |
| 97 // Before a connection is successfully established (including a connect | 98 // Before a connection is successfully established (including a connect |
| 98 // request is pending or a previous connect request failed). | 99 // request is pending or a previous connect request failed). |
| 99 BEFORE_CONNECT, | 100 BEFORE_CONNECT, |
| 101 // A connection has been successfully established (including a request of | |
| 102 // initiating SSL is pending). | |
| 100 CONNECTED, | 103 CONNECTED, |
| 104 // An SSL connection has been successfully established. | |
| 105 SSL_CONNECTED, | |
| 106 // The connection has been ended. | |
| 101 DISCONNECTED | 107 DISCONNECTED |
| 102 }; | 108 }; |
| 103 | 109 |
| 110 bool IsConnected() const; | |
| 111 | |
| 104 // Backend for both Connect() and ConnectWithNetAddress(). To keep things | 112 // Backend for both Connect() and ConnectWithNetAddress(). To keep things |
| 105 // generic, the message is passed in (on error, it's deleted). | 113 // generic, the message is passed in (on error, it's deleted). |
| 106 int32_t ConnectWithMessage(IPC::Message* msg, | 114 int32_t ConnectWithMessage(IPC::Message* msg, |
| 107 PP_CompletionCallback callback); | 115 PP_CompletionCallback callback); |
| 108 | 116 |
| 109 void PostAbortAndClearIfNecessary(PP_CompletionCallback* callback); | 117 void PostAbortAndClearIfNecessary(PP_CompletionCallback* callback); |
| 110 | 118 |
| 111 uint32 socket_id_; | 119 uint32 socket_id_; |
| 112 ConnectionState connection_state_; | 120 ConnectionState connection_state_; |
| 113 | 121 |
| 114 PP_CompletionCallback connect_callback_; | 122 PP_CompletionCallback connect_callback_; |
| 123 PP_CompletionCallback initiate_ssl_callback_; | |
| 115 PP_CompletionCallback read_callback_; | 124 PP_CompletionCallback read_callback_; |
| 116 PP_CompletionCallback write_callback_; | 125 PP_CompletionCallback write_callback_; |
| 117 | 126 |
| 118 char* read_buffer_; | 127 char* read_buffer_; |
| 119 int32_t bytes_to_read_; | 128 int32_t bytes_to_read_; |
| 120 | 129 |
| 121 PP_Flash_NetAddress local_addr_; | 130 PP_Flash_NetAddress local_addr_; |
| 122 PP_Flash_NetAddress remote_addr_; | 131 PP_Flash_NetAddress remote_addr_; |
| 123 | 132 |
| 124 DISALLOW_COPY_AND_ASSIGN(FlashTCPSocket); | 133 DISALLOW_COPY_AND_ASSIGN(FlashTCPSocket); |
| 125 }; | 134 }; |
| 126 | 135 |
| 127 FlashTCPSocket::FlashTCPSocket(const HostResource& resource, uint32 socket_id) | 136 FlashTCPSocket::FlashTCPSocket(const HostResource& resource, uint32 socket_id) |
| 128 : PluginResource(resource), | 137 : PluginResource(resource), |
| 129 socket_id_(socket_id), | 138 socket_id_(socket_id), |
| 130 connection_state_(BEFORE_CONNECT), | 139 connection_state_(BEFORE_CONNECT), |
| 131 connect_callback_(PP_BlockUntilComplete()), | 140 connect_callback_(PP_BlockUntilComplete()), |
| 141 initiate_ssl_callback_(PP_BlockUntilComplete()), | |
| 132 read_callback_(PP_BlockUntilComplete()), | 142 read_callback_(PP_BlockUntilComplete()), |
| 133 write_callback_(PP_BlockUntilComplete()), | 143 write_callback_(PP_BlockUntilComplete()), |
| 134 read_buffer_(NULL), | 144 read_buffer_(NULL), |
| 135 bytes_to_read_(-1) { | 145 bytes_to_read_(-1) { |
| 136 DCHECK(socket_id != 0); | 146 DCHECK(socket_id != 0); |
| 137 | 147 |
| 138 local_addr_.size = 0; | 148 local_addr_.size = 0; |
| 139 memset(local_addr_.data, 0, sizeof(local_addr_.data)); | 149 memset(local_addr_.data, 0, sizeof(local_addr_.data)); |
| 140 remote_addr_.size = 0; | 150 remote_addr_.size = 0; |
| 141 memset(remote_addr_.data, 0, sizeof(remote_addr_.data)); | 151 memset(remote_addr_.data, 0, sizeof(remote_addr_.data)); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 171 if (!addr) | 181 if (!addr) |
| 172 return PP_ERROR_BADARGUMENT; | 182 return PP_ERROR_BADARGUMENT; |
| 173 | 183 |
| 174 return ConnectWithMessage( | 184 return ConnectWithMessage( |
| 175 new PpapiHostMsg_PPBFlashTCPSocket_ConnectWithNetAddress( | 185 new PpapiHostMsg_PPBFlashTCPSocket_ConnectWithNetAddress( |
| 176 socket_id_, *addr), | 186 socket_id_, *addr), |
| 177 callback); | 187 callback); |
| 178 } | 188 } |
| 179 | 189 |
| 180 PP_Bool FlashTCPSocket::GetLocalAddress(PP_Flash_NetAddress* local_addr) { | 190 PP_Bool FlashTCPSocket::GetLocalAddress(PP_Flash_NetAddress* local_addr) { |
| 181 if (connection_state_ != CONNECTED || !local_addr) | 191 if (!IsConnected() || !local_addr) |
| 182 return PP_FALSE; | 192 return PP_FALSE; |
| 183 | 193 |
| 184 *local_addr = local_addr_; | 194 *local_addr = local_addr_; |
| 185 return PP_TRUE; | 195 return PP_TRUE; |
| 186 } | 196 } |
| 187 | 197 |
| 188 PP_Bool FlashTCPSocket::GetRemoteAddress(PP_Flash_NetAddress* remote_addr) { | 198 PP_Bool FlashTCPSocket::GetRemoteAddress(PP_Flash_NetAddress* remote_addr) { |
| 189 if (connection_state_ != CONNECTED || !remote_addr) | 199 if (!IsConnected() || !remote_addr) |
| 190 return PP_FALSE; | 200 return PP_FALSE; |
| 191 | 201 |
| 192 *remote_addr = remote_addr_; | 202 *remote_addr = remote_addr_; |
| 193 return PP_TRUE; | 203 return PP_TRUE; |
| 194 } | 204 } |
| 195 | 205 |
| 196 int32_t FlashTCPSocket::InitiateSSL(const char* server_name, | 206 int32_t FlashTCPSocket::InitiateSSL(const char* server_name, |
| 197 PP_CompletionCallback callback) { | 207 PP_CompletionCallback callback) { |
| 198 // TODO(yzshen): add it. | 208 if (!server_name || !callback.func) |
| 199 return PP_ERROR_FAILED; | 209 return PP_ERROR_BADARGUMENT; |
| 210 | |
| 211 if (connection_state_ != CONNECTED) | |
| 212 return PP_ERROR_FAILED; | |
| 213 if (initiate_ssl_callback_.func || read_callback_.func || | |
| 214 write_callback_.func) | |
| 215 return PP_ERROR_INPROGRESS; | |
| 216 | |
| 217 initiate_ssl_callback_ = callback; | |
| 218 | |
| 219 // Send the request, the browser will call us back via InitiateSSLACK. | |
| 220 GetDispatcher()->SendToBrowser( | |
| 221 new PpapiHostMsg_PPBFlashTCPSocket_InitiateSSL(socket_id_, | |
| 222 std::string(server_name))); | |
| 223 return PP_OK_COMPLETIONPENDING; | |
| 200 } | 224 } |
| 201 | 225 |
| 202 int32_t FlashTCPSocket::Read(char* buffer, | 226 int32_t FlashTCPSocket::Read(char* buffer, |
| 203 int32_t bytes_to_read, | 227 int32_t bytes_to_read, |
| 204 PP_CompletionCallback callback) { | 228 PP_CompletionCallback callback) { |
| 205 if (!buffer || bytes_to_read <= 0 || !callback.func) | 229 if (!buffer || bytes_to_read <= 0 || !callback.func) |
| 206 return PP_ERROR_BADARGUMENT; | 230 return PP_ERROR_BADARGUMENT; |
| 207 | 231 |
| 208 if (connection_state_ != CONNECTED) | 232 if (!IsConnected()) |
| 209 return PP_ERROR_FAILED; | 233 return PP_ERROR_FAILED; |
| 210 if (read_callback_.func) | 234 if (read_callback_.func || initiate_ssl_callback_.func) |
| 211 return PP_ERROR_INPROGRESS; | 235 return PP_ERROR_INPROGRESS; |
| 212 | 236 |
| 213 read_buffer_ = buffer; | 237 read_buffer_ = buffer; |
| 214 bytes_to_read_ = std::min(bytes_to_read, kFlashTCPSocketMaxReadSize); | 238 bytes_to_read_ = std::min(bytes_to_read, kFlashTCPSocketMaxReadSize); |
| 215 read_callback_ = callback; | 239 read_callback_ = callback; |
| 216 | 240 |
| 217 // Send the request, the browser will call us back via ReadACK. | 241 // Send the request, the browser will call us back via ReadACK. |
| 218 GetDispatcher()->SendToBrowser( | 242 GetDispatcher()->SendToBrowser( |
| 219 new PpapiHostMsg_PPBFlashTCPSocket_Read(socket_id_, bytes_to_read_)); | 243 new PpapiHostMsg_PPBFlashTCPSocket_Read(socket_id_, bytes_to_read_)); |
| 220 return PP_OK_COMPLETIONPENDING; | 244 return PP_OK_COMPLETIONPENDING; |
| 221 } | 245 } |
| 222 | 246 |
| 223 int32_t FlashTCPSocket::Write(const char* buffer, | 247 int32_t FlashTCPSocket::Write(const char* buffer, |
| 224 int32_t bytes_to_write, | 248 int32_t bytes_to_write, |
| 225 PP_CompletionCallback callback) { | 249 PP_CompletionCallback callback) { |
| 226 if (!buffer || bytes_to_write <= 0 || !callback.func) | 250 if (!buffer || bytes_to_write <= 0 || !callback.func) |
| 227 return PP_ERROR_BADARGUMENT; | 251 return PP_ERROR_BADARGUMENT; |
| 228 | 252 |
| 229 if (connection_state_ != CONNECTED) | 253 if (!IsConnected()) |
| 230 return PP_ERROR_FAILED; | 254 return PP_ERROR_FAILED; |
| 231 if (write_callback_.func) | 255 if (write_callback_.func || initiate_ssl_callback_.func) |
| 232 return PP_ERROR_INPROGRESS; | 256 return PP_ERROR_INPROGRESS; |
| 233 | 257 |
| 234 if (bytes_to_write > kFlashTCPSocketMaxWriteSize) | 258 if (bytes_to_write > kFlashTCPSocketMaxWriteSize) |
| 235 bytes_to_write = kFlashTCPSocketMaxWriteSize; | 259 bytes_to_write = kFlashTCPSocketMaxWriteSize; |
| 236 | 260 |
| 237 write_callback_ = callback; | 261 write_callback_ = callback; |
| 238 | 262 |
| 239 // Send the request, the browser will call us back via WriteACK. | 263 // Send the request, the browser will call us back via WriteACK. |
| 240 GetDispatcher()->SendToBrowser( | 264 GetDispatcher()->SendToBrowser( |
| 241 new PpapiHostMsg_PPBFlashTCPSocket_Write( | 265 new PpapiHostMsg_PPBFlashTCPSocket_Write( |
| 242 socket_id_, std::string(buffer, bytes_to_write))); | 266 socket_id_, std::string(buffer, bytes_to_write))); |
| 243 return PP_OK_COMPLETIONPENDING; | 267 return PP_OK_COMPLETIONPENDING; |
| 244 } | 268 } |
| 245 | 269 |
| 246 void FlashTCPSocket::Disconnect() { | 270 void FlashTCPSocket::Disconnect() { |
| 247 if (connection_state_ == DISCONNECTED) | 271 if (connection_state_ == DISCONNECTED) |
| 248 return; | 272 return; |
| 249 | 273 |
| 250 connection_state_ = DISCONNECTED; | 274 connection_state_ = DISCONNECTED; |
| 251 // After removed from the mapping, this object won't receive any notfications | 275 // After removed from the mapping, this object won't receive any notifications |
| 252 // from the proxy. | 276 // from the proxy. |
| 253 DCHECK(g_id_to_socket->find(socket_id_) != g_id_to_socket->end()); | 277 DCHECK(g_id_to_socket->find(socket_id_) != g_id_to_socket->end()); |
| 254 g_id_to_socket->erase(socket_id_); | 278 g_id_to_socket->erase(socket_id_); |
| 255 | 279 |
| 256 GetDispatcher()->SendToBrowser( | 280 GetDispatcher()->SendToBrowser( |
| 257 new PpapiHostMsg_PPBFlashTCPSocket_Disconnect(socket_id_)); | 281 new PpapiHostMsg_PPBFlashTCPSocket_Disconnect(socket_id_)); |
| 258 socket_id_ = 0; | 282 socket_id_ = 0; |
| 259 | 283 |
| 260 PostAbortAndClearIfNecessary(&connect_callback_); | 284 PostAbortAndClearIfNecessary(&connect_callback_); |
| 285 PostAbortAndClearIfNecessary(&initiate_ssl_callback_); | |
| 261 PostAbortAndClearIfNecessary(&read_callback_); | 286 PostAbortAndClearIfNecessary(&read_callback_); |
| 262 PostAbortAndClearIfNecessary(&write_callback_); | 287 PostAbortAndClearIfNecessary(&write_callback_); |
| 263 read_buffer_ = NULL; | 288 read_buffer_ = NULL; |
| 264 bytes_to_read_ = -1; | 289 bytes_to_read_ = -1; |
| 265 } | 290 } |
| 266 | 291 |
| 267 void FlashTCPSocket::OnConnectCompleted( | 292 void FlashTCPSocket::OnConnectCompleted( |
| 268 bool succeeded, | 293 bool succeeded, |
| 269 const PP_Flash_NetAddress& local_addr, | 294 const PP_Flash_NetAddress& local_addr, |
| 270 const PP_Flash_NetAddress& remote_addr) { | 295 const PP_Flash_NetAddress& remote_addr) { |
| 271 if (connection_state_ != BEFORE_CONNECT || !connect_callback_.func) { | 296 if (connection_state_ != BEFORE_CONNECT || !connect_callback_.func) { |
| 272 NOTREACHED(); | 297 NOTREACHED(); |
| 273 return; | 298 return; |
| 274 } | 299 } |
| 275 | 300 |
| 276 if (succeeded) { | 301 if (succeeded) { |
| 277 local_addr_ = local_addr; | 302 local_addr_ = local_addr; |
| 278 remote_addr_ = remote_addr; | 303 remote_addr_ = remote_addr; |
| 279 connection_state_ = CONNECTED; | 304 connection_state_ = CONNECTED; |
| 280 } | 305 } |
| 281 PP_RunAndClearCompletionCallback(&connect_callback_, | 306 PP_RunAndClearCompletionCallback(&connect_callback_, |
| 282 succeeded ? PP_OK : PP_ERROR_FAILED); | 307 succeeded ? PP_OK : PP_ERROR_FAILED); |
| 283 } | 308 } |
| 284 | 309 |
| 310 void FlashTCPSocket::OnInitiateSSLCompleted(bool succeeded) { | |
| 311 if (connection_state_ != CONNECTED || !initiate_ssl_callback_.func) { | |
| 312 NOTREACHED(); | |
| 313 return; | |
| 314 } | |
| 315 | |
| 316 if (succeeded) { | |
| 317 connection_state_ = SSL_CONNECTED; | |
| 318 PP_RunAndClearCompletionCallback(&initiate_ssl_callback_, PP_OK); | |
| 319 } else { | |
| 320 PP_RunAndClearCompletionCallback(&initiate_ssl_callback_, PP_ERROR_FAILED); | |
| 321 Disconnect(); | |
| 322 } | |
| 323 } | |
| 324 | |
| 285 void FlashTCPSocket::OnReadCompleted(bool succeeded, const std::string& data) { | 325 void FlashTCPSocket::OnReadCompleted(bool succeeded, const std::string& data) { |
| 286 if (!read_callback_.func || !read_buffer_) { | 326 if (!read_callback_.func || !read_buffer_) { |
| 287 NOTREACHED(); | 327 NOTREACHED(); |
| 288 return; | 328 return; |
| 289 } | 329 } |
| 290 | 330 |
| 291 if (succeeded) { | 331 if (succeeded) { |
| 292 CHECK_LE(static_cast<int32_t>(data.size()), bytes_to_read_); | 332 CHECK_LE(static_cast<int32_t>(data.size()), bytes_to_read_); |
| 293 if (!data.empty()) | 333 if (!data.empty()) |
| 294 memcpy(read_buffer_, data.c_str(), data.size()); | 334 memcpy(read_buffer_, data.c_str(), data.size()); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 306 if (!write_callback_.func || (succeeded && bytes_written < 0)) { | 346 if (!write_callback_.func || (succeeded && bytes_written < 0)) { |
| 307 NOTREACHED(); | 347 NOTREACHED(); |
| 308 return; | 348 return; |
| 309 } | 349 } |
| 310 | 350 |
| 311 PP_RunAndClearCompletionCallback( | 351 PP_RunAndClearCompletionCallback( |
| 312 &write_callback_, | 352 &write_callback_, |
| 313 succeeded ? bytes_written : static_cast<int32_t>(PP_ERROR_FAILED)); | 353 succeeded ? bytes_written : static_cast<int32_t>(PP_ERROR_FAILED)); |
| 314 } | 354 } |
| 315 | 355 |
| 356 bool FlashTCPSocket::IsConnected() const { | |
| 357 return connection_state_ == CONNECTED || connection_state_ == SSL_CONNECTED; | |
| 358 } | |
| 359 | |
| 316 int32_t FlashTCPSocket::ConnectWithMessage(IPC::Message* msg, | 360 int32_t FlashTCPSocket::ConnectWithMessage(IPC::Message* msg, |
| 317 PP_CompletionCallback callback) { | 361 PP_CompletionCallback callback) { |
| 318 scoped_ptr<IPC::Message> msg_deletor(msg); | 362 scoped_ptr<IPC::Message> msg_deletor(msg); |
| 319 if (!callback.func) | 363 if (!callback.func) |
| 320 return PP_ERROR_BADARGUMENT; | 364 return PP_ERROR_BADARGUMENT; |
| 321 if (connection_state_ != BEFORE_CONNECT) | 365 if (connection_state_ != BEFORE_CONNECT) |
| 322 return PP_ERROR_FAILED; | 366 return PP_ERROR_FAILED; |
| 323 if (connect_callback_.func) | 367 if (connect_callback_.func) |
| 324 return PP_ERROR_INPROGRESS; // Can only have one pending request. | 368 return PP_ERROR_INPROGRESS; // Can only have one pending request. |
| 325 | 369 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 377 | 421 |
| 378 linked_ptr<FlashTCPSocket> object(new FlashTCPSocket( | 422 linked_ptr<FlashTCPSocket> object(new FlashTCPSocket( |
| 379 HostResource::MakeInstanceOnly(instance), socket_id)); | 423 HostResource::MakeInstanceOnly(instance), socket_id)); |
| 380 return PluginResourceTracker::GetInstance()->AddResource(object); | 424 return PluginResourceTracker::GetInstance()->AddResource(object); |
| 381 } | 425 } |
| 382 | 426 |
| 383 bool PPB_Flash_TCPSocket_Proxy::OnMessageReceived(const IPC::Message& msg) { | 427 bool PPB_Flash_TCPSocket_Proxy::OnMessageReceived(const IPC::Message& msg) { |
| 384 bool handled = true; | 428 bool handled = true; |
| 385 IPC_BEGIN_MESSAGE_MAP(PPB_Flash_TCPSocket_Proxy, msg) | 429 IPC_BEGIN_MESSAGE_MAP(PPB_Flash_TCPSocket_Proxy, msg) |
| 386 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_ConnectACK, OnMsgConnectACK) | 430 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_ConnectACK, OnMsgConnectACK) |
| 431 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_InitiateSSLACK, | |
| 432 OnMsgInitiateSSLACK) | |
| 387 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_ReadACK, OnMsgReadACK) | 433 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_ReadACK, OnMsgReadACK) |
| 388 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_WriteACK, OnMsgWriteACK) | 434 IPC_MESSAGE_HANDLER(PpapiMsg_PPBFlashTCPSocket_WriteACK, OnMsgWriteACK) |
| 389 IPC_MESSAGE_UNHANDLED(handled = false) | 435 IPC_MESSAGE_UNHANDLED(handled = false) |
| 390 IPC_END_MESSAGE_MAP() | 436 IPC_END_MESSAGE_MAP() |
| 391 return handled; | 437 return handled; |
| 392 } | 438 } |
| 393 | 439 |
| 394 void PPB_Flash_TCPSocket_Proxy::OnMsgConnectACK( | 440 void PPB_Flash_TCPSocket_Proxy::OnMsgConnectACK( |
| 395 uint32 /* plugin_dispatcher_id */, | 441 uint32 /* plugin_dispatcher_id */, |
| 396 uint32 socket_id, | 442 uint32 socket_id, |
| 397 bool succeeded, | 443 bool succeeded, |
| 398 const PP_Flash_NetAddress& local_addr, | 444 const PP_Flash_NetAddress& local_addr, |
| 399 const PP_Flash_NetAddress& remote_addr) { | 445 const PP_Flash_NetAddress& remote_addr) { |
| 400 if (!g_id_to_socket) { | 446 if (!g_id_to_socket) { |
| 401 NOTREACHED(); | 447 NOTREACHED(); |
| 402 return; | 448 return; |
| 403 } | 449 } |
| 404 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); | 450 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); |
| 405 if (iter == g_id_to_socket->end()) | 451 if (iter == g_id_to_socket->end()) |
| 406 return; | 452 return; |
| 407 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr); | 453 iter->second->OnConnectCompleted(succeeded, local_addr, remote_addr); |
| 408 } | 454 } |
| 409 | 455 |
| 456 void PPB_Flash_TCPSocket_Proxy::OnMsgInitiateSSLACK( | |
| 457 uint32 /* plugin_dispatcher_id */, | |
| 458 uint32 socket_id, | |
| 459 bool succeeded) { | |
| 460 if (!g_id_to_socket) { | |
| 461 NOTREACHED(); | |
| 462 return; | |
| 463 } | |
| 464 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); | |
| 465 if (iter == g_id_to_socket->end()) | |
| 466 return; | |
| 467 iter->second->OnInitiateSSLCompleted(succeeded); | |
| 468 } | |
| 469 | |
| 410 void PPB_Flash_TCPSocket_Proxy::OnMsgReadACK(uint32 /* plugin_dispatcher_id */, | 470 void PPB_Flash_TCPSocket_Proxy::OnMsgReadACK(uint32 /* plugin_dispatcher_id */, |
| 411 uint32 socket_id, | 471 uint32 socket_id, |
| 412 bool succeeded, | 472 bool succeeded, |
| 413 const std::string& data) { | 473 const std::string& data) { |
| 414 if (!g_id_to_socket) { | 474 if (!g_id_to_socket) { |
| 415 NOTREACHED(); | 475 NOTREACHED(); |
| 416 return; | 476 return; |
| 417 } | 477 } |
| 418 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); | 478 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); |
| 419 if (iter == g_id_to_socket->end()) | 479 if (iter == g_id_to_socket->end()) |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 430 return; | 490 return; |
| 431 } | 491 } |
| 432 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); | 492 IDToSocketMap::iterator iter = g_id_to_socket->find(socket_id); |
| 433 if (iter == g_id_to_socket->end()) | 493 if (iter == g_id_to_socket->end()) |
| 434 return; | 494 return; |
| 435 iter->second->OnWriteCompleted(succeeded, bytes_written); | 495 iter->second->OnWriteCompleted(succeeded, bytes_written); |
| 436 } | 496 } |
| 437 | 497 |
| 438 } // namespace proxy | 498 } // namespace proxy |
| 439 } // namespace pp | 499 } // namespace pp |
| OLD | NEW |