mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-09 19:47:54 +00:00
use shared_ptr for local LeaseSet
This commit is contained in:
parent
3a26383c4d
commit
8c47bf9dd3
@ -16,7 +16,7 @@ namespace client
|
|||||||
ClientDestination::ClientDestination (const i2p::data::PrivateKeys& keys, bool isPublic,
|
ClientDestination::ClientDestination (const i2p::data::PrivateKeys& keys, bool isPublic,
|
||||||
const std::map<std::string, std::string> * params):
|
const std::map<std::string, std::string> * params):
|
||||||
m_IsRunning (false), m_Thread (nullptr), m_Work (m_Service),
|
m_IsRunning (false), m_Thread (nullptr), m_Work (m_Service),
|
||||||
m_Keys (keys), m_LeaseSet (nullptr), m_IsPublic (isPublic), m_PublishReplyToken (0),
|
m_Keys (keys), m_IsPublic (isPublic), m_PublishReplyToken (0),
|
||||||
m_DatagramDestination (nullptr), m_PublishConfirmationTimer (m_Service), m_CleanupTimer (m_Service)
|
m_DatagramDestination (nullptr), m_PublishConfirmationTimer (m_Service), m_CleanupTimer (m_Service)
|
||||||
{
|
{
|
||||||
i2p::crypto::GenerateElGamalKeyPair(i2p::context.GetRandomNumberGenerator (), m_EncryptionPrivateKey, m_EncryptionPublicKey);
|
i2p::crypto::GenerateElGamalKeyPair(i2p::context.GetRandomNumberGenerator (), m_EncryptionPrivateKey, m_EncryptionPublicKey);
|
||||||
@ -148,7 +148,7 @@ namespace client
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const i2p::data::LeaseSet * ClientDestination::GetLeaseSet ()
|
std::shared_ptr<const i2p::data::LeaseSet> ClientDestination::GetLeaseSet ()
|
||||||
{
|
{
|
||||||
if (!m_Pool) return nullptr;
|
if (!m_Pool) return nullptr;
|
||||||
if (!m_LeaseSet)
|
if (!m_LeaseSet)
|
||||||
@ -158,15 +158,7 @@ namespace client
|
|||||||
|
|
||||||
void ClientDestination::UpdateLeaseSet ()
|
void ClientDestination::UpdateLeaseSet ()
|
||||||
{
|
{
|
||||||
auto newLeaseSet = new i2p::data::LeaseSet (*m_Pool);
|
m_LeaseSet.reset (new i2p::data::LeaseSet (*m_Pool));
|
||||||
if (!m_LeaseSet)
|
|
||||||
m_LeaseSet = newLeaseSet;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// TODO: implement it better
|
|
||||||
*m_LeaseSet = *newLeaseSet;
|
|
||||||
delete newLeaseSet;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClientDestination::SubmitSessionKey (const uint8_t * key, const uint8_t * tag)
|
bool ClientDestination::SubmitSessionKey (const uint8_t * key, const uint8_t * tag)
|
||||||
|
@ -88,7 +88,7 @@ namespace client
|
|||||||
const uint8_t * GetEncryptionPublicKey () const { return m_EncryptionPublicKey; };
|
const uint8_t * GetEncryptionPublicKey () const { return m_EncryptionPublicKey; };
|
||||||
|
|
||||||
// implements GarlicDestination
|
// implements GarlicDestination
|
||||||
const i2p::data::LeaseSet * GetLeaseSet ();
|
std::shared_ptr<const i2p::data::LeaseSet> GetLeaseSet ();
|
||||||
std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const { return m_Pool; }
|
std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const { return m_Pool; }
|
||||||
void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from);
|
void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from);
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ namespace client
|
|||||||
std::map<i2p::data::IdentHash, LeaseSetRequest *> m_LeaseSetRequests;
|
std::map<i2p::data::IdentHash, LeaseSetRequest *> m_LeaseSetRequests;
|
||||||
|
|
||||||
std::shared_ptr<i2p::tunnel::TunnelPool> m_Pool;
|
std::shared_ptr<i2p::tunnel::TunnelPool> m_Pool;
|
||||||
i2p::data::LeaseSet * m_LeaseSet;
|
std::shared_ptr<i2p::data::LeaseSet> m_LeaseSet;
|
||||||
bool m_IsPublic;
|
bool m_IsPublic;
|
||||||
uint32_t m_PublishReplyToken;
|
uint32_t m_PublishReplyToken;
|
||||||
std::set<i2p::data::IdentHash> m_ExcludedFloodfills; // for publishing
|
std::set<i2p::data::IdentHash> m_ExcludedFloodfills; // for publishing
|
||||||
|
2
Garlic.h
2
Garlic.h
@ -137,7 +137,7 @@ namespace garlic
|
|||||||
virtual void ProcessDeliveryStatusMessage (I2NPMessage * msg);
|
virtual void ProcessDeliveryStatusMessage (I2NPMessage * msg);
|
||||||
virtual void SetLeaseSetUpdated ();
|
virtual void SetLeaseSetUpdated ();
|
||||||
|
|
||||||
virtual const i2p::data::LeaseSet * GetLeaseSet () = 0; // TODO
|
virtual std::shared_ptr<const i2p::data::LeaseSet> GetLeaseSet () = 0; // TODO
|
||||||
virtual std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const = 0;
|
virtual std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const = 0;
|
||||||
virtual void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from) = 0;
|
virtual void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from) = 0;
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ namespace i2p
|
|||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
I2NPMessage * CreateDatabaseStoreMsg (const i2p::data::LeaseSet * leaseSet, uint32_t replyToken)
|
I2NPMessage * CreateDatabaseStoreMsg (std::shared_ptr<const i2p::data::LeaseSet> leaseSet, uint32_t replyToken)
|
||||||
{
|
{
|
||||||
if (!leaseSet) return nullptr;
|
if (!leaseSet) return nullptr;
|
||||||
I2NPMessage * m = NewI2NPShortMessage ();
|
I2NPMessage * m = NewI2NPShortMessage ();
|
||||||
|
@ -210,7 +210,7 @@ namespace tunnel
|
|||||||
I2NPMessage * CreateDatabaseSearchReply (const i2p::data::IdentHash& ident, std::vector<i2p::data::IdentHash> routers);
|
I2NPMessage * CreateDatabaseSearchReply (const i2p::data::IdentHash& ident, std::vector<i2p::data::IdentHash> routers);
|
||||||
|
|
||||||
I2NPMessage * CreateDatabaseStoreMsg (const i2p::data::RouterInfo * router = nullptr, uint32_t replyToken = 0);
|
I2NPMessage * CreateDatabaseStoreMsg (const i2p::data::RouterInfo * router = nullptr, uint32_t replyToken = 0);
|
||||||
I2NPMessage * CreateDatabaseStoreMsg (const i2p::data::LeaseSet * leaseSet, uint32_t replyToken = 0);
|
I2NPMessage * CreateDatabaseStoreMsg (std::shared_ptr<const i2p::data::LeaseSet> leaseSet, uint32_t replyToken = 0);
|
||||||
|
|
||||||
bool HandleBuildRequestRecords (int num, uint8_t * records, uint8_t * clearText);
|
bool HandleBuildRequestRecords (int num, uint8_t * records, uint8_t * clearText);
|
||||||
void HandleVariableTunnelBuildMsg (uint32_t replyMsgID, uint8_t * buf, size_t len);
|
void HandleVariableTunnelBuildMsg (uint32_t replyMsgID, uint8_t * buf, size_t len);
|
||||||
|
@ -749,7 +749,7 @@ namespace data
|
|||||||
if (leaseSet) // we don't send back our LeaseSets
|
if (leaseSet) // we don't send back our LeaseSets
|
||||||
{
|
{
|
||||||
LogPrint ("Requested LeaseSet ", key, " found");
|
LogPrint ("Requested LeaseSet ", key, " found");
|
||||||
replyMsg = CreateDatabaseStoreMsg (leaseSet.get ());
|
replyMsg = CreateDatabaseStoreMsg (leaseSet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!replyMsg)
|
if (!replyMsg)
|
||||||
|
@ -72,7 +72,7 @@ namespace i2p
|
|||||||
void SetLeaseSetUpdated () {};
|
void SetLeaseSetUpdated () {};
|
||||||
|
|
||||||
// implements GarlicDestination
|
// implements GarlicDestination
|
||||||
const i2p::data::LeaseSet * GetLeaseSet () { return nullptr; };
|
std::shared_ptr<const i2p::data::LeaseSet> GetLeaseSet () { return nullptr; };
|
||||||
std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const;
|
std::shared_ptr<i2p::tunnel::TunnelPool> GetTunnelPool () const;
|
||||||
void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from);
|
void HandleI2NPMessage (const uint8_t * buf, size_t len, std::shared_ptr<i2p::tunnel::InboundTunnel> from);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user