Browse Source

read RI from buffer

pull/113/head
orignal 10 years ago
parent
commit
a449dc1377
  1. 18
      RouterInfo.cpp

18
RouterInfo.cpp

@ -95,7 +95,16 @@ namespace data @@ -95,7 +95,16 @@ namespace data
void RouterInfo::ReadFromBuffer (bool verifySignature)
{
std::stringstream str (std::string ((char *)m_Buffer, m_BufferLen));
size_t identityLen = DEFAULT_IDENTITY_SIZE;
memcpy (&m_RouterIdentity, m_Buffer, DEFAULT_IDENTITY_SIZE);
if (m_RouterIdentity.certificate.type != CERTIFICATE_TYPE_NULL)
{
LogPrint (eLogError, "Certificate type ", m_RouterIdentity.certificate.type, " is not supported");
SetUnreachable (true);
return;
}
std::stringstream str (std::string ((char *)m_Buffer + identityLen, m_BufferLen - identityLen));
ReadFromStream (str);
if (verifySignature)
{
@ -113,13 +122,6 @@ namespace data @@ -113,13 +122,6 @@ namespace data
void RouterInfo::ReadFromStream (std::istream& s)
{
s.read ((char *)&m_RouterIdentity, DEFAULT_IDENTITY_SIZE);
if (m_RouterIdentity.certificate.type != CERTIFICATE_TYPE_NULL)
{
LogPrint (eLogError, "Certificate type ", m_RouterIdentity.certificate.type, " is not supported");
SetUnreachable (true);
return;
}
s.read ((char *)&m_Timestamp, sizeof (m_Timestamp));
m_Timestamp = be64toh (m_Timestamp);
// read addresses

Loading…
Cancel
Save