From 3834e1f557269aa4c5cc9cc2e3beb000a30f2641 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Mon, 1 Apr 2019 17:03:09 -0300 Subject: [PATCH] PeerGroup.addInactive(): Ignore metadata fields when checking for duplicates --- core/src/main/java/org/bitcoinj/core/PeerGroup.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/bitcoinj/core/PeerGroup.java b/core/src/main/java/org/bitcoinj/core/PeerGroup.java index 0b98e80efcf..eba10be248d 100644 --- a/core/src/main/java/org/bitcoinj/core/PeerGroup.java +++ b/core/src/main/java/org/bitcoinj/core/PeerGroup.java @@ -1047,7 +1047,14 @@ private boolean addInactive(PeerAddress peerAddress) { lock.lock(); try { // Deduplicate - if (backoffMap.containsKey(peerAddress)) { + boolean backoffMapContainsPeerAddress = false; + for (PeerAddress a : backoffMap.keySet()) { + if (a.equalsIgnoringMetadata(peerAddress)) { + backoffMapContainsPeerAddress = true; + break; + } + } + if (backoffMapContainsPeerAddress) { return false; } backoffMap.put(peerAddress, new ExponentialBackoff(peerBackoffParams));