DnsDiscovery.smali
.class public Lorg/bitcoinj/net/discovery/DnsDiscovery;
.super Lorg/bitcoinj/net/discovery/MultiplexingDiscovery;
.source "DnsDiscovery.java"
# direct methods
.method public constructor <init>(Lorg/bitcoinj/core/NetworkParameters;)V
.registers 3
.prologue
.line 45
invoke-virtual {p1}, Lorg/bitcoinj/core/NetworkParameters;->getDnsSeeds()[Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0, p1}, Lorg/bitcoinj/net/discovery/DnsDiscovery;-><init>([Ljava/lang/String;Lorg/bitcoinj/core/NetworkParameters;)V
.line 46
return-void
.end method
.method public constructor <init>([Ljava/lang/String;Lorg/bitcoinj/core/NetworkParameters;)V
.registers 4
.prologue
.line 55
invoke-static {p2, p1}, Lorg/bitcoinj/net/discovery/DnsDiscovery;->buildDiscoveries(Lorg/bitcoinj/core/NetworkParameters;[Ljava/lang/String;)Ljava/util/List;
move-result-object v0
invoke-direct {p0, p2, v0}, Lorg/bitcoinj/net/discovery/MultiplexingDiscovery;-><init>(Lorg/bitcoinj/core/NetworkParameters;Ljava/util/List;)V
.line 56
return-void
.end method
.method private static buildDiscoveries(Lorg/bitcoinj/core/NetworkParameters;[Ljava/lang/String;)Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/bitcoinj/core/NetworkParameters;",
"[",
"Ljava/lang/String;",
")",
"Ljava/util/List",
"<",
"Lorg/bitcoinj/net/discovery/PeerDiscovery;",
">;"
}
.end annotation
.prologue
.line 59
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 60
if-eqz p1, :cond_18
.line 61
array-length v2, p1
const/4 v0, 0x0
:goto_9
if-ge v0, v2, :cond_18
aget-object v3, p1, v0
.line 62
new-instance v4, Lorg/bitcoinj/net/discovery/DnsDiscovery$DnsSeedDiscovery;
invoke-direct {v4, p0, v3}, Lorg/bitcoinj/net/discovery/DnsDiscovery$DnsSeedDiscovery;-><init>(Lorg/bitcoinj/core/NetworkParameters;Ljava/lang/String;)V
invoke-interface {v1, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 61
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 63
:cond_18
return-object v1
.end method
# virtual methods
.method protected createExecutor()Ljava/util/concurrent/ExecutorService;
.registers 4
.prologue
.line 70
const-string v0, "os.name"
invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v0
const-string v1, "linux"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_1e
.line 71
new-instance v0, Lorg/bitcoinj/utils/ContextPropagatingThreadFactory;
const-string v1, "DNS seed lookups"
invoke-direct {v0, v1}, Lorg/bitcoinj/utils/ContextPropagatingThreadFactory;-><init>(Ljava/lang/String;)V
invoke-static {v0}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
.line 73
:goto_1d
return-object v0
:cond_1e
iget-object v0, p0, Lorg/bitcoinj/net/discovery/DnsDiscovery;->seeds:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v0
new-instance v1, Lorg/bitcoinj/utils/DaemonThreadFactory;
const-string v2, "DNS seed lookups"
invoke-direct {v1, v2}, Lorg/bitcoinj/utils/DaemonThreadFactory;-><init>(Ljava/lang/String;)V
invoke-static {v0, v1}, Ljava/util/concurrent/Executors;->newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
goto :goto_1d
.end method