Skip to content

Commit

Permalink
exploratory improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
orignal committed Aug 10, 2014
1 parent 49c57db commit e712690
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
6 changes: 4 additions & 2 deletions I2NPProtocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -463,9 +463,11 @@ namespace i2p
msg->offset += sizeof (I2NPHeader) + sizeof (TunnelGatewayHeader);
msg->len = msg->offset + len;
LogPrint ("TunnelGateway of ", (int)len, " bytes for tunnel ", (unsigned int)tunnelID, ". Msg type ", (int)msg->GetHeader()->typeID);
if (msg->GetHeader()->typeID == eI2NPDatabaseStore)
if (msg->GetHeader()->typeID == eI2NPDatabaseStore ||
msg->GetHeader()->typeID == eI2NPDatabaseSearchReply)
{
// transit DatabaseStore my contain new/updated RI
// transit DatabaseStore my contain new/updated RI
// or DatabaseSearchReply with new routers
auto ds = NewI2NPMessage ();
*ds = *msg;
i2p::data::netdb.PostI2NPMsg (ds);
Expand Down
12 changes: 12 additions & 0 deletions NetDb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,19 @@ namespace data
}
}
else
{
LogPrint ("Requested destination for ", key, " not found");
// it might contain new routers
for (int i = 0; i < num; i++)
{
IdentHash router (buf + 33 + i*32);
if (!FindRouter (router))
{
LogPrint ("New router ", router.ToBase64 (), " found. Request it");
RequestDestination (router);
}
}
}
i2p::DeleteI2NPMessage (msg);
}

Expand Down
5 changes: 3 additions & 2 deletions TunnelEndpoint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,10 @@ namespace tunnel
// to somebody else
if (!m_IsInbound) // outbound transit tunnel
{
if (msg.data->GetHeader()->typeID == eI2NPDatabaseStore)
if (msg.data->GetHeader()->typeID == eI2NPDatabaseStore ||
msg.data->GetHeader()->typeID == eI2NPDatabaseSearchReply )
{
// catch RI
// catch RI or reply with new list of routers
auto ds = NewI2NPMessage ();
*ds = *(msg.data);
i2p::data::netdb.PostI2NPMsg (ds);
Expand Down

0 comments on commit e712690

Please sign in to comment.