OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/tcp_socket_resource_base.h" | 5 #include "ppapi/proxy/tcp_socket_resource_base.h" |
6 | 6 |
7 #include <cstring> | 7 #include <cstring> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 accepted_tcp_socket_ = NULL; | 315 accepted_tcp_socket_ = NULL; |
316 } | 316 } |
317 | 317 |
318 int32_t TCPSocketResourceBase::SetOptionImpl( | 318 int32_t TCPSocketResourceBase::SetOptionImpl( |
319 PP_TCPSocket_Option name, | 319 PP_TCPSocket_Option name, |
320 const PP_Var& value, | 320 const PP_Var& value, |
321 scoped_refptr<TrackedCallback> callback) { | 321 scoped_refptr<TrackedCallback> callback) { |
322 SocketOptionData option_data; | 322 SocketOptionData option_data; |
323 switch (name) { | 323 switch (name) { |
324 case PP_TCPSOCKET_OPTION_NO_DELAY: { | 324 case PP_TCPSOCKET_OPTION_NO_DELAY: { |
325 if (!state_.IsConnected()) | |
326 return PP_ERROR_FAILED; | |
327 | |
328 if (value.type != PP_VARTYPE_BOOL) | 325 if (value.type != PP_VARTYPE_BOOL) |
329 return PP_ERROR_BADARGUMENT; | 326 return PP_ERROR_BADARGUMENT; |
330 option_data.SetBool(PP_ToBool(value.value.as_bool)); | 327 option_data.SetBool(PP_ToBool(value.value.as_bool)); |
331 break; | 328 break; |
332 } | 329 } |
333 case PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE: | 330 case PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE: |
334 case PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE: { | 331 case PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE: { |
335 if (!state_.IsConnected()) | |
336 return PP_ERROR_FAILED; | |
337 | |
338 if (value.type != PP_VARTYPE_INT32) | 332 if (value.type != PP_VARTYPE_INT32) |
339 return PP_ERROR_BADARGUMENT; | 333 return PP_ERROR_BADARGUMENT; |
340 option_data.SetInt32(value.value.as_int); | 334 option_data.SetInt32(value.value.as_int); |
341 break; | 335 break; |
342 } | 336 } |
343 default: { | 337 default: { |
344 NOTREACHED(); | 338 NOTREACHED(); |
345 return PP_ERROR_BADARGUMENT; | 339 return PP_ERROR_BADARGUMENT; |
346 } | 340 } |
347 } | 341 } |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 } | 496 } |
503 | 497 |
504 void TCPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback, | 498 void TCPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback, |
505 int32_t pp_result) { | 499 int32_t pp_result) { |
506 callback->Run(ConvertNetworkAPIErrorForCompatibility( | 500 callback->Run(ConvertNetworkAPIErrorForCompatibility( |
507 pp_result, version_ == TCP_SOCKET_VERSION_PRIVATE)); | 501 pp_result, version_ == TCP_SOCKET_VERSION_PRIVATE)); |
508 } | 502 } |
509 | 503 |
510 } // namespace ppapi | 504 } // namespace ppapi |
511 } // namespace proxy | 505 } // namespace proxy |
OLD | NEW |