Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/shared_impl/private/net_address_private_impl.h" | 5 #include "ppapi/shared_impl/private/net_address_private_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/containers/stack_container.h" | |
| 12 #include "base/logging.h" | 13 #include "base/logging.h" |
| 13 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
| 14 #include "build/build_config.h" | 15 #include "build/build_config.h" |
| 15 #include "ppapi/c/pp_var.h" | 16 #include "ppapi/c/pp_var.h" |
| 16 #include "ppapi/c/private/ppb_net_address_private.h" | 17 #include "ppapi/c/private/ppb_net_address_private.h" |
| 17 #include "ppapi/shared_impl/proxy_lock.h" | 18 #include "ppapi/shared_impl/proxy_lock.h" |
| 18 #include "ppapi/shared_impl/var.h" | 19 #include "ppapi/shared_impl/var.h" |
| 19 #include "ppapi/thunk/thunk.h" | 20 #include "ppapi/thunk/thunk.h" |
| 20 | 21 |
| 21 #if defined(OS_WIN) | 22 #if defined(OS_WIN) |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 444 break; | 445 break; |
| 445 } | 446 } |
| 446 default: | 447 default: |
| 447 // InitNetAddress sets net_addr->is_valid to false. | 448 // InitNetAddress sets net_addr->is_valid to false. |
| 448 return false; | 449 return false; |
| 449 } | 450 } |
| 450 return true;} | 451 return true;} |
| 451 | 452 |
| 452 // static | 453 // static |
| 453 bool NetAddressPrivateImpl::IPEndPointToNetAddress( | 454 bool NetAddressPrivateImpl::IPEndPointToNetAddress( |
| 454 const std::vector<uint8_t>& address, | 455 const net::IPAddress::IPAddressBytes& address, |
| 455 uint16_t port, | 456 uint16_t port, |
| 456 PP_NetAddress_Private* addr) { | 457 PP_NetAddress_Private* addr) { |
| 457 if (!addr) | 458 if (!addr) |
| 458 return false; | 459 return false; |
| 459 | 460 |
| 460 NetAddress* net_addr = InitNetAddress(addr); | 461 NetAddress* net_addr = InitNetAddress(addr); |
| 461 switch (address.size()) { | 462 switch (address.size()) { |
| 462 case kIPv4AddressSize: { | 463 case kIPv4AddressSize: { |
| 463 net_addr->is_valid = true; | 464 net_addr->is_valid = true; |
| 464 net_addr->is_ipv6 = false; | 465 net_addr->is_ipv6 = false; |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 477 // InitNetAddress sets net_addr->is_valid to false. | 478 // InitNetAddress sets net_addr->is_valid to false. |
| 478 return false; | 479 return false; |
| 479 } | 480 } |
| 480 | 481 |
| 481 return true; | 482 return true; |
| 482 } | 483 } |
| 483 | 484 |
| 484 // static | 485 // static |
| 485 bool NetAddressPrivateImpl::NetAddressToIPEndPoint( | 486 bool NetAddressPrivateImpl::NetAddressToIPEndPoint( |
| 486 const PP_NetAddress_Private& addr, | 487 const PP_NetAddress_Private& addr, |
| 487 std::vector<uint8_t>* address, | 488 base::StackVector<uint8_t, 16>* address, |
| 488 uint16_t* port) { | 489 uint16_t* port) { |
| 489 if (!address || !port) | 490 if (!address || !port) |
| 490 return false; | 491 return false; |
| 491 | 492 |
| 492 const NetAddress* net_addr = ToNetAddress(&addr); | 493 const NetAddress* net_addr = ToNetAddress(&addr); |
| 493 if (!IsValid(net_addr)) | 494 if (!IsValid(net_addr)) |
| 494 return false; | 495 return false; |
| 495 | 496 |
| 496 *port = net_addr->port; | 497 *port = net_addr->port; |
| 497 size_t address_size = GetAddressSize(net_addr); | 498 size_t address_size = GetAddressSize(net_addr); |
| 498 address->assign(&net_addr->address[0], &net_addr->address[address_size]); | 499 address->container().assign(&net_addr->address[0], |
| 500 &net_addr->address[address_size]); | |
|
eroman
2017/05/19 22:00:07
Technically this existing code was relying on unde
Ryan Hamilton
2017/05/20 03:21:44
As per your previous comment, I switched this to t
eroman
2017/05/22 18:06:44
This translation presumes that |address| is the em
Ryan Hamilton
2017/05/22 22:12:32
Done.
| |
| 499 | 501 |
| 500 return true; | 502 return true; |
| 501 } | 503 } |
| 502 #endif // !defined(OS_NACL) | 504 #endif // !defined(OS_NACL) |
| 503 | 505 |
| 504 // static | 506 // static |
| 505 std::string NetAddressPrivateImpl::DescribeNetAddress( | 507 std::string NetAddressPrivateImpl::DescribeNetAddress( |
| 506 const PP_NetAddress_Private& addr, | 508 const PP_NetAddress_Private& addr, |
| 507 bool include_port) { | 509 bool include_port) { |
| 508 const NetAddress* net_addr = ToNetAddress(&addr); | 510 const NetAddress* net_addr = ToNetAddress(&addr); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 584 ipv6_addr->port = ConvertToNetEndian16(net_addr->port); | 586 ipv6_addr->port = ConvertToNetEndian16(net_addr->port); |
| 585 | 587 |
| 586 static_assert(sizeof(ipv6_addr->addr) == kIPv6AddressSize, | 588 static_assert(sizeof(ipv6_addr->addr) == kIPv6AddressSize, |
| 587 "mismatched IPv6 address size"); | 589 "mismatched IPv6 address size"); |
| 588 memcpy(ipv6_addr->addr, net_addr->address, kIPv6AddressSize); | 590 memcpy(ipv6_addr->addr, net_addr->address, kIPv6AddressSize); |
| 589 | 591 |
| 590 return true; | 592 return true; |
| 591 } | 593 } |
| 592 | 594 |
| 593 } // namespace ppapi | 595 } // namespace ppapi |
| OLD | NEW |