Browse Source

verification of and placeholder for capabilities handshake

cl-refactor
subtly 10 years ago
parent
commit
ecb06feb85
  1. 31
      libp2p/Host.cpp

31
libp2p/Host.cpp

@ -542,24 +542,27 @@ void Host::doHandshake(Handshake* _h, boost::system::error_code _ech)
return;
}
/// capabilities handshake (encrypted magic sequence is placeholder)
bytes decryptedMagic;
decryptSymNoAuth(k->encryptK, h256(), &k->recvdMagicCipherAndMac, decryptedMagic);
shared_ptr<Peer> p;
p = m_peers[_h->remote];
if (!p)
if (decryptedMagic[0] == 0x22 && decryptedMagic[1] == 0x40 && decryptedMagic[2] == 0x08 && decryptedMagic[3] == 0x91)
{
p.reset(new Peer());
p->id = _h->remote;
shared_ptr<Peer> p;
p = m_peers[_h->remote];
if (!p)
{
p.reset(new Peer());
p->id = _h->remote;
}
p->endpoint.tcp.address(_h->socket->remote_endpoint().address());
p->m_lastDisconnect = NoDisconnect;
p->m_lastConnected = std::chrono::system_clock::now();
p->m_failedAttempts = 0;
auto ps = std::make_shared<Session>(this, move(*_h->socket), p);
ps->start();
}
p->endpoint.tcp.address(_h->socket->remote_endpoint().address());
p->m_lastDisconnect = NoDisconnect;
p->m_lastConnected = std::chrono::system_clock::now();
p->m_failedAttempts = 0;
auto ps = std::make_shared<Session>(this, move(*_h->socket), p);
ps->start();
delete k;
});

Loading…
Cancel
Save