Improve IPAddress::toFullyQualified() CPU performance
[folly.git] / folly / IPAddressV6.cpp
index 65101d449b1910f3466866bd03cb2aed0f2443a2..188a47761021b0bb7b79beb79e8a324130711b07 100644 (file)
 #include <ostream>
 #include <string>
 
-#include "folly/Format.h"
-#include "folly/IPAddress.h"
-#include "folly/IPAddressV4.h"
-#include "folly/MacAddress.h"
+#include <folly/Format.h>
+#include <folly/IPAddress.h>
+#include <folly/IPAddressV4.h>
+#include <folly/MacAddress.h>
 
 using std::ostream;
 using std::string;
@@ -319,14 +319,7 @@ string IPAddressV6::str() const {
 
 // public
 string IPAddressV6::toFullyQualified() const {
-  auto asHex = detail::Bytes::toHex(bytes(), 16);
-  uint8_t chunks = asHex.size() / 4;
-  for (int chunk = 1; chunk < chunks; chunk++) {
-    // position changes as new characters are inserted
-    int pos = (chunk*4) + (chunk - 1);
-    asHex.insert(pos, ":");
-  }
-  return asHex;
+  return detail::fastIpv6ToString(addr_.in6Addr_);
 }
 
 // public