From 011fe40d971631106980c28df3ed8a51e7e875f6 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Tue, 12 Feb 2019 15:02:20 -0300 Subject: [PATCH] PeerGroup.addAddress(): don't increase max connections if address already exist --- .../main/java/org/bitcoinj/core/PeerGroup.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/PeerGroup.java b/core/src/main/java/org/bitcoinj/core/PeerGroup.java index b98bd2c0bcb..32840968922 100644 --- a/core/src/main/java/org/bitcoinj/core/PeerGroup.java +++ b/core/src/main/java/org/bitcoinj/core/PeerGroup.java @@ -979,22 +979,25 @@ public void addAddress(PeerAddress peerAddress) { int newMax; lock.lock(); try { - addInactive(peerAddress); - newMax = getMaxConnections() + 1; + if( addInactive(peerAddress) ) { + newMax = getMaxConnections() + 1; + setMaxConnections(newMax); + } } finally { lock.unlock(); } - setMaxConnections(newMax); } - private void addInactive(PeerAddress peerAddress) { + private boolean addInactive(PeerAddress peerAddress) { lock.lock(); try { // Deduplicate - if (backoffMap.containsKey(peerAddress)) - return; + if (backoffMap.containsKey(peerAddress)) { + return false; + } backoffMap.put(peerAddress, new ExponentialBackoff(peerBackoffParams)); inactives.offer(peerAddress); + return true; } finally { lock.unlock(); }