e.smali
.class public final Lcom/subgraph/orchid/circuits/hs/e;
.super Ljava/lang/Object;
.source "HSDescriptorDownloader.java"
# static fields
.field private static final logger:Ljava/util/logging/Logger;
# instance fields
.field private final bBL:Lcom/subgraph/orchid/circuits/g;
.field private final bEm:Lcom/subgraph/orchid/circuits/hs/i;
.field private final bEn:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List",
"<",
"Lcom/subgraph/orchid/circuits/hs/d;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 23
const-class v0, Lcom/subgraph/orchid/circuits/hs/d;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
move-result-object v0
sput-object v0, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
return-void
.end method
.method public constructor <init>(Lcom/subgraph/orchid/circuits/hs/i;Lcom/subgraph/orchid/circuits/g;Ljava/util/List;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/subgraph/orchid/circuits/hs/i;",
"Lcom/subgraph/orchid/circuits/g;",
"Ljava/util/List",
"<",
"Lcom/subgraph/orchid/circuits/hs/d;",
">;)V"
}
.end annotation
.prologue
.line 29
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 30
iput-object p1, p0, Lcom/subgraph/orchid/circuits/hs/e;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
.line 31
iput-object p2, p0, Lcom/subgraph/orchid/circuits/hs/e;->bBL:Lcom/subgraph/orchid/circuits/g;
.line 32
iput-object p3, p0, Lcom/subgraph/orchid/circuits/hs/e;->bEn:Ljava/util/List;
.line 33
return-void
.end method
.method private a(Lcom/subgraph/orchid/circuits/hs/d;)Lcom/subgraph/orchid/circuits/hs/c;
.registers 9
.prologue
const/4 v0, 0x0
.line 48
sget-object v1, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Downloading descriptor from "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1017
iget-object v3, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 48
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 2017
:try_start_17
iget-object v1, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 52
invoke-direct {p0, v1}, Lcom/subgraph/orchid/circuits/hs/e;->i(Lcom/subgraph/orchid/v;)Lcom/subgraph/orchid/aa;
:try_end_1c
.catch Ljava/lang/InterruptedException; {:try_start_17 .. :try_end_1c} :catch_9f
.catch Ljava/util/concurrent/TimeoutException; {:try_start_17 .. :try_end_1c} :catch_b5
.catch Ljava/io/IOException; {:try_start_17 .. :try_end_1c} :catch_dd
.catch Lcom/subgraph/orchid/OpenFailedException; {:try_start_17 .. :try_end_1c} :catch_10d
.catch Lcom/subgraph/orchid/directory/downloader/DirectoryRequestFailedException; {:try_start_17 .. :try_end_1c} :catch_141
.catchall {:try_start_17 .. :try_end_1c} :catchall_175
move-result-object v1
.line 53
:try_start_1d
new-instance v2, Lcom/subgraph/orchid/directory/downloader/l;
invoke-direct {v2, v1}, Lcom/subgraph/orchid/directory/downloader/l;-><init>(Lcom/subgraph/orchid/aa;)V
.line 54
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "/tor/rendezvous2/"
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 2021
iget-object v4, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEe:Lcom/subgraph/orchid/d/c;
.line 54
invoke-virtual {v4}, Lcom/subgraph/orchid/d/c;->Mp()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Lcom/subgraph/orchid/directory/downloader/l;->hh(Ljava/lang/String;)V
.line 55
invoke-virtual {v2}, Lcom/subgraph/orchid/directory/downloader/l;->NK()V
.line 2097
iget v3, v2, Lcom/subgraph/orchid/directory/downloader/l;->responseCode:I
.line 56
const/16 v4, 0xc8
if-ne v3, v4, :cond_6c
.line 2105
iget-object v2, v2, Lcom/subgraph/orchid/directory/downloader/l;->bJG:Ljava/nio/ByteBuffer;
.line 3105
new-instance v3, Lcom/subgraph/orchid/directory/h;
invoke-direct {v3, v2}, Lcom/subgraph/orchid/directory/h;-><init>(Ljava/nio/ByteBuffer;)V
.line 3106
new-instance v2, Lcom/subgraph/orchid/circuits/hs/g;
iget-object v4, p0, Lcom/subgraph/orchid/circuits/hs/e;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v4}, Lcom/subgraph/orchid/circuits/hs/i;->Lx()Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;
move-result-object v4
invoke-direct {v2, v3, v4}, Lcom/subgraph/orchid/circuits/hs/g;-><init>(Lcom/subgraph/orchid/directory/a/b;Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;)V
.line 3107
new-instance v3, Lcom/subgraph/orchid/circuits/hs/f;
invoke-direct {v3, p1}, Lcom/subgraph/orchid/circuits/hs/f;-><init>(Lcom/subgraph/orchid/circuits/hs/d;)V
.line 3108
invoke-virtual {v2, v3}, Lcom/subgraph/orchid/circuits/hs/g;->a(Lcom/subgraph/orchid/directory/a/h;)Z
.line 3121
iget-object v0, v3, Lcom/subgraph/orchid/circuits/hs/f;->bEp:Lcom/subgraph/orchid/circuits/hs/c;
:try_end_5f
.catch Ljava/lang/InterruptedException; {:try_start_1d .. :try_end_5f} :catch_1a1
.catch Ljava/util/concurrent/TimeoutException; {:try_start_1d .. :try_end_5f} :catch_19b
.catch Ljava/io/IOException; {:try_start_1d .. :try_end_5f} :catch_195
.catch Lcom/subgraph/orchid/OpenFailedException; {:try_start_1d .. :try_end_5f} :catch_18f
.catch Lcom/subgraph/orchid/directory/downloader/DirectoryRequestFailedException; {:try_start_1d .. :try_end_5f} :catch_18a
.catchall {:try_start_1d .. :try_end_5f} :catchall_185
.line 78
if-eqz v1, :cond_6b
.line 79
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
.line 84
:cond_6b
:goto_6b
return-object v0
.line 59
:cond_6c
:try_start_6c
sget-object v3, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "HS descriptor download for "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v5, p0, Lcom/subgraph/orchid/circuits/hs/e;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v5}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " failed with status "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
.line 4097
iget v2, v2, Lcom/subgraph/orchid/directory/downloader/l;->responseCode:I
.line 59
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v3, v2}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
:try_end_92
.catch Ljava/lang/InterruptedException; {:try_start_6c .. :try_end_92} :catch_1a1
.catch Ljava/util/concurrent/TimeoutException; {:try_start_6c .. :try_end_92} :catch_19b
.catch Ljava/io/IOException; {:try_start_6c .. :try_end_92} :catch_195
.catch Lcom/subgraph/orchid/OpenFailedException; {:try_start_6c .. :try_end_92} :catch_18f
.catch Lcom/subgraph/orchid/directory/downloader/DirectoryRequestFailedException; {:try_start_6c .. :try_end_92} :catch_18a
.catchall {:try_start_6c .. :try_end_92} :catchall_185
.line 78
if-eqz v1, :cond_6b
.line 79
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto :goto_6b
.line 62
:catch_9f
move-exception v1
move-object v1, v0
:goto_a1
:try_start_a1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Thread;->interrupt()V
:try_end_a8
.catchall {:try_start_a1 .. :try_end_a8} :catchall_185
.line 78
if-eqz v1, :cond_6b
.line 79
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v1}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto :goto_6b
.line 64
:catch_b5
move-exception v1
move-object v2, v0
.line 65
:goto_b7
:try_start_b7
sget-object v3, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Timeout downloading HS descriptor from "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 5017
iget-object v5, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 65
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 66
invoke-virtual {v1}, Ljava/util/concurrent/TimeoutException;->printStackTrace()V
:try_end_d0
.catchall {:try_start_b7 .. :try_end_d0} :catchall_188
.line 78
if-eqz v2, :cond_6b
.line 79
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto :goto_6b
.line 68
:catch_dd
move-exception v1
move-object v2, v0
.line 69
:goto_df
:try_start_df
sget-object v3, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "IOException downloading HS descriptor from "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 6017
iget-object v5, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 69
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " : "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
:try_end_ff
.catchall {:try_start_df .. :try_end_ff} :catchall_188
.line 78
if-eqz v2, :cond_6b
.line 79
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto/16 :goto_6b
.line 71
:catch_10d
move-exception v1
move-object v2, v0
.line 72
:goto_10f
:try_start_10f
sget-object v3, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Failed to open stream to HS directory "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 7017
iget-object v5, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 72
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " : "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v1}, Lcom/subgraph/orchid/OpenFailedException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
:try_end_133
.catchall {:try_start_10f .. :try_end_133} :catchall_188
.line 78
if-eqz v2, :cond_6b
.line 79
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto/16 :goto_6b
.line 74
:catch_141
move-exception v1
move-object v2, v0
.line 75
:goto_143
:try_start_143
sget-object v3, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Directory request to HS directory "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 8017
iget-object v5, p1, Lcom/subgraph/orchid/circuits/hs/d;->bEl:Lcom/subgraph/orchid/v;
.line 75
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " failed "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v1}, Lcom/subgraph/orchid/directory/downloader/DirectoryRequestFailedException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
:try_end_167
.catchall {:try_start_143 .. :try_end_167} :catchall_188
.line 78
if-eqz v2, :cond_6b
.line 79
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
goto/16 :goto_6b
.line 78
:catchall_175
move-exception v1
move-object v2, v0
move-object v0, v1
:goto_178
if-eqz v2, :cond_184
.line 79
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->close()V
.line 80
invoke-interface {v2}, Lcom/subgraph/orchid/aa;->JV()Lcom/subgraph/orchid/c;
move-result-object v1
invoke-interface {v1}, Lcom/subgraph/orchid/c;->Iu()V
:cond_184
throw v0
.line 78
:catchall_185
move-exception v0
move-object v2, v1
goto :goto_178
:catchall_188
move-exception v0
goto :goto_178
.line 74
:catch_18a
move-exception v2
move-object v6, v2
move-object v2, v1
move-object v1, v6
goto :goto_143
.line 71
:catch_18f
move-exception v2
move-object v6, v2
move-object v2, v1
move-object v1, v6
goto/16 :goto_10f
.line 68
:catch_195
move-exception v2
move-object v6, v2
move-object v2, v1
move-object v1, v6
goto/16 :goto_df
.line 64
:catch_19b
move-exception v2
move-object v6, v2
move-object v2, v1
move-object v1, v6
goto/16 :goto_b7
.line 62
:catch_1a1
move-exception v2
goto/16 :goto_a1
.end method
.method static synthetic access$000()Ljava/util/logging/Logger;
.registers 1
.prologue
.line 22
sget-object v0, Lcom/subgraph/orchid/circuits/hs/e;->logger:Ljava/util/logging/Logger;
return-object v0
.end method
.method private i(Lcom/subgraph/orchid/v;)Lcom/subgraph/orchid/aa;
.registers 6
.prologue
.line 90
iget-object v0, p0, Lcom/subgraph/orchid/circuits/hs/e;->bBL:Lcom/subgraph/orchid/circuits/g;
invoke-virtual {v0}, Lcom/subgraph/orchid/circuits/g;->KN()Lcom/subgraph/orchid/r;
move-result-object v1
.line 93
:try_start_6
invoke-interface {v1, p1}, Lcom/subgraph/orchid/r;->c(Lcom/subgraph/orchid/v;)Lcom/subgraph/orchid/k;
move-result-object v0
.line 94
invoke-interface {v0}, Lcom/subgraph/orchid/k;->Ji()Lcom/subgraph/orchid/aa;
:try_end_d
.catch Lcom/subgraph/orchid/StreamConnectFailedException; {:try_start_6 .. :try_end_d} :catch_f
.catch Lcom/subgraph/orchid/TorException; {:try_start_6 .. :try_end_d} :catch_1b
move-result-object v0
return-object v0
.line 96
:catch_f
move-exception v0
invoke-interface {v1}, Lcom/subgraph/orchid/r;->Iu()V
.line 97
new-instance v0, Lcom/subgraph/orchid/OpenFailedException;
const-string v1, "Failed to open directory stream"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/OpenFailedException;-><init>(Ljava/lang/String;)V
throw v0
.line 98
:catch_1b
move-exception v0
.line 99
invoke-interface {v1}, Lcom/subgraph/orchid/r;->Iu()V
.line 100
new-instance v1, Lcom/subgraph/orchid/OpenFailedException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Failed to extend circuit to HS directory: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Lcom/subgraph/orchid/TorException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lcom/subgraph/orchid/OpenFailedException;-><init>(Ljava/lang/String;)V
throw v1
.end method
# virtual methods
.method public final Lq()Lcom/subgraph/orchid/circuits/hs/c;
.registers 3
.prologue
.line 37
iget-object v0, p0, Lcom/subgraph/orchid/circuits/hs/e;->bEn:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_6
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_19
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/subgraph/orchid/circuits/hs/d;
.line 38
invoke-direct {p0, v0}, Lcom/subgraph/orchid/circuits/hs/e;->a(Lcom/subgraph/orchid/circuits/hs/d;)Lcom/subgraph/orchid/circuits/hs/c;
move-result-object v0
.line 39
if-eqz v0, :cond_6
.line 44
:goto_18
return-object v0
:cond_19
const/4 v0, 0x0
goto :goto_18
.end method