Http2.smali
.class public final Lokhttp3/internal/http2/Http2;
.super Ljava/lang/Object;
# static fields
.field static final BINARY:[Ljava/lang/String;
.field static final CONNECTION_PREFACE:Lokio/ByteString;
.field static final FLAGS:[Ljava/lang/String;
.field static final FLAG_ACK:B = 0x1t
.field static final FLAG_COMPRESSED:B = 0x20t
.field static final FLAG_END_HEADERS:B = 0x4t
.field static final FLAG_END_PUSH_PROMISE:B = 0x4t
.field static final FLAG_END_STREAM:B = 0x1t
.field static final FLAG_NONE:B = 0x0t
.field static final FLAG_PADDED:B = 0x8t
.field static final FLAG_PRIORITY:B = 0x20t
.field private static final FRAME_NAMES:[Ljava/lang/String;
.field static final INITIAL_MAX_FRAME_SIZE:I = 0x4000
.field static final TYPE_CONTINUATION:B = 0x9t
.field static final TYPE_DATA:B = 0x0t
.field static final TYPE_GOAWAY:B = 0x7t
.field static final TYPE_HEADERS:B = 0x1t
.field static final TYPE_PING:B = 0x6t
.field static final TYPE_PRIORITY:B = 0x2t
.field static final TYPE_PUSH_PROMISE:B = 0x5t
.field static final TYPE_RST_STREAM:B = 0x3t
.field static final TYPE_SETTINGS:B = 0x4t
.field static final TYPE_WINDOW_UPDATE:B = 0x8t
# direct methods
.method static constructor <clinit>()V
.registers 13
const/16 v7, 0x8
const/4 v10, 0x4
const/4 v9, 0x3
const/4 v6, 0x1
const/4 v1, 0x0
const-string/jumbo v0, "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
invoke-static {v0}, Lokio/ByteString;->a(Ljava/lang/String;)Lokio/ByteString;
move-result-object v0
sput-object v0, Lokhttp3/internal/http2/Http2;->CONNECTION_PREFACE:Lokio/ByteString;
const/16 v0, 0xa
new-array v0, v0, [Ljava/lang/String;
const-string/jumbo v2, "DATA"
aput-object v2, v0, v1
const-string/jumbo v2, "HEADERS"
aput-object v2, v0, v6
const/4 v2, 0x2
const-string/jumbo v3, "PRIORITY"
aput-object v3, v0, v2
const-string/jumbo v2, "RST_STREAM"
aput-object v2, v0, v9
const-string/jumbo v2, "SETTINGS"
aput-object v2, v0, v10
const/4 v2, 0x5
const-string/jumbo v3, "PUSH_PROMISE"
aput-object v3, v0, v2
const/4 v2, 0x6
const-string/jumbo v3, "PING"
aput-object v3, v0, v2
const/4 v2, 0x7
const-string/jumbo v3, "GOAWAY"
aput-object v3, v0, v2
const-string/jumbo v2, "WINDOW_UPDATE"
aput-object v2, v0, v7
const/16 v2, 0x9
const-string/jumbo v3, "CONTINUATION"
aput-object v3, v0, v2
sput-object v0, Lokhttp3/internal/http2/Http2;->FRAME_NAMES:[Ljava/lang/String;
const/16 v0, 0x40
new-array v0, v0, [Ljava/lang/String;
sput-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const/16 v0, 0x100
new-array v0, v0, [Ljava/lang/String;
sput-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
move v0, v1
:goto_5a
sget-object v2, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
array-length v2, v2
if-ge v0, v2, :cond_7d
sget-object v2, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
const-string/jumbo v3, "%8s"
new-array v4, v6, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Integer;->toBinaryString(I)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v1
invoke-static {v3, v4}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
const/16 v4, 0x20
const/16 v5, 0x30
invoke-virtual {v3, v4, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v0
add-int/lit8 v0, v0, 0x1
goto :goto_5a
:cond_7d
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const-string/jumbo v2, ""
aput-object v2, v0, v1
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const-string/jumbo v2, "END_STREAM"
aput-object v2, v0, v6
new-array v3, v6, [I
aput v6, v3, v1
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const-string/jumbo v2, "PADDED"
aput-object v2, v0, v7
array-length v2, v3
move v0, v1
:goto_98
if-ge v0, v2, :cond_bd
aget v4, v3, v0
sget-object v5, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
or-int/lit8 v6, v4, 0x8
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
sget-object v8, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v4, v8, v4
invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string/jumbo v7, "|PADDED"
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
aput-object v4, v5, v6
add-int/lit8 v0, v0, 0x1
goto :goto_98
:cond_bd
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const-string/jumbo v2, "END_HEADERS"
aput-object v2, v0, v10
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const/16 v2, 0x20
const-string/jumbo v4, "PRIORITY"
aput-object v4, v0, v2
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
const/16 v2, 0x24
const-string/jumbo v4, "END_HEADERS|PRIORITY"
aput-object v4, v0, v2
new-array v4, v9, [I
fill-array-data v4, :array_158
array-length v5, v4
move v2, v1
:goto_dd
if-ge v2, v5, :cond_141
aget v6, v4, v2
array-length v7, v3
move v0, v1
:goto_e3
if-ge v0, v7, :cond_13d
aget v8, v3, v0
sget-object v9, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
or-int v10, v8, v6
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
sget-object v12, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v12, v12, v8
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v11
const/16 v12, 0x7c
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v11
sget-object v12, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v12, v12, v6
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
aput-object v11, v9, v10
sget-object v9, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
or-int v10, v8, v6
or-int/lit8 v10, v10, 0x8
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
sget-object v12, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v8, v12, v8
invoke-virtual {v11, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
const/16 v11, 0x7c
invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v8
sget-object v11, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v11, v11, v6
invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
const-string/jumbo v11, "|PADDED"
invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
aput-object v8, v9, v10
add-int/lit8 v0, v0, 0x1
goto :goto_e3
:cond_13d
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_dd
:cond_141
:goto_141
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
array-length v0, v0
if-ge v1, v0, :cond_157
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v0, v0, v1
if-nez v0, :cond_154
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
sget-object v2, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v2, v2, v1
aput-object v2, v0, v1
:cond_154
add-int/lit8 v1, v1, 0x1
goto :goto_141
:cond_157
return-void
:array_158
.array-data 4
0x4
0x20
0x24
.end array-data
.end method
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static formatFlags(BB)Ljava/lang/String;
.registers 5
if-nez p1, :cond_6
const-string/jumbo v0, ""
:cond_5
:goto_5
return-object v0
:cond_6
packed-switch p0, :pswitch_data_4c
:pswitch_9
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
array-length v0, v0
if-ge p1, v0, :cond_35
sget-object v0, Lokhttp3/internal/http2/Http2;->FLAGS:[Ljava/lang/String;
aget-object v0, v0, p1
:goto_12
const/4 v1, 0x5
if-ne p0, v1, :cond_3a
and-int/lit8 v1, p1, 0x4
if-eqz v1, :cond_3a
const-string/jumbo v1, "HEADERS"
const-string/jumbo v2, "PUSH_PROMISE"
invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
goto :goto_5
:pswitch_24
const/4 v0, 0x1
if-ne p1, v0, :cond_2b
const-string/jumbo v0, "ACK"
goto :goto_5
:cond_2b
sget-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v0, v0, p1
goto :goto_5
:pswitch_30
sget-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v0, v0, p1
goto :goto_5
:cond_35
sget-object v0, Lokhttp3/internal/http2/Http2;->BINARY:[Ljava/lang/String;
aget-object v0, v0, p1
goto :goto_12
:cond_3a
if-nez p0, :cond_5
and-int/lit8 v1, p1, 0x20
if-eqz v1, :cond_5
const-string/jumbo v1, "PRIORITY"
const-string/jumbo v2, "COMPRESSED"
invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
goto :goto_5
nop
:pswitch_data_4c
.packed-switch 0x2
:pswitch_30
:pswitch_30
:pswitch_24
:pswitch_9
:pswitch_24
:pswitch_30
:pswitch_30
.end packed-switch
.end method
.method static frameLog(ZIIBB)Ljava/lang/String;
.registers 12
const/4 v6, 0x1
const/4 v5, 0x0
sget-object v0, Lokhttp3/internal/http2/Http2;->FRAME_NAMES:[Ljava/lang/String;
array-length v0, v0
if-ge p3, v0, :cond_34
sget-object v0, Lokhttp3/internal/http2/Http2;->FRAME_NAMES:[Ljava/lang/String;
aget-object v0, v0, p3
:goto_b
invoke-static {p3, p4}, Lokhttp3/internal/http2/Http2;->formatFlags(BB)Ljava/lang/String;
move-result-object v2
const-string/jumbo v3, "%s 0x%08x %5d %-13s %s"
const/4 v1, 0x5
new-array v4, v1, [Ljava/lang/Object;
if-eqz p0, :cond_44
const-string/jumbo v1, "<<"
:goto_1a
aput-object v1, v4, v5
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v4, v6
const/4 v1, 0x2
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v5
aput-object v5, v4, v1
const/4 v1, 0x3
aput-object v0, v4, v1
const/4 v0, 0x4
aput-object v2, v4, v0
invoke-static {v3, v4}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
:cond_34
const-string/jumbo v0, "0x%02x"
new-array v1, v6, [Ljava/lang/Object;
invoke-static {p3}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v2
aput-object v2, v1, v5
invoke-static {v0, v1}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
goto :goto_b
:cond_44
const-string/jumbo v1, ">>"
goto :goto_1a
.end method
.method static varargs illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
.registers 4
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p0, p1}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method static varargs ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException;
.registers 4
new-instance v0, Ljava/io/IOException;
invoke-static {p0, p1}, Lokhttp3/internal/Util;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.end method