Summary:
[Folly] IPAddressV6::kToFullyQualifiedSize.
The scenario: One has a string known to be a fully-qualified IPv4 or fully-qualified IPv6 address, but one does not know which of the two it is.
The dirty but fast solution: just check its size.
Test Plan: Build. Unit tests.
Reviewed By: mshneer@fb.com
Subscribers: folly-diffs@, dougw, yfeldblum, chalfant, brettp
FB internal diff:
D2016634
Signature: t1:
2016634:
1429831808:
08ecb28eab3060988f9613748ed8dabf3724bf13
// Binary prefix for 6to4 networks
static const uint32_t PREFIX_6TO4;
+ // Size of std::string returned by toFullyQualified.
+ static constexpr size_t kToFullyQualifiedSize =
+ 8 /*words*/ * 4 /*hex chars per word*/ + 7 /*separators*/;
+
/**
* Create a new IPAddress instance from the provided binary data.
* @throws IPAddressFormatException if the input length is not 16 bytes.
EXPECT_EQ("0000:0000:0000:0000:0000:0000:0000:0001", ip.toFullyQualified())
<< ip;
}
+TEST(IPAddress, ToFullyQualifiedSize) {
+ auto actual = IPAddressV6::kToFullyQualifiedSize;
+ auto expected = IPAddress("::").toFullyQualified().size();
+ EXPECT_EQ(expected, actual);
+}
// test v4-v6 mapped addresses
TEST_P(IPAddressMappedTest, MappedEqual) {