diff --git a/HTTPServer.cpp b/HTTPServer.cpp index 833dca51..a27992ba 100644 --- a/HTTPServer.cpp +++ b/HTTPServer.cpp @@ -144,6 +144,7 @@ namespace util } s << "

Transports

"; + s << "NTCP
"; for (auto it: i2p::transports.GetNTCPSessions ()) { // RouterInfo of incoming connection doesn't have address @@ -157,6 +158,16 @@ namespace util s << "
"; } } + auto ssuServer = i2p::transports.GetSSUServer (); + if (ssuServer) + { + s << "
SSU
"; + for (auto it: ssuServer->GetSessions ()) + { + auto endpoint = it.second->GetRemoteEndpoint (); + s << endpoint.address ().to_string () << ":" << endpoint.port () << "
"; + } + } s << "

Flibusta

"; } diff --git a/SSU.h b/SSU.h index f5efc862..ff08f1f1 100644 --- a/SSU.h +++ b/SSU.h @@ -74,7 +74,7 @@ namespace ssu void Close (); boost::asio::ip::udp::endpoint& GetRemoteEndpoint () { return m_RemoteEndpoint; }; void SendI2NPMessage (I2NPMessage * msg); - + private: void CreateAESandMacKey (uint8_t * pubKey, uint8_t * aesKey, uint8_t * macKey); @@ -141,6 +141,10 @@ namespace ssu boost::asio::ip::udp::endpoint m_SenderEndpoint; uint8_t m_ReceiveBuffer[2*SSU_MTU]; std::map m_Sessions; + + public: + // for HTTP only + const decltype(m_Sessions)& GetSessions () const { return m_Sessions; }; }; } } diff --git a/Transports.h b/Transports.h index 12bd8f21..aedd51b2 100644 --- a/Transports.h +++ b/Transports.h @@ -58,6 +58,7 @@ namespace i2p // for HTTP only const decltype(m_NTCPSessions)& GetNTCPSessions () const { return m_NTCPSessions; }; + const i2p::ssu::SSUServer * GetSSUServer () const { return m_SSUServer; }; }; extern Transports transports;