mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-02-07 06:44:16 +00:00
Deduplicate peers retrieved from peer discovery. Resolves issue 260.
This commit is contained in:
parent
75c007fab3
commit
7d7e76a3b0
@ -22,6 +22,7 @@ import com.google.bitcoin.discovery.PeerDiscovery;
|
|||||||
import com.google.bitcoin.discovery.PeerDiscoveryException;
|
import com.google.bitcoin.discovery.PeerDiscoveryException;
|
||||||
import com.google.bitcoin.utils.EventListenerInvoker;
|
import com.google.bitcoin.utils.EventListenerInvoker;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import com.google.common.util.concurrent.*;
|
import com.google.common.util.concurrent.*;
|
||||||
import org.jboss.netty.bootstrap.ClientBootstrap;
|
import org.jboss.netty.bootstrap.ClientBootstrap;
|
||||||
import org.jboss.netty.channel.*;
|
import org.jboss.netty.channel.*;
|
||||||
@ -413,15 +414,16 @@ public class PeerGroup extends AbstractIdleService {
|
|||||||
|
|
||||||
protected void discoverPeers() throws PeerDiscoveryException {
|
protected void discoverPeers() throws PeerDiscoveryException {
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
|
Set<PeerAddress> addressSet = Sets.newHashSet();
|
||||||
for (PeerDiscovery peerDiscovery : peerDiscoverers) {
|
for (PeerDiscovery peerDiscovery : peerDiscoverers) {
|
||||||
InetSocketAddress[] addresses;
|
InetSocketAddress[] addresses;
|
||||||
addresses = peerDiscovery.getPeers(10, TimeUnit.SECONDS);
|
addresses = peerDiscovery.getPeers(10, TimeUnit.SECONDS);
|
||||||
synchronized (inactives) {
|
for (int i = 0; i < addresses.length; i++)
|
||||||
for (int i = 0; i < addresses.length; i++) {
|
addressSet.add(new PeerAddress(addresses[i]));
|
||||||
inactives.add(new PeerAddress(addresses[i]));
|
if (addressSet.size() > 0) break;
|
||||||
}
|
}
|
||||||
if (inactives.size() > 0) break;
|
synchronized (inactives) {
|
||||||
}
|
inactives.addAll(addressSet);
|
||||||
}
|
}
|
||||||
log.info("Peer discovery took {}msec", System.currentTimeMillis() - start);
|
log.info("Peer discovery took {}msec", System.currentTimeMillis() - start);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user