RNG per destination. Use RNG from tunnels in tunnel pool

This commit is contained in:
orignal
2025-12-11 17:43:14 -05:00
parent d4ec15361f
commit 4f73e9678e
13 changed files with 33 additions and 56 deletions
+4 -5
View File
@@ -34,14 +34,13 @@ namespace i2p
m_ShareRatio (100), m_Status (eRouterStatusUnknown), m_StatusV6 (eRouterStatusUnknown),
m_Error (eRouterErrorNone), m_ErrorV6 (eRouterErrorNone),
m_Testing (false), m_TestingV6 (false), m_NetID (I2PD_NET_ID),
m_PublishReplyToken (0), m_IsHiddenMode (false),
m_Rng(i2p::util::GetMonotonicMicroseconds () % 1000000LL), m_IsSaving (false)
m_PublishReplyToken (0), m_IsHiddenMode (false), m_IsSaving (false)
{
}
void RouterContext::Init ()
{
srand (m_Rng () % 1000);
srand (GetRng ()() % 1000);
m_StartupTime = i2p::util::GetMonotonicSeconds ();
if (!Load ())
@@ -1395,7 +1394,7 @@ namespace i2p
{
m_PublishTimer->cancel ();
m_PublishTimer->expires_from_now (boost::posix_time::seconds(ROUTER_INFO_PUBLISH_INTERVAL +
m_Rng () % ROUTER_INFO_PUBLISH_INTERVAL_VARIANCE));
GetRng ()() % ROUTER_INFO_PUBLISH_INTERVAL_VARIANCE));
m_PublishTimer->async_wait (std::bind (&RouterContext::HandlePublishTimer,
this, std::placeholders::_1));
}
@@ -1508,7 +1507,7 @@ namespace i2p
{
m_CongestionUpdateTimer->cancel ();
m_CongestionUpdateTimer->expires_from_now (boost::posix_time::seconds(
ROUTER_INFO_CONGESTION_UPDATE_INTERVAL + m_Rng () % ROUTER_INFO_CONGESTION_UPDATE_INTERVAL_VARIANCE));
ROUTER_INFO_CONGESTION_UPDATE_INTERVAL + GetRng ()() % ROUTER_INFO_CONGESTION_UPDATE_INTERVAL_VARIANCE));
m_CongestionUpdateTimer->async_wait (std::bind (&RouterContext::HandleCongestionUpdateTimer,
this, std::placeholders::_1));
}