mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-21 11:29:56 +00:00
Webconsole: fix output on i2p tunnels, add b32 on dest page
Fixes: * adding of "Client Destinations" section header when there is no such tunnels * Print error when destination is not found instead of empty page Adds: * Print b32 on destination page Signed-off-by: r4sas <r4sas@i2pmail.org>
This commit is contained in:
parent
09f233dbfb
commit
4e426727e9
@ -422,8 +422,12 @@ namespace http {
|
|||||||
|
|
||||||
static void ShowLeaseSetDestination (std::stringstream& s, std::shared_ptr<const i2p::client::LeaseSetDestination> dest, uint32_t token)
|
static void ShowLeaseSetDestination (std::stringstream& s, std::shared_ptr<const i2p::client::LeaseSetDestination> dest, uint32_t token)
|
||||||
{
|
{
|
||||||
|
s << "<b>Base32:</b><br>\r\n<textarea readonly cols=\"80\" rows=\"1\">";
|
||||||
|
s << dest->GetIdentHash ().ToBase32 () << "</textarea><br>\r\n<br>\r\n";
|
||||||
|
|
||||||
s << "<b>Base64:</b><br>\r\n<textarea readonly cols=\"80\" rows=\"8\">";
|
s << "<b>Base64:</b><br>\r\n<textarea readonly cols=\"80\" rows=\"8\">";
|
||||||
s << dest->GetIdentity ()->ToBase64 () << "</textarea><br>\r\n<br>\r\n";
|
s << dest->GetIdentity ()->ToBase64 () << "</textarea><br>\r\n<br>\r\n";
|
||||||
|
|
||||||
if (dest->IsEncryptedLeaseSet ())
|
if (dest->IsEncryptedLeaseSet ())
|
||||||
{
|
{
|
||||||
i2p::data::BlindedPublicKey blinded (dest->GetIdentity (), dest->IsPerClientAuth ());
|
i2p::data::BlindedPublicKey blinded (dest->GetIdentity (), dest->IsPerClientAuth ());
|
||||||
@ -605,6 +609,8 @@ namespace http {
|
|||||||
}
|
}
|
||||||
s << "</tbody>\r\n</table>";
|
s << "</tbody>\r\n</table>";
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
ShowError(s, tr("Such destination is not found"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShowI2CPLocalDestination (std::stringstream& s, const std::string& id)
|
void ShowI2CPLocalDestination (std::stringstream& s, const std::string& id)
|
||||||
@ -972,34 +978,42 @@ namespace http {
|
|||||||
void ShowI2PTunnels (std::stringstream& s)
|
void ShowI2PTunnels (std::stringstream& s)
|
||||||
{
|
{
|
||||||
std::string webroot; i2p::config::GetOption("http.webroot", webroot);
|
std::string webroot; i2p::config::GetOption("http.webroot", webroot);
|
||||||
s << "<b>" << tr("Client Tunnels") << ":</b><br>\r\n<div class=\"list\">\r\n";
|
|
||||||
for (auto& it: i2p::client::context.GetClientTunnels ())
|
auto& clientTunnels = i2p::client::context.GetClientTunnels ();
|
||||||
{
|
|
||||||
auto& ident = it.second->GetLocalDestination ()->GetIdentHash();
|
|
||||||
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
|
||||||
s << it.second->GetName () << "</a> ⇐ ";
|
|
||||||
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
|
||||||
s << "</div>\r\n"<< std::endl;
|
|
||||||
}
|
|
||||||
auto httpProxy = i2p::client::context.GetHttpProxy ();
|
auto httpProxy = i2p::client::context.GetHttpProxy ();
|
||||||
if (httpProxy)
|
|
||||||
{
|
|
||||||
auto& ident = httpProxy->GetLocalDestination ()->GetIdentHash();
|
|
||||||
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
|
||||||
s << "HTTP " << tr("Proxy") << "</a> ⇐ ";
|
|
||||||
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
|
||||||
s << "</div>\r\n"<< std::endl;
|
|
||||||
}
|
|
||||||
auto socksProxy = i2p::client::context.GetSocksProxy ();
|
auto socksProxy = i2p::client::context.GetSocksProxy ();
|
||||||
if (socksProxy)
|
if (!clientTunnels.empty () || httpProxy || socksProxy)
|
||||||
{
|
{
|
||||||
auto& ident = socksProxy->GetLocalDestination ()->GetIdentHash();
|
s << "<b>" << tr("Client Tunnels") << ":</b><br>\r\n<div class=\"list\">\r\n";
|
||||||
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
if (!clientTunnels.empty ())
|
||||||
s << "SOCKS " << tr("Proxy") << "</a> ⇐ ";
|
{
|
||||||
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
for (auto& it: clientTunnels)
|
||||||
s << "</div>\r\n"<< std::endl;
|
{
|
||||||
|
auto& ident = it.second->GetLocalDestination ()->GetIdentHash();
|
||||||
|
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
||||||
|
s << it.second->GetName () << "</a> ⇐ ";
|
||||||
|
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
||||||
|
s << "</div>\r\n"<< std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (httpProxy)
|
||||||
|
{
|
||||||
|
auto& ident = httpProxy->GetLocalDestination ()->GetIdentHash();
|
||||||
|
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
||||||
|
s << "HTTP " << tr("Proxy") << "</a> ⇐ ";
|
||||||
|
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
||||||
|
s << "</div>\r\n"<< std::endl;
|
||||||
|
}
|
||||||
|
if (socksProxy)
|
||||||
|
{
|
||||||
|
auto& ident = socksProxy->GetLocalDestination ()->GetIdentHash();
|
||||||
|
s << "<div class=\"listitem\"><a href=\"" << webroot << "?page=" << HTTP_PAGE_LOCAL_DESTINATION << "&b32=" << ident.ToBase32 () << "\">";
|
||||||
|
s << "SOCKS " << tr("Proxy") << "</a> ⇐ ";
|
||||||
|
s << i2p::client::context.GetAddressBook ().ToAddress(ident);
|
||||||
|
s << "</div>\r\n"<< std::endl;
|
||||||
|
}
|
||||||
|
s << "</div>\r\n";
|
||||||
}
|
}
|
||||||
s << "</div>\r\n";
|
|
||||||
|
|
||||||
auto& serverTunnels = i2p::client::context.GetServerTunnels ();
|
auto& serverTunnels = i2p::client::context.GetServerTunnels ();
|
||||||
if (!serverTunnels.empty ()) {
|
if (!serverTunnels.empty ()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user