b.smali
.class public final Lcom/subgraph/orchid/circuits/a/b;
.super Lcom/subgraph/orchid/circuits/a/a;
.source "RelayCellImpl.java"
# interfaces
.implements Lcom/subgraph/orchid/t;
# instance fields
.field private final bDA:I
.field private final bDB:Lcom/subgraph/orchid/f;
.field private final bDC:Z
.field private final bzk:I
# direct methods
.method public constructor <init>(Lcom/subgraph/orchid/f;III)V
.registers 11
.prologue
.line 34
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
invoke-direct/range {v0 .. v5}, Lcom/subgraph/orchid/circuits/a/b;-><init>(Lcom/subgraph/orchid/f;IIIZ)V
.line 35
return-void
.end method
.method public constructor <init>(Lcom/subgraph/orchid/f;IIIZ)V
.registers 8
.prologue
const/4 v1, 0x0
.line 38
if-eqz p5, :cond_21
const/16 v0, 0x9
:goto_5
invoke-direct {p0, p2, v0}, Lcom/subgraph/orchid/circuits/a/a;-><init>(II)V
.line 39
iput-object p1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDB:Lcom/subgraph/orchid/f;
.line 40
iput p4, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
.line 41
iput p3, p0, Lcom/subgraph/orchid/circuits/a/b;->bzk:I
.line 42
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDC:Z
.line 43
invoke-virtual {p0, p4}, Lcom/subgraph/orchid/circuits/a/b;->eA(I)V
.line 44
invoke-virtual {p0, v1}, Lcom/subgraph/orchid/circuits/a/b;->eB(I)V
.line 45
invoke-virtual {p0, p3}, Lcom/subgraph/orchid/circuits/a/b;->eB(I)V
.line 46
invoke-virtual {p0, v1}, Lcom/subgraph/orchid/circuits/a/b;->eC(I)V
.line 47
invoke-virtual {p0, v1}, Lcom/subgraph/orchid/circuits/a/b;->eB(I)V
.line 48
return-void
.line 38
:cond_21
const/4 v0, 0x3
goto :goto_5
.end method
.method public constructor <init>(Lcom/subgraph/orchid/f;[B)V
.registers 6
.prologue
.line 51
invoke-direct {p0, p2}, Lcom/subgraph/orchid/circuits/a/a;-><init>([B)V
.line 52
iput-object p1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDB:Lcom/subgraph/orchid/f;
.line 53
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->Ik()I
move-result v0
iput v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
.line 54
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->Il()I
.line 55
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->Il()I
move-result v0
iput v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bzk:I
.line 56
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDC:Z
.line 57
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->getInt()I
.line 58
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->Il()I
move-result v0
.line 59
iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDz:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;
.line 60
add-int/lit8 v1, v0, 0xe
array-length v2, p2
if-le v1, v2, :cond_30
.line 61
new-instance v0, Lcom/subgraph/orchid/TorException;
const-string v1, "Header length field exceeds total size of cell"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v0
.line 62
:cond_30
iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDz:Ljava/nio/ByteBuffer;
add-int/lit8 v0, v0, 0xe
invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 63
return-void
.end method
.method public static eM(I)Ljava/lang/String;
.registers 3
.prologue
.line 145
packed-switch p0, :pswitch_data_40
.line 177
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Relay command = "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:goto_12
return-object v0
.line 147
:pswitch_13
const-string v0, "RELAY_BEGIN"
goto :goto_12
.line 149
:pswitch_16
const-string v0, "RELAY_DATA"
goto :goto_12
.line 151
:pswitch_19
const-string v0, "RELAY_END"
goto :goto_12
.line 153
:pswitch_1c
const-string v0, "RELAY_CONNECTED"
goto :goto_12
.line 155
:pswitch_1f
const-string v0, "RELAY_SENDME"
goto :goto_12
.line 157
:pswitch_22
const-string v0, "RELAY_EXTEND"
goto :goto_12
.line 159
:pswitch_25
const-string v0, "RELAY_EXTENDED"
goto :goto_12
.line 161
:pswitch_28
const-string v0, "RELAY_TRUNCATE"
goto :goto_12
.line 163
:pswitch_2b
const-string v0, "RELAY_TRUNCATED"
goto :goto_12
.line 165
:pswitch_2e
const-string v0, "RELAY_DROP"
goto :goto_12
.line 167
:pswitch_31
const-string v0, "RELAY_RESOLVE"
goto :goto_12
.line 169
:pswitch_34
const-string v0, "RELAY_RESOLVED"
goto :goto_12
.line 171
:pswitch_37
const-string v0, "RELAY_BEGIN_DIR"
goto :goto_12
.line 173
:pswitch_3a
const-string v0, "RELAY_EXTEND2"
goto :goto_12
.line 175
:pswitch_3d
const-string v0, "RELAY_EXTENDED2"
goto :goto_12
.line 145
:pswitch_data_40
.packed-switch 0x1
:pswitch_13
:pswitch_16
:pswitch_19
:pswitch_1c
:pswitch_1f
:pswitch_22
:pswitch_25
:pswitch_28
:pswitch_2b
:pswitch_2e
:pswitch_31
:pswitch_34
:pswitch_37
:pswitch_3a
:pswitch_3d
.end packed-switch
.end method
# virtual methods
.method public final Jw()I
.registers 2
.prologue
.line 70
iget v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
return v0
.end method
.method public final Jx()Lcom/subgraph/orchid/f;
.registers 2
.prologue
.line 89
iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDB:Lcom/subgraph/orchid/f;
return-object v0
.end method
.method public final Jy()Ljava/nio/ByteBuffer;
.registers 2
.prologue
.line 83
iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDz:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;
move-result-object v0
.line 84
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;
.line 85
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;
move-result-object v0
return-object v0
.end method
.method public final Jz()V
.registers 2
.prologue
.line 74
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->In()I
move-result v0
add-int/lit8 v0, v0, -0xe
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/subgraph/orchid/circuits/a/b;->eK(I)V
.line 75
return-void
.end method
.method public final aj([B)V
.registers 5
.prologue
.line 78
const/4 v0, 0x0
:goto_1
const/4 v1, 0x4
if-ge v0, v1, :cond_e
.line 79
add-int/lit8 v1, v0, 0x8
aget-byte v2, p1, v0
invoke-virtual {p0, v1, v2}, Lcom/subgraph/orchid/circuits/a/b;->aI(II)V
.line 78
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 80
:cond_e
return-void
.end method
.method public final getStreamId()I
.registers 2
.prologue
.line 66
iget v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bzk:I
return v0
.end method
.method public final toString()Ljava/lang/String;
.registers 6
.prologue
const/16 v3, 0xe
.line 93
iget-boolean v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDC:Z
if-eqz v0, :cond_4a
.line 94
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "["
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
invoke-static {v1}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " stream="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bzk:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " payload_len="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/a/b;->In()I
move-result v1
add-int/lit8 v1, v1, -0xe
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " dest="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDB:Lcom/subgraph/orchid/f;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "]"
invoke-virtual {v0, v1}, 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
.line 96
:goto_49
return-object v0
:cond_4a
new-instance v1, Ljava/lang/StringBuilder;
const-string v0, "["
invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1100
iget v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
const/16 v2, 0x9
if-ne v0, v2, :cond_b9
.line 1101
invoke-virtual {p0, v3}, Lcom/subgraph/orchid/circuits/a/b;->ez(I)I
move-result v0
.line 1102
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget v3, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
invoke-static {v3}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " ("
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-static {v0}, Lcom/subgraph/orchid/circuits/a/a;->eL(I)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
const-string v2, ")"
invoke-virtual {v0, v2}, 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
.line 96
:goto_82
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " stream="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bzk:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " payload_len="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDz:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->remaining()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " source="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/b;->bDB:Lcom/subgraph/orchid/f;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "]"
invoke-virtual {v0, v1}, 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
goto :goto_49
.line 1103
:cond_b9
iget v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
const/4 v2, 0x3
if-ne v0, v2, :cond_11f
.line 1104
invoke-virtual {p0, v3}, Lcom/subgraph/orchid/circuits/a/b;->ez(I)I
move-result v0
.line 1105
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget v3, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
invoke-static {v3}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " ("
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 1112
packed-switch v0, :pswitch_data_128
.line 1140
:pswitch_da
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Reason code "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 1105
:goto_e9
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, ")"
invoke-virtual {v0, v2}, 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
goto :goto_82
.line 1114
:pswitch_f8
const-string v0, "Unlisted reason"
goto :goto_e9
.line 1116
:pswitch_fb
const-string v0, "Couldn\'t look up hostname"
goto :goto_e9
.line 1118
:pswitch_fe
const-string v0, "Remote host refused connection"
goto :goto_e9
.line 1120
:pswitch_101
const-string v0, "OR refuses to connect to host or port"
goto :goto_e9
.line 1122
:pswitch_104
const-string v0, "Circuit is being destroyed"
goto :goto_e9
.line 1124
:pswitch_107
const-string v0, "Anonymized TCP connection was closed"
goto :goto_e9
.line 1126
:pswitch_10a
const-string v0, "Connection timed out, or OR timed out while connecting"
goto :goto_e9
.line 1128
:pswitch_10d
const-string v0, "OR is temporarily hibernating"
goto :goto_e9
.line 1130
:pswitch_110
const-string v0, "Internal error at the OR"
goto :goto_e9
.line 1132
:pswitch_113
const-string v0, "OR has no resources to fulfill request"
goto :goto_e9
.line 1134
:pswitch_116
const-string v0, "Connection was unexpectedly reset"
goto :goto_e9
.line 1136
:pswitch_119
const-string v0, "Tor protocol violation"
goto :goto_e9
.line 1138
:pswitch_11c
const-string v0, "Client sent RELAY_BEGIN_DIR to a non-directory server."
goto :goto_e9
.line 1108
:cond_11f
iget v0, p0, Lcom/subgraph/orchid/circuits/a/b;->bDA:I
invoke-static {v0}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;
move-result-object v0
goto/16 :goto_82
.line 1112
nop
:pswitch_data_128
.packed-switch 0x1
:pswitch_f8
:pswitch_fb
:pswitch_fe
:pswitch_101
:pswitch_104
:pswitch_107
:pswitch_10a
:pswitch_da
:pswitch_10d
:pswitch_110
:pswitch_113
:pswitch_116
:pswitch_119
:pswitch_11c
.end packed-switch
.end method