mirror of https://github.com/oxen-io/lokinet
Piggyback on link callbacks to add peer stats
This commit is contained in:
parent
cb8e5354f5
commit
2453fff10b
|
@ -548,9 +548,9 @@ namespace llarp
|
|||
util::memFn(&AbstractRouter::rc, this),
|
||||
util::memFn(&AbstractRouter::HandleRecvLinkMessageBuffer, this),
|
||||
util::memFn(&AbstractRouter::Sign, this),
|
||||
util::memFn(&IOutboundSessionMaker::OnSessionEstablished, &_outboundSessionMaker),
|
||||
util::memFn(&Router::ConnectionEstablished, this),
|
||||
util::memFn(&AbstractRouter::CheckRenegotiateValid, this),
|
||||
util::memFn(&IOutboundSessionMaker::OnConnectTimeout, &_outboundSessionMaker),
|
||||
util::memFn(&Router::ConnectionTimedOut, this),
|
||||
util::memFn(&AbstractRouter::SessionClosed, this),
|
||||
util::memFn(&AbstractRouter::PumpLL, this),
|
||||
util::memFn(&AbstractRouter::QueueWork, this));
|
||||
|
@ -824,6 +824,30 @@ namespace llarp
|
|||
LogInfo("Session to ", remote, " fully closed");
|
||||
}
|
||||
|
||||
void
|
||||
Router::ConnectionTimedOut(ILinkSession* session)
|
||||
{
|
||||
if (m_peerDb)
|
||||
{
|
||||
RouterID id{session->GetPubKey()};
|
||||
// TODO: make sure this is a public router (on whitelist)?
|
||||
m_peerDb->modifyPeerStats(id, [&](PeerStats& stats) { stats.numConnectionTimeouts++; });
|
||||
}
|
||||
_outboundSessionMaker.OnConnectTimeout(session);
|
||||
}
|
||||
|
||||
bool
|
||||
Router::ConnectionEstablished(ILinkSession* session)
|
||||
{
|
||||
if (m_peerDb)
|
||||
{
|
||||
RouterID id{session->GetPubKey()};
|
||||
// TODO: make sure this is a public router (on whitelist)?
|
||||
m_peerDb->modifyPeerStats(id, [&](PeerStats& stats) { stats.numConnectionSuccesses++; });
|
||||
}
|
||||
return _outboundSessionMaker.OnSessionEstablished(session);
|
||||
}
|
||||
|
||||
bool
|
||||
Router::GetRandomConnectedRouter(RouterContact& result) const
|
||||
{
|
||||
|
@ -1175,9 +1199,9 @@ namespace llarp
|
|||
util::memFn(&AbstractRouter::rc, this),
|
||||
util::memFn(&AbstractRouter::HandleRecvLinkMessageBuffer, this),
|
||||
util::memFn(&AbstractRouter::Sign, this),
|
||||
util::memFn(&IOutboundSessionMaker::OnSessionEstablished, &_outboundSessionMaker),
|
||||
util::memFn(&Router::ConnectionEstablished, this),
|
||||
util::memFn(&AbstractRouter::CheckRenegotiateValid, this),
|
||||
util::memFn(&IOutboundSessionMaker::OnConnectTimeout, &_outboundSessionMaker),
|
||||
util::memFn(&Router::ConnectionTimedOut, this),
|
||||
util::memFn(&AbstractRouter::SessionClosed, this),
|
||||
util::memFn(&AbstractRouter::PumpLL, this),
|
||||
util::memFn(&AbstractRouter::QueueWork, this));
|
||||
|
|
|
@ -434,6 +434,14 @@ namespace llarp
|
|||
void
|
||||
SessionClosed(RouterID remote) override;
|
||||
|
||||
/// called by link when an unestablished connection times out
|
||||
void
|
||||
ConnectionTimedOut(ILinkSession* session);
|
||||
|
||||
/// called by link when session is fully established
|
||||
bool
|
||||
ConnectionEstablished(ILinkSession* session);
|
||||
|
||||
/// call internal router ticker
|
||||
void
|
||||
Tick();
|
||||
|
|
Loading…
Reference in New Issue