diff --git a/HTTPServer.cpp b/HTTPServer.cpp
index 6c2c6112..1c268613 100644
--- a/HTTPServer.cpp
+++ b/HTTPServer.cpp
@@ -405,6 +405,7 @@ namespace util
void HTTPConnection::FillContent (std::stringstream& s)
{
+ s << "Family: " << i2p::context.GetFamilyString() << "
\r\n";
s << "Uptime: " << boost::posix_time::to_simple_string (
boost::posix_time::time_duration (boost::posix_time::seconds (
i2p::context.GetUptime ()))) << "
\r\n";
diff --git a/RouterContext.cpp b/RouterContext.cpp
index f35d8426..4cc45b80 100644
--- a/RouterContext.cpp
+++ b/RouterContext.cpp
@@ -149,18 +149,29 @@ namespace i2p
UpdateRouterInfo ();
}
+ std::string RouterContext::GetFamilyString () const
+ {
+ return m_FamilyString;
+ }
+
void RouterContext::SetFamily (const std::string& family)
{
+
std::string signature;
if (family.length () > 0)
+ {
+ m_FamilyString = family;
signature = i2p::data::CreateFamilySignature (family, GetIdentHash ());
+ }
if (signature.length () > 0)
{
+ m_FamilyString = "";
m_RouterInfo.SetProperty (i2p::data::ROUTER_INFO_PROPERTY_FAMILY, family);
m_RouterInfo.SetProperty (i2p::data::ROUTER_INFO_PROPERTY_FAMILY_SIG, signature);
}
else
{
+ m_FamilyString = "??>";
m_RouterInfo.DeleteProperty (i2p::data::ROUTER_INFO_PROPERTY_FAMILY);
m_RouterInfo.DeleteProperty (i2p::data::ROUTER_INFO_PROPERTY_FAMILY_SIG);
}
diff --git a/RouterContext.h b/RouterContext.h
index 9766c66e..f2ece677 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 { return m_FamilyString; };
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;