|
|
@ -187,13 +187,14 @@ namespace data |
|
|
|
|
|
|
|
|
|
|
|
void RouterInfo::ReadFromStream (std::istream& s) |
|
|
|
void RouterInfo::ReadFromStream (std::istream& s) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (!s) return; |
|
|
|
m_Caps = 0; |
|
|
|
m_Caps = 0; |
|
|
|
s.read ((char *)&m_Timestamp, sizeof (m_Timestamp)); |
|
|
|
s.read ((char *)&m_Timestamp, sizeof (m_Timestamp)); |
|
|
|
m_Timestamp = be64toh (m_Timestamp); |
|
|
|
m_Timestamp = be64toh (m_Timestamp); |
|
|
|
// read addresses
|
|
|
|
// read addresses
|
|
|
|
auto addresses = boost::make_shared<Addresses>(); |
|
|
|
auto addresses = boost::make_shared<Addresses>(); |
|
|
|
uint8_t numAddresses; |
|
|
|
uint8_t numAddresses; |
|
|
|
s.read ((char *)&numAddresses, sizeof (numAddresses)); if (!s) return; |
|
|
|
s.read ((char *)&numAddresses, sizeof (numAddresses)); |
|
|
|
addresses->reserve (numAddresses); |
|
|
|
addresses->reserve (numAddresses); |
|
|
|
for (int i = 0; i < numAddresses; i++) |
|
|
|
for (int i = 0; i < numAddresses; i++) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -282,7 +283,11 @@ namespace data |
|
|
|
if (s) continue; else return; |
|
|
|
if (s) continue; else return; |
|
|
|
} |
|
|
|
} |
|
|
|
if (index >= address->ssu->introducers.size ()) |
|
|
|
if (index >= address->ssu->introducers.size ()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (address->ssu->introducers.empty ()) // first time
|
|
|
|
|
|
|
|
address->ssu->introducers.reserve (3); |
|
|
|
address->ssu->introducers.resize (index + 1); |
|
|
|
address->ssu->introducers.resize (index + 1); |
|
|
|
|
|
|
|
} |
|
|
|
Introducer& introducer = address->ssu->introducers.at (index); |
|
|
|
Introducer& introducer = address->ssu->introducers.at (index); |
|
|
|
if (!strcmp (key, "ihost")) |
|
|
|
if (!strcmp (key, "ihost")) |
|
|
|
{ |
|
|
|
{ |
|
|
|