///////////////////////////////////////////////////////
| 163 | |
| 164 | //////////////////////////////////////////////////////////// |
| 165 | std::string IpAddress::toString() const |
| 166 | { |
| 167 | if (const auto* addressV4 = std::get_if<V4Data>(&m_address); addressV4) |
| 168 | { |
| 169 | in_addr address{}; |
| 170 | address.s_addr = htonl(*addressV4); |
| 171 | |
| 172 | if (std::array<char, 32> buffer{}; inet_ntop(AF_INET, &address, buffer.data(), buffer.size())) |
| 173 | return buffer.data(); |
| 174 | } |
| 175 | else if (const auto* addressV6 = std::get_if<V6Data>(&m_address); addressV6) |
| 176 | { |
| 177 | in6_addr address{}; |
| 178 | static_assert(sizeof(address.s6_addr) == sizeof(*addressV6)); |
| 179 | std::memcpy(address.s6_addr, addressV6->data(), addressV6->size()); |
| 180 | |
| 181 | if (std::array<char, 64> buffer{}; inet_ntop(AF_INET6, &address, buffer.data(), buffer.size())) |
| 182 | return buffer.data(); |
| 183 | } |
| 184 | |
| 185 | return ""; |
| 186 | } |
| 187 | |
| 188 | |
| 189 | //////////////////////////////////////////////////////////// |
no outgoing calls
no test coverage detected