diff --git a/HTTPServer.cpp b/HTTPServer.cpp
index 6c2c6112..08b67e22 100644
--- a/HTTPServer.cpp
+++ b/HTTPServer.cpp
@@ -417,6 +417,7 @@ namespace util
default: s << "Unknown";
}
s << "
\r\n";
+ s << "Family: " << i2p::context.GetFamilyString() << "
\r\n";
s << "Tunnel creation success rate: " << i2p::tunnel::tunnels.GetTunnelCreationSuccessRate () << "%
\r\n";
s << "Received: ";
s << std::fixed << std::setprecision(2);
diff --git a/RouterContext.cpp b/RouterContext.cpp
index f35d8426..4cdf13fe 100644
--- a/RouterContext.cpp
+++ b/RouterContext.cpp
@@ -149,11 +149,23 @@ namespace i2p
UpdateRouterInfo ();
}
+ std::string RouterContext::GetFamilyString () const
+ {
+ return m_FamilyString;
+ }
+
void RouterContext::SetFamily (const std::string& family)
{
+
+ m_FamilyString = family;
+ if (m_FamilyString.length() == 0)
+ m_FamilyString = "<undefined>";
+
std::string signature;
if (family.length () > 0)
+ {
signature = i2p::data::CreateFamilySignature (family, GetIdentHash ());
+ }
if (signature.length () > 0)
{
m_RouterInfo.SetProperty (i2p::data::ROUTER_INFO_PROPERTY_FAMILY, family);
diff --git a/RouterContext.h b/RouterContext.h
index 9766c66e..1b0f7ed2 100644
--- a/RouterContext.h
+++ b/RouterContext.h
@@ -59,6 +59,7 @@ namespace i2p
bool IsFloodfill () const { return m_IsFloodfill; };
void SetFloodfill (bool floodfill);
void SetFamily (const std::string& family);
+ std::string GetFamilyString () const;
void SetBandwidth (int limit); /* in kilobytes */
void SetBandwidth (char L); /* by letter */
bool AcceptsTunnels () const { return m_AcceptsTunnels; };
@@ -100,6 +101,7 @@ namespace i2p
i2p::data::PrivateKeys m_Keys;
uint64_t m_LastUpdateTime;
bool m_AcceptsTunnels, m_IsFloodfill;
+ std::string m_FamilyString;
uint64_t m_StartupTime; // in seconds since epoch
uint32_t m_BandwidthLimit; // allowed bandwidth
RouterStatus m_Status;