| 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/udp_socket_resource_base.h" | 5 #include "ppapi/proxy/udp_socket_resource_base.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 PP_UDPSocket_Option name, | 62 PP_UDPSocket_Option name, |
| 63 const PP_Var& value, | 63 const PP_Var& value, |
| 64 scoped_refptr<TrackedCallback> callback) { | 64 scoped_refptr<TrackedCallback> callback) { |
| 65 if (closed_) | 65 if (closed_) |
| 66 return PP_ERROR_FAILED; | 66 return PP_ERROR_FAILED; |
| 67 | 67 |
| 68 SocketOptionData option_data; | 68 SocketOptionData option_data; |
| 69 switch (name) { | 69 switch (name) { |
| 70 case PP_UDPSOCKET_OPTION_ADDRESS_REUSE: | 70 case PP_UDPSOCKET_OPTION_ADDRESS_REUSE: |
| 71 case PP_UDPSOCKET_OPTION_BROADCAST: { | 71 case PP_UDPSOCKET_OPTION_BROADCAST: { |
| 72 if (bound_) | |
| 73 return PP_ERROR_FAILED; | |
| 74 if (value.type != PP_VARTYPE_BOOL) | 72 if (value.type != PP_VARTYPE_BOOL) |
| 75 return PP_ERROR_BADARGUMENT; | 73 return PP_ERROR_BADARGUMENT; |
| 76 option_data.SetBool(PP_ToBool(value.value.as_bool)); | 74 option_data.SetBool(PP_ToBool(value.value.as_bool)); |
| 77 break; | 75 break; |
| 78 } | 76 } |
| 79 case PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE: | 77 case PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE: |
| 80 case PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE: { | 78 case PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE: { |
| 81 if (!bound_) | |
| 82 return PP_ERROR_FAILED; | |
| 83 if (value.type != PP_VARTYPE_INT32) | 79 if (value.type != PP_VARTYPE_INT32) |
| 84 return PP_ERROR_BADARGUMENT; | 80 return PP_ERROR_BADARGUMENT; |
| 85 option_data.SetInt32(value.value.as_int); | 81 option_data.SetInt32(value.value.as_int); |
| 86 break; | 82 break; |
| 87 } | 83 } |
| 88 default: { | 84 default: { |
| 89 NOTREACHED(); | 85 NOTREACHED(); |
| 90 return PP_ERROR_BADARGUMENT; | 86 return PP_ERROR_BADARGUMENT; |
| 91 } | 87 } |
| 92 } | 88 } |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 if (result == PP_OK && !data.empty()) | 340 if (result == PP_OK && !data.empty()) |
| 345 memcpy(output_buffer, data.c_str(), data.size()); | 341 memcpy(output_buffer, data.c_str(), data.size()); |
| 346 | 342 |
| 347 recvfrom_addr_ = addr; | 343 recvfrom_addr_ = addr; |
| 348 | 344 |
| 349 return result == PP_OK ? static_cast<int32_t>(data.size()) : result; | 345 return result == PP_OK ? static_cast<int32_t>(data.size()) : result; |
| 350 } | 346 } |
| 351 | 347 |
| 352 } // namespace proxy | 348 } // namespace proxy |
| 353 } // namespace ppapi | 349 } // namespace ppapi |
| OLD | NEW |