mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 00:00:29 +03:00
show tunlel creation success ratio
This commit is contained in:
parent
3977cec408
commit
6f9d8ed01b
@ -659,6 +659,7 @@ namespace util
|
|||||||
default: s << "Unknown";
|
default: s << "Unknown";
|
||||||
}
|
}
|
||||||
s << "<br>";
|
s << "<br>";
|
||||||
|
s << "<b>Tunnel creation success rate:</b> " << i2p::tunnel::tunnels.GetTunnelCreationSuccessRate () << "%<br>";
|
||||||
s << "<b>Data path:</b> " << i2p::util::filesystem::GetDataDir().string() << "<br><br>";
|
s << "<b>Data path:</b> " << i2p::util::filesystem::GetDataDir().string() << "<br><br>";
|
||||||
s << "<b>Our external address:</b>" << "<br>" ;
|
s << "<b>Our external address:</b>" << "<br>" ;
|
||||||
for (auto& address : i2p::context.GetRouterInfo().GetAddresses())
|
for (auto& address : i2p::context.GetRouterInfo().GetAddresses())
|
||||||
|
@ -203,7 +203,8 @@ namespace tunnel
|
|||||||
|
|
||||||
Tunnels tunnels;
|
Tunnels tunnels;
|
||||||
|
|
||||||
Tunnels::Tunnels (): m_IsRunning (false), m_Thread (nullptr)
|
Tunnels::Tunnels (): m_IsRunning (false), m_Thread (nullptr),
|
||||||
|
m_NumSuccesiveTunnelCreations (0), m_NumFailedTunnelCreations (0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -488,6 +489,7 @@ namespace tunnel
|
|||||||
{
|
{
|
||||||
LogPrint ("Pending tunnel build request ", it->first, " timeout. Deleted");
|
LogPrint ("Pending tunnel build request ", it->first, " timeout. Deleted");
|
||||||
it = pendingTunnels.erase (it);
|
it = pendingTunnels.erase (it);
|
||||||
|
m_NumFailedTunnelCreations++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
it++;
|
it++;
|
||||||
@ -495,13 +497,16 @@ namespace tunnel
|
|||||||
case eTunnelStateBuildFailed:
|
case eTunnelStateBuildFailed:
|
||||||
LogPrint ("Pending tunnel build request ", it->first, " failed. Deleted");
|
LogPrint ("Pending tunnel build request ", it->first, " failed. Deleted");
|
||||||
it = pendingTunnels.erase (it);
|
it = pendingTunnels.erase (it);
|
||||||
|
m_NumFailedTunnelCreations++;
|
||||||
break;
|
break;
|
||||||
case eTunnelStateBuildReplyReceived:
|
case eTunnelStateBuildReplyReceived:
|
||||||
// intermediate state, will be either established of build failed
|
// intermediate state, will be either established of build failed
|
||||||
it++;
|
it++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
// success
|
||||||
it = pendingTunnels.erase (it);
|
it = pendingTunnels.erase (it);
|
||||||
|
m_NumSuccesiveTunnelCreations++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
8
Tunnel.h
8
Tunnel.h
@ -175,6 +175,9 @@ namespace tunnel
|
|||||||
std::shared_ptr<TunnelPool> m_ExploratoryPool;
|
std::shared_ptr<TunnelPool> m_ExploratoryPool;
|
||||||
i2p::util::Queue<I2NPMessage> m_Queue;
|
i2p::util::Queue<I2NPMessage> m_Queue;
|
||||||
|
|
||||||
|
// some stats
|
||||||
|
int m_NumSuccesiveTunnelCreations, m_NumFailedTunnelCreations;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// for HTTP only
|
// for HTTP only
|
||||||
@ -182,6 +185,11 @@ namespace tunnel
|
|||||||
const decltype(m_InboundTunnels)& GetInboundTunnels () const { return m_InboundTunnels; };
|
const decltype(m_InboundTunnels)& GetInboundTunnels () const { return m_InboundTunnels; };
|
||||||
const decltype(m_TransitTunnels)& GetTransitTunnels () const { return m_TransitTunnels; };
|
const decltype(m_TransitTunnels)& GetTransitTunnels () const { return m_TransitTunnels; };
|
||||||
int GetQueueSize () { return m_Queue.GetSize (); };
|
int GetQueueSize () { return m_Queue.GetSize (); };
|
||||||
|
int GetTunnelCreationSuccessRate () const // in percents
|
||||||
|
{
|
||||||
|
int totalNum = m_NumSuccesiveTunnelCreations + m_NumFailedTunnelCreations;
|
||||||
|
return totalNum ? m_NumSuccesiveTunnelCreations*100/totalNum : 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Tunnels tunnels;
|
extern Tunnels tunnels;
|
||||||
|
Loading…
Reference in New Issue
Block a user