Browse Source

publish congestion cap G

pull/1911/head
orignal 2 years ago
parent
commit
b8032e7fbf
  1. 9
      libi2pd/RouterContext.cpp
  2. 9
      libi2pd/RouterInfo.cpp
  3. 3
      libi2pd/RouterInfo.h

9
libi2pd/RouterContext.cpp

@ -1090,6 +1090,8 @@ namespace i2p
UpdateSSU2Keys (); UpdateSSU2Keys ();
updated = true; updated = true;
} }
if (m_RouterInfo.UpdateCongestion (i2p::data::RouterInfo::eLowCongestion))
updated = true;
if (updated) if (updated)
UpdateRouterInfo (); UpdateRouterInfo ();
@ -1398,7 +1400,12 @@ namespace i2p
{ {
if (ecode != boost::asio::error::operation_aborted) if (ecode != boost::asio::error::operation_aborted)
{ {
if (m_RouterInfo.SetHighCongestion (IsHighCongestion ())) auto c = i2p::data::RouterInfo::eLowCongestion;
if (!AcceptsTunnels ())
c = i2p::data::RouterInfo::eRejectAll;
else if (IsHighCongestion ())
c = i2p::data::RouterInfo::eHighCongestion;
if (m_RouterInfo.UpdateCongestion (c))
UpdateRouterInfo (); UpdateRouterInfo ();
ScheduleCongestionUpdate (); ScheduleCongestionUpdate ();
} }

9
libi2pd/RouterInfo.cpp

@ -1077,12 +1077,6 @@ namespace data
if (m_Congestion == eHighCongestion) if (m_Congestion == eHighCongestion)
return (i2p::util::GetMillisecondsSinceEpoch () < m_Timestamp + HIGH_CONGESTION_INTERVAL*1000LL) ? true : false; return (i2p::util::GetMillisecondsSinceEpoch () < m_Timestamp + HIGH_CONGESTION_INTERVAL*1000LL) ? true : false;
return false; return false;
}
LocalRouterInfo::LocalRouterInfo (const std::string& fullPath):
RouterInfo (fullPath)
{
SetHighCongestion (false); // drop congestion
} }
void LocalRouterInfo::CreateBuffer (const PrivateKeys& privateKeys) void LocalRouterInfo::CreateBuffer (const PrivateKeys& privateKeys)
@ -1153,9 +1147,8 @@ namespace data
SetProperty ("caps", caps); SetProperty ("caps", caps);
} }
bool LocalRouterInfo::SetHighCongestion (bool highCongestion) bool LocalRouterInfo::UpdateCongestion (Congestion c)
{ {
Congestion c = highCongestion ? eHighCongestion : eLowCongestion;
if (c != GetCongestion ()) if (c != GetCongestion ())
{ {
SetCongestion (c); SetCongestion (c);

3
libi2pd/RouterInfo.h

@ -330,10 +330,9 @@ namespace data
public: public:
LocalRouterInfo () = default; LocalRouterInfo () = default;
LocalRouterInfo (const std::string& fullPath);
void CreateBuffer (const PrivateKeys& privateKeys); void CreateBuffer (const PrivateKeys& privateKeys);
void UpdateCaps (uint8_t caps); void UpdateCaps (uint8_t caps);
bool SetHighCongestion (bool highCongestion); // returns true if updated bool UpdateCongestion (Congestion c); // returns true if updated
void SetProperty (const std::string& key, const std::string& value) override; void SetProperty (const std::string& key, const std::string& value) override;
void DeleteProperty (const std::string& key); void DeleteProperty (const std::string& key);

Loading…
Cancel
Save