Browse Source

don't copy transit DatabaseStore

pull/225/head
orignal 10 years ago
parent
commit
047c6a93a3
  1. 6
      Tunnel.cpp
  2. 6
      TunnelEndpoint.cpp

6
Tunnel.cpp

@ -440,13 +440,9 @@ namespace tunnel @@ -440,13 +440,9 @@ namespace tunnel
LogPrint (eLogDebug, "TunnelGateway of ", (int)len, " bytes for tunnel ", tunnel->GetTunnelID (), ". Msg type ", (int)typeID);
if (typeID == eI2NPDatabaseStore || typeID == eI2NPDatabaseSearchReply)
{
// transit DatabaseStore my contain new/updated RI
// or DatabaseSearchReply with new routers
auto ds = NewI2NPMessage ();
*ds = *msg; // TODO: don't copy once msg is shared_ptr
i2p::data::netdb.PostI2NPMsg (ToSharedI2NPMessage (ds));
}
i2p::data::netdb.PostI2NPMsg (msg);
tunnel->SendTunnelDataMsg (msg);
}

6
TunnelEndpoint.cpp

@ -243,12 +243,8 @@ namespace tunnel @@ -243,12 +243,8 @@ namespace tunnel
{
auto typeID = msg.data->GetTypeID ();
if (typeID == eI2NPDatabaseStore || typeID == eI2NPDatabaseSearchReply )
{
// catch RI or reply with new list of routers
auto ds = NewI2NPShortMessage ();
*ds = *(msg.data); // TODO: don't copy once msg.data is shared_ptr
i2p::data::netdb.PostI2NPMsg (ToSharedI2NPMessage (ds));
}
i2p::data::netdb.PostI2NPMsg (msg.data);
i2p::transport::transports.SendMessage (msg.hash, msg.data);
}
else // we shouldn't send this message. possible leakage

Loading…
Cancel
Save