Index: ppapi/tests/test_utils.cc |
diff --git a/ppapi/tests/test_utils.cc b/ppapi/tests/test_utils.cc |
index f9fd7b699fa1b7d407d48f1e88dd7db794070609..eecbe7a96e2570becfc1b9964296f2d34af9a0ae 100644 |
--- a/ppapi/tests/test_utils.cc |
+++ b/ppapi/tests/test_utils.cc |
@@ -179,6 +179,53 @@ bool ResolveHost(PP_Instance instance, |
} |
} |
+bool ReplacePort(PP_Instance instance, |
+ const pp::NetAddress& input_addr, |
+ uint16_t port, |
+ pp::NetAddress* output_addr) { |
+ switch (input_addr.GetFamily()) { |
+ case PP_NETADDRESS_FAMILY_IPV4: { |
+ PP_NetAddress_IPv4 ipv4_addr; |
+ if (!input_addr.DescribeAsIPv4Address(&ipv4_addr)) |
+ return false; |
+ ipv4_addr.port = ConvertToNetEndian16(port); |
+ *output_addr = pp::NetAddress(pp::InstanceHandle(instance), ipv4_addr); |
+ return true; |
+ } |
+ case PP_NETADDRESS_FAMILY_IPV6: { |
+ PP_NetAddress_IPv6 ipv6_addr; |
+ if (!input_addr.DescribeAsIPv6Address(&ipv6_addr)) |
+ return false; |
+ ipv6_addr.port = ConvertToNetEndian16(port); |
+ *output_addr = pp::NetAddress(pp::InstanceHandle(instance), ipv6_addr); |
+ return true; |
+ } |
+ default: { |
+ return false; |
+ } |
+ } |
+} |
+ |
+uint16_t GetPort(const pp::NetAddress& addr) { |
+ switch (addr.GetFamily()) { |
+ case PP_NETADDRESS_FAMILY_IPV4: { |
+ PP_NetAddress_IPv4 ipv4_addr; |
+ if (!addr.DescribeAsIPv4Address(&ipv4_addr)) |
+ return 0; |
+ return ConvertFromNetEndian16(ipv4_addr.port); |
+ } |
+ case PP_NETADDRESS_FAMILY_IPV6: { |
+ PP_NetAddress_IPv6 ipv6_addr; |
+ if (!addr.DescribeAsIPv6Address(&ipv6_addr)) |
+ return 0; |
+ return ConvertFromNetEndian16(ipv6_addr.port); |
+ } |
+ default: { |
+ return 0; |
+ } |
+ } |
+} |
+ |
void NestedEvent::Wait() { |
PP_DCHECK(pp::Module::Get()->core()->IsMainThread()); |
// Don't allow nesting more than once; it doesn't work with the code as-is, |