throw IPAddressFormatException(sformat("Invalid input. Got '{}'", piece));
}
std::array<char, IPAddressV6::kToFullyQualifiedSize> ip;
- int pos = 0;
+ size_t pos = 0;
int count = 0;
- for (int p = pieces.size() - 1; p >= 0; p--) {
- ip[pos] = pieces[p][0];
+ for (size_t i = 1; i <= pieces.size(); i++) {
+ ip[pos] = pieces[pieces.size() - i][0];
pos++;
count++;
// add ':' every 4 chars
- if (count == 4) {
+ if (count == 4 && pos < ip.size()) {
ip[pos++] = ':';
count = 0;
}
return detail::fastIpv6ToString(addr_.in6Addr_);
}
+// public
+void IPAddressV6::toFullyQualifiedAppend(std::string& out) const {
+ detail::fastIpv6AppendToString(addr_.in6Addr_, out);
+}
+
// public
string IPAddressV6::toInverseArpaName() const {
constexpr folly::StringPiece lut = "0123456789abcdef";