From 040d0f5f58e88602e3da37a0f9adf73f6fa65048 Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 5 Jan 2014 22:52:17 -0500 Subject: [PATCH] show trafic for transit tunnels --- HTTPServer.cpp | 11 +++++++++-- TransitTunnel.cpp | 4 +++- TransitTunnel.h | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/HTTPServer.cpp b/HTTPServer.cpp index 88e7b272..577ef748 100644 --- a/HTTPServer.cpp +++ b/HTTPServer.cpp @@ -104,15 +104,22 @@ namespace util s << "-->" << it.second->GetTunnelID (); else s << "-->" << it.second->GetTunnelID () << "-->"; - s << "
"; + s << " " << it.second->GetNumTransmittedBytes () << "
"; } s << "

Transports

"; for (auto it: i2p::transports.GetNTCPSessions ()) { + // RouterInfo of incoming connection doesn't have address + bool outgoing = it.second->GetRemoteRouterInfo ().GetNTCPAddress (); if (it.second->IsEstablished ()) + { + if (outgoing) s << "-->"; s << it.second->GetRemoteRouterInfo ().GetIdentHashAbbreviation () << ": " - << it.second->GetSocket ().remote_endpoint().address ().to_string () << "
"; + << it.second->GetSocket ().remote_endpoint().address ().to_string (); + if (!outgoing) s << "-->"; + s << "
"; + } } } diff --git a/TransitTunnel.cpp b/TransitTunnel.cpp index 5771c385..d92b62a9 100644 --- a/TransitTunnel.cpp +++ b/TransitTunnel.cpp @@ -14,7 +14,8 @@ namespace tunnel TransitTunnel::TransitTunnel (uint32_t receiveTunnelID, const uint8_t * nextIdent, uint32_t nextTunnelID, const uint8_t * layerKey,const uint8_t * ivKey): - m_TunnelID (receiveTunnelID), m_NextTunnelID (nextTunnelID), m_NextIdent (nextIdent) + m_TunnelID (receiveTunnelID), m_NextTunnelID (nextTunnelID), + m_NextIdent (nextIdent), m_NumTransmittedBytes (0) { memcpy (m_LayerKey, layerKey, 32); memcpy (m_IVKey, ivKey, 32); @@ -43,6 +44,7 @@ namespace tunnel FillI2NPMessageHeader (tunnelMsg, eI2NPTunnelData); i2p::transports.SendMessage (m_NextIdent, tunnelMsg); + m_NumTransmittedBytes += tunnelMsg->GetLength (); } void TransitTunnel::SendTunnelDataMsg (const uint8_t * gwHash, uint32_t gwTunnel, i2p::I2NPMessage * msg) diff --git a/TransitTunnel.h b/TransitTunnel.h index 2109ee31..570429f5 100644 --- a/TransitTunnel.h +++ b/TransitTunnel.h @@ -23,6 +23,7 @@ namespace tunnel virtual void HandleTunnelDataMsg (i2p::I2NPMessage * tunnelMsg); virtual void SendTunnelDataMsg (const uint8_t * gwHash, uint32_t gwTunnel, i2p::I2NPMessage * msg); + virtual size_t GetNumTransmittedBytes () const { return m_NumTransmittedBytes; }; uint32_t GetTunnelID () const { return m_TunnelID; }; @@ -37,6 +38,7 @@ namespace tunnel i2p::data::IdentHash m_NextIdent; uint8_t m_LayerKey[32]; uint8_t m_IVKey[32]; + size_t m_NumTransmittedBytes; CryptoPP::ECB_Mode::Encryption m_ECBEncryption; CryptoPP::CBC_Mode::Encryption m_CBCEncryption; @@ -53,6 +55,7 @@ namespace tunnel layerKey, ivKey), m_Gateway(this) {}; void SendTunnelDataMsg (const uint8_t * gwHash, uint32_t gwTunnel, i2p::I2NPMessage * msg); + size_t GetNumTransmittedBytes () const { return m_Gateway.GetNumSentBytes (); }; private: @@ -69,6 +72,7 @@ namespace tunnel TransitTunnel (receiveTunnelID, nextIdent, nextTunnelID, layerKey, ivKey) {}; void HandleTunnelDataMsg (i2p::I2NPMessage * tunnelMsg); + size_t GetNumTransmittedBytes () const { return m_Endpoint.GetNumReceivedBytes (); } private: