17 : fSocketAddress_{iaddr}
21 : fSocketAddress_V4_{iaddr}
25 : fSocketAddress_V6_{iaddr}
29 : fSocketAddressStorage_{iaddr}
34 switch (
iaddr.GetAddressFamily ()) {
35 case InternetAddress::AddressFamily::V4: {
37 fSocketAddress_V4_.sin_family =
AF_INET;
38 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdeprecated\"");
40 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdeprecated\"");
43 case InternetAddress::AddressFamily::V6: {
45 fSocketAddress_V6_.sin6_family =
AF_INET6;
46 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdeprecated\"");
48 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdeprecated\"");
59 return fSocketAddress_.sa_family ==
AF_UNSPEC;
64 Assert (fSocketAddress_.sa_family ==
AF_UNSPEC);
68 return static_cast<FamilyType> (fSocketAddress_.sa_family);
72 switch (fSocketAddress_.sa_family) {
74 return sizeof (fSocketAddress_V4_);
77 return sizeof (fSocketAddress_V6_);
83 return sizeof (fSocketAddressStorage_);
89 return fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_INET6;
94 switch (fSocketAddress_.sa_family) {
110 switch (fSocketAddress_.sa_family) {
112 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdeprecated\"");
113 return ntohs (fSocketAddress_V4_.sin_port);
114 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdeprecated\"");
117 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdeprecated\"");
118 return ntohs (fSocketAddress_V6_.sin6_port);
119 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdeprecated\"");
130 Require (fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_UNSPEC);
131 return fSocketAddress_;
136 return fSocketAddressStorage_;
141 Require (fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_UNSPEC);
142 return fSocketAddress_V4_;
148 return fSocketAddress_V6_;
158 Require (fm == SocketAddress::INET or fm == SocketAddress::INET6);
159 if (fm == SocketAddress::INET) {
160 return V4::kLocalhost;
162 if (fm == SocketAddress::INET6) {
163 return V6::kLocalhost;
165 return V4::kLocalhost;
#define AssertNotReached()
constexpr SocketAddress() noexcept
nonvirtual PortType GetPort() const
nonvirtual size_t GetRequiredSize() const
nonvirtual InternetAddress GetInternetAddress() const
FamilyType
Socket address family - also sometimes referred to as domain (argument to ::socket calls it domain)
nonvirtual bool empty() const
nonvirtual bool IsInternetAddress() const
nonvirtual FamilyType GetAddressFamily() const
constexpr InternetAddress LocalHost(SocketAddress::FamilyType fm)
return V4::kLocalhost or V6::kLocalhost depending on argument address family