Track a peer's last closed ledger.

This commit is contained in:
JoelKatz
2012-05-02 02:57:41 -07:00
parent 28952f9f98
commit ede296475b
2 changed files with 19 additions and 10 deletions

View File

@@ -523,6 +523,12 @@ void Peer::recvHello(newcoin::TMHello& packet)
// XXX Set timer: connection is in grace period to be useful. // XXX Set timer: connection is in grace period to be useful.
// XXX Set timer: connection idle (idle may vary depending on connection type.) // XXX Set timer: connection idle (idle may vary depending on connection type.)
if ((packet.has_closedledger()) && (packet.closedledger().size() == (256 / 8)))
{
memcpy(mClosedLedgerHash.begin(), packet.closedledger().data(), (256 / 8));
mClosedLedgerTime = boost::posix_time::second_clock::universal_time();
}
bDetach = false; bDetach = false;
} }
@@ -777,9 +783,8 @@ void Peer::sendHello()
assert(closedLedger && closedLedger->isClosed()); assert(closedLedger && closedLedger->isClosed());
if (closedLedger->isClosed()) if (closedLedger->isClosed())
{ {
Serializer s(128); uint256 hash = closedLedger->getHash();
closedLedger->addRaw(s); h->set_closedledger(hash.begin(), hash.GetSerializeSize());
h->set_closedledger(s.getDataPtr(), s.getLength());
} }
PackedMessage::pointer packet = boost::make_shared<PackedMessage> PackedMessage::pointer packet = boost::make_shared<PackedMessage>

View File

@@ -36,6 +36,10 @@ private:
ipPort mIpPort; ipPort mIpPort;
uint256 mCookieHash; uint256 mCookieHash;
// network state information
uint256 mClosedLedgerHash;
boost::posix_time::ptime mClosedLedgerTime;
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> mSocketSsl; boost::asio::ssl::stream<boost::asio::ip::tcp::socket> mSocketSsl;
boost::asio::deadline_timer mVerifyTimer; boost::asio::deadline_timer mVerifyTimer;