From e275f4eb9d049b711f99bab59fe9dff0cb8b5935 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 21 Feb 2014 23:31:04 -0800 Subject: [PATCH] Handle a removed peer when counting ledger use --- src/ripple_app/misc/NetworkOPs.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ripple_app/misc/NetworkOPs.cpp b/src/ripple_app/misc/NetworkOPs.cpp index 0b5561a4f..f96bb3e80 100644 --- a/src/ripple_app/misc/NetworkOPs.cpp +++ b/src/ripple_app/misc/NetworkOPs.cpp @@ -1263,12 +1263,19 @@ bool NetworkOPsImp::checkLastClosedLedger (const Peers::PeerSequence& peerList, if (peerLedger.isNonZero ()) { - ValidationCount& vc = ledgers[peerLedger]; + try + { + ValidationCount& vc = ledgers[peerLedger]; - if ((vc.nodesUsing == 0) || (peer->getNodePublic ().getNodeID () > vc.highNodeUsing)) - vc.highNodeUsing = peer->getNodePublic ().getNodeID (); + if ((vc.nodesUsing == 0) || (peer->getNodePublic ().getNodeID () > vc.highNodeUsing)) + vc.highNodeUsing = peer->getNodePublic ().getNodeID (); - ++vc.nodesUsing; + ++vc.nodesUsing; + } + catch (...) + { + // Peer is likely not connected anymore + } } }