Handle MSVC correctly in detail/IPAddress.h
authorOrvid King <blah38621@gmail.com>
Mon, 14 Sep 2015 17:47:08 +0000 (10:47 -0700)
committerfacebook-github-bot-4 <folly-bot@fb.com>
Mon, 14 Sep 2015 18:20:22 +0000 (11:20 -0700)
Summary: Winsock's structures don't have a member named `s6_addr16`, so use the name for Winsock's structure.
Closes https://github.com/facebook/folly/pull/279

Reviewed By: @yfeldblum

Differential Revision: D2284223

Pulled By: @JoelMarcey

folly/detail/IPAddress.h

index 0ebd76f7459280b7a624e9c039e9b48026f34213..afb3f9f6a062a18e2dc1b95eefb37ac47f9f8eff 100644 (file)
@@ -283,7 +283,11 @@ inline std::string fastIpv4ToString(
 }
 
 inline std::string fastIpv6ToString(const in6_addr& in6Addr) {
 }
 
 inline std::string fastIpv6ToString(const in6_addr& in6Addr) {
+#ifdef _MSC_VER
+  const uint16_t* bytes = reinterpret_cast<const uint16_t*>(&in6Addr.u.Word);
+#else
   const uint16_t* bytes = reinterpret_cast<const uint16_t*>(&in6Addr.s6_addr16);
   const uint16_t* bytes = reinterpret_cast<const uint16_t*>(&in6Addr.s6_addr16);
+#endif
   char str[sizeof("2001:0db8:0000:0000:0000:ff00:0042:8329")];
   char* buf = str;
 
   char str[sizeof("2001:0db8:0000:0000:0000:ff00:0042:8329")];
   char* buf = str;