47 template <
class T,
class Archive>
55 template <
class T,
class Archive>
61 template <
class Archive,
class ver_type>
64 static constexpr
const typename Archive::is_saving is_saving{};
73 do_serialize<epee::net_utils::ipv4_network_address>(is_saving,
a, na);
76 do_serialize<epee::net_utils::ipv6_network_address>(is_saving,
a, na);
79 do_serialize<net::tor_address>(is_saving,
a, na);
82 do_serialize<net::i2p_address>(is_saving,
a, na);
86 throw std::runtime_error(
"Unsupported network address type");
89 template <
class Archive,
class ver_type>
98 if (!
typename Archive::is_saving())
102 template <
class Archive,
class ver_type>
103 inline void serialize(Archive &
a, boost::asio::ip::address_v6& v6,
const ver_type ver)
105 if (
typename Archive::is_saving())
107 auto bytes = v6.to_bytes();
108 for (
auto &
e: bytes)
a &
e;
112 boost::asio::ip::address_v6::bytes_type bytes;
113 for (
auto &
e: bytes)
a &
e;
114 v6 = boost::asio::ip::address_v6(bytes);
118 template <
class Archive,
class ver_type>
121 boost::asio::ip::address_v6
ip{na.
ip()};
125 if (!
typename Archive::is_saving())
130 template <
class Archive,
class ver_type>
133 const size_t length = std::strlen(na.
host_str());
144 template <
class Archive,
class ver_type>
147 const size_t length = std::strlen(na.
host_str());
158 template <
class Archive,
class ver_type>
171 a.load_binary(
host, length);
180 template <
class Archive,
class ver_type>
193 a.load_binary(
host, length);
202 template <
class Archive,
class ver_type>
205 boost::serialization::split_free(
a, na, ver);
208 template <
class Archive,
class ver_type>
211 boost::serialization::split_free(
a, na, ver);
214 template <
class Archive,
class ver_type>
222 if (!
typename Archive::is_saving())
229 if (!
typename Archive::is_saving())
236 if (!
typename Archive::is_saving())
243 template <
class Archive,
class ver_type>
Definition: binary_utils.h:36
int64_t last_seen
Definition: p2p_protocol_defs.h:76
static constexpr std::size_t buffer_size() noexcept
Definition: tor_address.h:62
const uint32_t T[512]
Definition: groestl_tables.h:36
uint16_t port() const noexcept
Definition: net_utils_base.h:193
Definition: portable_binary_archive.hpp:29
static expect< i2p_address > make(boost::string_ref address)
Definition: i2p_address.cpp:105
constexpr uint16_t port() const noexcept
Definition: net_utils_base.h:87
b32 i2p address; internal format not condensed/decoded.
Definition: i2p_address.h:51
uint16_t rpc_port
Definition: p2p_protocol_defs.h:78
AddressType adr
Definition: p2p_protocol_defs.h:74
Definition: net_utils_base.h:224
static const char * unknown_str() noexcept
Definition: tor_address.cpp:96
host
Definition: console.py:27
static const char * unknown_str() noexcept
Definition: i2p_address.cpp:93
static i2p_address unknown() noexcept
Definition: i2p_address.h:69
AddressType adr
Definition: p2p_protocol_defs.h:104
Definition: net_utils_base.h:68
int type
Definition: superscalar.cpp:50
uint32_t pruning_seed
Definition: p2p_protocol_defs.h:77
unsigned short uint16_t
Definition: stdint.h:125
static constexpr address_type get_type_id() noexcept
Definition: net_utils_base.h:198
static tor_address unknown() noexcept
Definition: tor_address.h:71
unsigned char uint8_t
Definition: stdint.h:124
#define MONERO_THROW(code, msg)
Definition: expect.h:67
void save(Archive &a, const net::i2p_address &na, const ver_type)
Definition: net_peerlist_boost_serialization.h:145
int buffer_size
Definition: versiongenerate.py:65
address_type
Definition: enums.h:39
int64_t first_seen
Definition: p2p_protocol_defs.h:106
const char * host_str() const noexcept
Definition: i2p_address.h:103
e
Definition: pymoduletest.py:79
peerid_type id
Definition: p2p_protocol_defs.h:75
static constexpr std::size_t buffer_size() noexcept
Definition: i2p_address.h:60
address_type get_type_id() const
Definition: net_utils_base.h:316
bool serialize(Archive &ar, T &v)
Definition: serialization.h:294
constexpr uint32_t ip() const noexcept
Definition: net_utils_base.h:86
unsigned int uint32_t
Definition: stdint.h:126
peerid_type id
Definition: p2p_protocol_defs.h:105
Definition: p2p_protocol_defs.h:102
static constexpr address_type get_type_id() noexcept
Definition: net_utils_base.h:92
const char * host_str() const noexcept
Definition: tor_address.h:105
static constexpr epee::net_utils::address_type get_type_id() noexcept
Definition: tor_address.h:113
std::uint16_t port() const noexcept
Definition: tor_address.h:108
boost::endian::big_uint32_t ip
Definition: socks.cpp:62
boost::endian::big_uint16_t port
Definition: socks.cpp:61
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
boost::asio::ip::address_v6 ip() const noexcept
Definition: net_utils_base.h:192
const T & move(const T &t)
Definition: gtest-port.h:1317
Tor onion address; internal format not condensed/decoded.
Definition: tor_address.h:52
const Type & as() const
Definition: net_utils_base.h:320
#define MONERO_UNWRAP(...)
Definition: expect.h:61
Invalid base32 or length.
uint32_t rpc_credits_per_hash
Definition: p2p_protocol_defs.h:79
Definition: net_utils_base.h:171
BOOST_CLASS_VERSION(nodetool::peerlist_types, nodetool::CURRENT_PEERLIST_STORAGE_ARCHIVE_VER)
static constexpr epee::net_utils::address_type get_type_id() noexcept
Definition: i2p_address.h:111
void do_serialize(boost::mpl::true_, Archive &a, const epee::net_utils::network_address &na)
Definition: net_peerlist_boost_serialization.h:56
static expect< tor_address > make(boost::string_ref address, std::uint16_t default_port=0)
Definition: tor_address.cpp:109
std::uint16_t port() const noexcept
Definition: i2p_address.h:106
#define SWAP32LE
Definition: int-util.h:305
Definition: p2p_protocol_defs.h:72
void load(Archive &a, net::i2p_address &na, const ver_type)
Definition: net_peerlist_boost_serialization.h:181