Skip to content

Commit

Permalink
use reference instead naked pointer to tunnel in tunnel gateway
Browse files Browse the repository at this point in the history
  • Loading branch information
orignal committed Nov 29, 2024
1 parent 56145d0 commit fcc7002
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion libi2pd/TransitTunnel.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ namespace tunnel
const i2p::data::IdentHash& nextIdent, uint32_t nextTunnelID,
const i2p::crypto::AESKey& layerKey, const i2p::crypto::AESKey& ivKey):
TransitTunnel (receiveTunnelID, nextIdent, nextTunnelID,
layerKey, ivKey), m_Gateway(this) {};
layerKey, ivKey), m_Gateway(*this) {};

void SendTunnelDataMsg (std::shared_ptr<i2p::I2NPMessage> msg) override;
void FlushTunnelDataMsgs () override;
Expand Down
2 changes: 1 addition & 1 deletion libi2pd/Tunnel.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ namespace tunnel
public:

OutboundTunnel (std::shared_ptr<const TunnelConfig> config):
Tunnel (config), m_Gateway (this), m_EndpointIdentHash (config->GetLastIdentHash ()) {};
Tunnel (config), m_Gateway (*this), m_EndpointIdentHash (config->GetLastIdentHash ()) {};

void SendTunnelDataMsgTo (const uint8_t * gwHash, uint32_t gwTunnel, std::shared_ptr<i2p::I2NPMessage> msg);
virtual void SendTunnelDataMsgs (const std::vector<TunnelMessageBlock>& msgs); // multiple messages
Expand Down
8 changes: 4 additions & 4 deletions libi2pd/TunnelGateway.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ namespace tunnel
for (auto& tunnelMsg : tunnelDataMsgs)
{
auto newMsg = CreateEmptyTunnelDataMsg (false);
m_Tunnel->EncryptTunnelMsg (tunnelMsg, newMsg);
htobe32buf (newMsg->GetPayload (), m_Tunnel->GetNextTunnelID ());
m_Tunnel.EncryptTunnelMsg (tunnelMsg, newMsg);
htobe32buf (newMsg->GetPayload (), m_Tunnel.GetNextTunnelID ());
newMsg->FillI2NPMessageHeader (eI2NPTunnelData);
if (tunnelMsg->onDrop) newMsg->onDrop = tunnelMsg->onDrop;
newTunnelMsgs.push_back (newMsg);
Expand All @@ -254,7 +254,7 @@ namespace tunnel
else // still pending
{
// send through transports, but don't update pedning transport
i2p::transport::transports.SendMessages (m_Tunnel->GetNextIdentHash (), std::move (newTunnelMsgs));
i2p::transport::transports.SendMessages (m_Tunnel.GetNextIdentHash (), std::move (newTunnelMsgs));
return;
}
}
Expand All @@ -264,7 +264,7 @@ namespace tunnel
m_CurrentTransport->SendI2NPMessages (newTunnelMsgs);
else // no session yet
// send through transports
m_PendingTransport = i2p::transport::transports.SendMessages (m_Tunnel->GetNextIdentHash (), std::move (newTunnelMsgs));
m_PendingTransport = i2p::transport::transports.SendMessages (m_Tunnel.GetNextIdentHash (), std::move (newTunnelMsgs));
}
}
}
4 changes: 2 additions & 2 deletions libi2pd/TunnelGateway.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ namespace tunnel
{
public:

TunnelGateway (TunnelBase * tunnel):
TunnelGateway (TunnelBase& tunnel):
m_Tunnel (tunnel), m_NumSentBytes (0) {};
void SendTunnelDataMsg (const TunnelMessageBlock& block);
void PutTunnelDataMsg (const TunnelMessageBlock& block);
Expand All @@ -56,7 +56,7 @@ namespace tunnel

private:

TunnelBase * m_Tunnel;
TunnelBase& m_Tunnel;
TunnelGatewayBuffer m_Buffer;
size_t m_NumSentBytes;
std::shared_ptr<i2p::transport::TransportSession> m_CurrentTransport;
Expand Down

0 comments on commit fcc7002

Please sign in to comment.