diff --git a/include/opendht/sockaddr.h b/include/opendht/sockaddr.h index 790204dec27a0a5918abbfb496442440f557bfa5..e371bb90bba262c763aed656dce0115f5d3991fb 100644 --- a/include/opendht/sockaddr.h +++ b/include/opendht/sockaddr.h @@ -144,7 +144,7 @@ public: if (len) addr.reset((sockaddr*)::calloc(len, 1)); else addr.reset(); } - if (len > sizeof(sa_family_t)) + if (len) addr->sa_family = af; } @@ -223,16 +223,16 @@ public: */ sockaddr* get() { return addr.get(); } - const sockaddr_in& getIPv4() const { + inline const sockaddr_in& getIPv4() const { return *reinterpret_cast<const sockaddr_in*>(get()); } - const sockaddr_in6& getIPv6() const { + inline const sockaddr_in6& getIPv6() const { return *reinterpret_cast<const sockaddr_in6*>(get()); } - sockaddr_in& getIPv4() { + inline sockaddr_in& getIPv4() { return *reinterpret_cast<sockaddr_in*>(get()); } - sockaddr_in6& getIPv6() { + inline sockaddr_in6& getIPv6() { return *reinterpret_cast<sockaddr_in6*>(get()); }