|
|
|
@ -183,6 +183,7 @@ namespace data
@@ -183,6 +183,7 @@ namespace data
|
|
|
|
|
s.seekg (1, std::ios_base::cur); r++; // =
|
|
|
|
|
r += ReadString (value, 255, s); |
|
|
|
|
s.seekg (1, std::ios_base::cur); r++; // ;
|
|
|
|
|
if (!s) return; |
|
|
|
|
if (!strcmp (key, "host")) |
|
|
|
|
{ |
|
|
|
|
boost::system::error_code ecode; |
|
|
|
@ -224,6 +225,11 @@ namespace data
@@ -224,6 +225,11 @@ namespace data
|
|
|
|
|
size_t l = strlen(key); |
|
|
|
|
unsigned char index = key[l-1] - '0'; // TODO:
|
|
|
|
|
key[l-1] = 0; |
|
|
|
|
if (index > 9) |
|
|
|
|
{ |
|
|
|
|
LogPrint (eLogError, "RouterInfo: Unexpected introducer's index ", index, " skipped"); |
|
|
|
|
if (s) continue; else return; |
|
|
|
|
} |
|
|
|
|
if (index >= address.introducers.size ()) |
|
|
|
|
address.introducers.resize (index + 1); |
|
|
|
|
Introducer& introducer = address.introducers.at (index); |
|
|
|
@ -263,6 +269,7 @@ namespace data
@@ -263,6 +269,7 @@ namespace data
|
|
|
|
|
s.seekg (1, std::ios_base::cur); r++; // =
|
|
|
|
|
r += ReadString (value, 255, s); |
|
|
|
|
s.seekg (1, std::ios_base::cur); r++; // ;
|
|
|
|
|
if (!s) return; |
|
|
|
|
m_Properties[key] = value; |
|
|
|
|
|
|
|
|
|
// extract caps
|
|
|
|
@ -271,7 +278,7 @@ namespace data
@@ -271,7 +278,7 @@ namespace data
|
|
|
|
|
// check netId
|
|
|
|
|
else if (!strcmp (key, ROUTER_INFO_PROPERTY_NETID) && atoi (value) != I2PD_NET_ID) |
|
|
|
|
{ |
|
|
|
|
LogPrint (eLogError, "Unexpected ", ROUTER_INFO_PROPERTY_NETID, "=", value); |
|
|
|
|
LogPrint (eLogError, "RouterInfo: Unexpected ", ROUTER_INFO_PROPERTY_NETID, "=", value); |
|
|
|
|
m_IsUnreachable = true; |
|
|
|
|
} |
|
|
|
|
// family
|
|
|
|
@ -544,6 +551,7 @@ namespace data
@@ -544,6 +551,7 @@ namespace data
|
|
|
|
|
if (l < len) |
|
|
|
|
{ |
|
|
|
|
s.read (str, l); |
|
|
|
|
if (!s) l = 0; // failed, return empty string
|
|
|
|
|
str[l] = 0; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|