Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1502)

Unified Diff: native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc

Issue 99933002: [NaCl SDK] nacl_io: implement getaddrinfo() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc
diff --git a/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc b/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc
index 78e6f2329becacf1968f399f90eb7b8b04471e2f..ec84f7e41c15fe00f33daf058db0524374cb7271 100644
--- a/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc
+++ b/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_net_address_interface.cc
@@ -15,10 +15,16 @@ namespace {
class FakeNetAddressResource : public FakeResource {
public:
- explicit FakeNetAddressResource(PP_NetAddress_IPv4 addr) : address(addr) {}
+ explicit FakeNetAddressResource(PP_NetAddress_IPv4 addr)
+ : is_v6(false), address(addr) {}
+ explicit FakeNetAddressResource(PP_NetAddress_IPv6 addr)
+ : is_v6(true), address_v6(addr) {}
+
static const char* classname() { return "FakeNetAddressResource"; }
+ bool is_v6;
PP_NetAddress_IPv4 address;
+ PP_NetAddress_IPv6 address_v6;
};
} // namespace
@@ -46,9 +52,11 @@ PP_Resource FakeNetAddressInterface::CreateFromIPv6Address(
if (instance != ppapi_->GetInstance())
return 0;
- // TODO(sbc): implement
- assert(false);
- return 0;
+ FakeNetAddressResource* addr_resource = new FakeNetAddressResource(*address);
+ PP_Resource rtn = CREATE_RESOURCE(ppapi_->resource_manager(),
+ FakeNetAddressResource,
+ addr_resource);
+ return rtn;
}
PP_Bool FakeNetAddressInterface::IsNetAddress(PP_Resource address) {
@@ -59,7 +67,15 @@ PP_Bool FakeNetAddressInterface::IsNetAddress(PP_Resource address) {
return PP_TRUE;
}
-PP_NetAddress_Family FakeNetAddressInterface::GetFamily(PP_Resource) {
+PP_NetAddress_Family FakeNetAddressInterface::GetFamily(PP_Resource address) {
+ FakeNetAddressResource* address_resource =
+ ppapi_->resource_manager()->Get<FakeNetAddressResource>(address);
+ if (address_resource == NULL)
+ return PP_NETADDRESS_FAMILY_UNSPECIFIED;
+
+ if (address_resource->is_v6)
+ return PP_NETADDRESS_FAMILY_IPV6;
+
return PP_NETADDRESS_FAMILY_IPV4;
}
@@ -70,15 +86,25 @@ PP_Bool FakeNetAddressInterface::DescribeAsIPv4Address(
if (address_resource == NULL)
return PP_FALSE;
+ if (address_resource->is_v6)
+ return PP_FALSE;
+
*target = address_resource->address;
return PP_TRUE;
}
PP_Bool FakeNetAddressInterface::DescribeAsIPv6Address(
- PP_Resource adddress, PP_NetAddress_IPv6* taret) {
- // TODO(sbc): implement
- assert(false);
- return PP_FALSE;
+ PP_Resource address, PP_NetAddress_IPv6* target) {
+ FakeNetAddressResource* address_resource =
+ ppapi_->resource_manager()->Get<FakeNetAddressResource>(address);
+ if (address_resource == NULL)
+ return PP_FALSE;
+
+ if (!address_resource->is_v6)
+ return PP_FALSE;
+
+ *target = address_resource->address_v6;
+ return PP_TRUE;
}
PP_Var FakeNetAddressInterface::DescribeAsString(PP_Resource, PP_Bool) {

Powered by Google App Engine
This is Rietveld 408576698