diff --git a/src/ConnectionPool.cpp b/src/ConnectionPool.cpp index 1f46ec8b71..90bae25ebc 100644 --- a/src/ConnectionPool.cpp +++ b/src/ConnectionPool.cpp @@ -211,7 +211,7 @@ void ConnectionPool::relayMessage(Peer* fromPeer, PackedMessage::pointer msg) Peer::pointer peer = pair.second; if (!peer) std::cerr << "CP::RM null peer in list" << std::endl; - else if (!fromPeer || !(peer.get() == fromPeer)) + else if ((!fromPeer || !(peer.get() == fromPeer)) && peer->isConnected()) peer->sendPacket(msg); } } diff --git a/src/Peer.h b/src/Peer.h index 959876915e..d458b05886 100644 --- a/src/Peer.h +++ b/src/Peer.h @@ -124,6 +124,7 @@ public: void punishPeer(PeerPunish pp); Json::Value getJson(); + bool isConnected() const { return mConnected; } //static PackedMessage::pointer createFullLedger(Ledger::pointer ledger); static PackedMessage::pointer createLedgerProposal(Ledger::pointer ledger);