mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 08:14:15 +00:00
don't use netdb memory pool for local RouterInfo
This commit is contained in:
parent
55704ece3a
commit
acd6af709e
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2022, The PurpleI2P Project
|
* Copyright (c) 2013-2023, The PurpleI2P Project
|
||||||
*
|
*
|
||||||
* This file is part of Purple i2pd project and licensed under BSD3
|
* This file is part of Purple i2pd project and licensed under BSD3
|
||||||
*
|
*
|
||||||
@ -206,13 +206,13 @@ namespace data
|
|||||||
s.read ((char *)&m_Timestamp, sizeof (m_Timestamp));
|
s.read ((char *)&m_Timestamp, sizeof (m_Timestamp));
|
||||||
m_Timestamp = be64toh (m_Timestamp);
|
m_Timestamp = be64toh (m_Timestamp);
|
||||||
// read addresses
|
// read addresses
|
||||||
auto addresses = netdb.NewRouterInfoAddresses ();
|
auto addresses = NewAddresses ();
|
||||||
uint8_t numAddresses;
|
uint8_t numAddresses;
|
||||||
s.read ((char *)&numAddresses, sizeof (numAddresses));
|
s.read ((char *)&numAddresses, sizeof (numAddresses));
|
||||||
for (int i = 0; i < numAddresses; i++)
|
for (int i = 0; i < numAddresses; i++)
|
||||||
{
|
{
|
||||||
uint8_t supportedTransports = 0;
|
uint8_t supportedTransports = 0;
|
||||||
auto address = netdb.NewRouterInfoAddress ();
|
auto address = NewAddress ();
|
||||||
uint8_t cost; // ignore
|
uint8_t cost; // ignore
|
||||||
s.read ((char *)&cost, sizeof (cost));
|
s.read ((char *)&cost, sizeof (cost));
|
||||||
s.read ((char *)&address->date, sizeof (address->date));
|
s.read ((char *)&address->date, sizeof (address->date));
|
||||||
@ -974,6 +974,16 @@ namespace data
|
|||||||
return netdb.NewRouterInfoBuffer ();
|
return netdb.NewRouterInfoBuffer ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<RouterInfo::Address> RouterInfo::NewAddress () const
|
||||||
|
{
|
||||||
|
return netdb.NewRouterInfoAddress ();
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<RouterInfo::Addresses> RouterInfo::NewAddresses () const
|
||||||
|
{
|
||||||
|
return netdb.NewRouterInfoAddresses ();
|
||||||
|
}
|
||||||
|
|
||||||
void RouterInfo::RefreshTimestamp ()
|
void RouterInfo::RefreshTimestamp ()
|
||||||
{
|
{
|
||||||
m_Timestamp = i2p::util::GetMillisecondsSinceEpoch ();
|
m_Timestamp = i2p::util::GetMillisecondsSinceEpoch ();
|
||||||
@ -1255,6 +1265,16 @@ namespace data
|
|||||||
return std::make_shared<Buffer> ();
|
return std::make_shared<Buffer> ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<RouterInfo::Address> LocalRouterInfo::NewAddress () const
|
||||||
|
{
|
||||||
|
return std::make_shared<Address> ();
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<RouterInfo::Addresses> LocalRouterInfo::NewAddresses () const
|
||||||
|
{
|
||||||
|
return boost::make_shared<Addresses> ();
|
||||||
|
}
|
||||||
|
|
||||||
bool LocalRouterInfo::AddSSU2Introducer (const Introducer& introducer, bool v4)
|
bool LocalRouterInfo::AddSSU2Introducer (const Introducer& introducer, bool v4)
|
||||||
{
|
{
|
||||||
auto addresses = GetAddresses ();
|
auto addresses = GetAddresses ();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2022, The PurpleI2P Project
|
* Copyright (c) 2013-2023, The PurpleI2P Project
|
||||||
*
|
*
|
||||||
* This file is part of Purple i2pd project and licensed under BSD3
|
* This file is part of Purple i2pd project and licensed under BSD3
|
||||||
*
|
*
|
||||||
@ -285,6 +285,8 @@ namespace data
|
|||||||
template<typename Filter>
|
template<typename Filter>
|
||||||
std::shared_ptr<const Address> GetAddress (Filter filter) const;
|
std::shared_ptr<const Address> GetAddress (Filter filter) const;
|
||||||
virtual std::shared_ptr<Buffer> NewBuffer () const;
|
virtual std::shared_ptr<Buffer> NewBuffer () const;
|
||||||
|
virtual std::shared_ptr<Address> NewAddress () const;
|
||||||
|
virtual boost::shared_ptr<Addresses> NewAddresses () const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -324,6 +326,8 @@ namespace data
|
|||||||
void UpdateCapsProperty ();
|
void UpdateCapsProperty ();
|
||||||
void WriteString (const std::string& str, std::ostream& s) const;
|
void WriteString (const std::string& str, std::ostream& s) const;
|
||||||
std::shared_ptr<Buffer> NewBuffer () const override;
|
std::shared_ptr<Buffer> NewBuffer () const override;
|
||||||
|
std::shared_ptr<Address> NewAddress () const override;
|
||||||
|
boost::shared_ptr<Addresses> NewAddresses () const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user