From 4bf80833f49498c310877d532c92bde890cc7dc7 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Thu, 6 Oct 2022 14:50:05 -0300 Subject: [PATCH] Add InterfaceInfo formatter --- llarp/CMakeLists.txt | 1 + llarp/net/interface_info.cpp | 15 +++++++++++++++ llarp/net/interface_info.hpp | 8 ++++++++ 3 files changed, 24 insertions(+) create mode 100644 llarp/net/interface_info.cpp diff --git a/llarp/CMakeLists.txt b/llarp/CMakeLists.txt index a42c76bb1..2e3c558df 100644 --- a/llarp/CMakeLists.txt +++ b/llarp/CMakeLists.txt @@ -33,6 +33,7 @@ add_library(lokinet-platform # for networking ev/ev.cpp ev/libuv.cpp + net/interface_info.cpp net/ip.cpp net/ip_address.cpp net/ip_packet.cpp diff --git a/llarp/net/interface_info.cpp b/llarp/net/interface_info.cpp new file mode 100644 index 000000000..04490095b --- /dev/null +++ b/llarp/net/interface_info.cpp @@ -0,0 +1,15 @@ +#include "interface_info.hpp" + +namespace llarp::net +{ + std::string + InterfaceInfo::ToString() const + { + return fmt::format( + "{}[i={}; addrs={}; gw={}]", + name, + index, + fmt::join(addrs, ","), + gateway ? fmt::format("{}", *gateway) : "none"); + } +} // namespace llarp::net diff --git a/llarp/net/interface_info.hpp b/llarp/net/interface_info.hpp index c5d897264..a603b03bd 100644 --- a/llarp/net/interface_info.hpp +++ b/llarp/net/interface_info.hpp @@ -1,7 +1,9 @@ #pragma once +#include #include #include +#include #include "ip_range.hpp" namespace llarp::net @@ -17,5 +19,11 @@ namespace llarp::net std::vector addrs; /// a gateway we can use if it exists std::optional gateway; + + std::string + ToString() const; }; } // namespace llarp::net + +template <> +inline constexpr bool llarp::IsToStringFormattable = true;