From bc071231c83881c2d2ce31bd1a0aac31294acf99 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Thu, 6 Oct 2022 21:50:16 -0300 Subject: [PATCH] Add a net::ToString() to help stringify ipaddr_t Android, in particular, has problems with fmt's built-in variant handling for this type for some reason. --- llarp/net/interface_info.cpp | 2 +- llarp/net/net_int.cpp | 8 ++++++++ llarp/net/net_int.hpp | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/llarp/net/interface_info.cpp b/llarp/net/interface_info.cpp index 04490095b..370903b21 100644 --- a/llarp/net/interface_info.cpp +++ b/llarp/net/interface_info.cpp @@ -10,6 +10,6 @@ namespace llarp::net name, index, fmt::join(addrs, ","), - gateway ? fmt::format("{}", *gateway) : "none"); + gateway ? net::ToString(*gateway) : "none"); } } // namespace llarp::net diff --git a/llarp/net/net_int.cpp b/llarp/net/net_int.cpp index 1affa42e5..2628200ec 100644 --- a/llarp/net/net_int.cpp +++ b/llarp/net/net_int.cpp @@ -1,6 +1,7 @@ #include "net_int.hpp" #include "ip.hpp" #include +#include #include @@ -155,4 +156,11 @@ namespace llarp { return std::to_string(ntohs(n)); } + + std::string + net::ToString(const ipaddr_t& ipaddr) + { + return std::visit([](const auto& ip) { return ip.ToString(); }, ipaddr); + } + } // namespace llarp diff --git a/llarp/net/net_int.hpp b/llarp/net/net_int.hpp index d9894024d..e34f9b23b 100644 --- a/llarp/net/net_int.hpp +++ b/llarp/net/net_int.hpp @@ -230,6 +230,9 @@ namespace llarp using ipv6addr_t = n_uint128_t; using ipaddr_t = std::variant; + std::string + ToString(const ipaddr_t& ip); + huint16_t ToHost(port_t); huint32_t ToHost(ipv4addr_t); huint128_t ToHost(ipv6addr_t);