ConnectionSpecSelector.smali
.class public final Lokhttp3/internal/connection/ConnectionSpecSelector;
.super Ljava/lang/Object;
# instance fields
.field private a:I
.field private b:Z
.field private c:Z
.field private final d:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lokhttp3/ConnectionSpec;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/util/List;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lokhttp3/ConnectionSpec;",
">;)V"
}
.end annotation
const-string v0, "connectionSpecs"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
return-void
.end method
.method private final c(Ljavax/net/ssl/SSLSocket;)Z
.registers 5
iget v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->a:I
iget-object v1, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
:goto_8
if-ge v0, v1, :cond_1d
iget-object v2, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lokhttp3/ConnectionSpec;
invoke-virtual {v2, p1}, Lokhttp3/ConnectionSpec;->e(Ljavax/net/ssl/SSLSocket;)Z
move-result v2
if-eqz v2, :cond_1a
const/4 p1, 0x1
return p1
:cond_1a
add-int/lit8 v0, v0, 0x1
goto :goto_8
:cond_1d
const/4 p1, 0x0
return p1
.end method
# virtual methods
.method public final a(Ljavax/net/ssl/SSLSocket;)Lokhttp3/ConnectionSpec;
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const-string v0, "sslSocket"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V
iget v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->a:I
iget-object v1, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v1
:goto_d
const/4 v2, 0x0
if-ge v0, v1, :cond_26
iget-object v3, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lokhttp3/ConnectionSpec;
invoke-virtual {v3, p1}, Lokhttp3/ConnectionSpec;->e(Ljavax/net/ssl/SSLSocket;)Z
move-result v4
if-eqz v4, :cond_23
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->a:I
goto :goto_27
:cond_23
add-int/lit8 v0, v0, 0x1
goto :goto_d
:cond_26
move-object v3, v2
:goto_27
if-nez v3, :cond_6f
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Unable to find acceptable protocols. isFallback="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->c:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const/16 v1, 0x2c
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v3, " modes="
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->d:Ljava/util/List;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v1, " supported protocols="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljavax/net/ssl/SSLSocket;->getEnabledProtocols()[Ljava/lang/String;
move-result-object p1
if-nez p1, :cond_59
invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V
throw v2
:cond_59
invoke-static {p1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "java.util.Arrays.toString(this)"
invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance v0, Ljava/net/UnknownServiceException;
invoke-direct {v0, p1}, Ljava/net/UnknownServiceException;-><init>(Ljava/lang/String;)V
throw v0
:cond_6f
invoke-direct {p0, p1}, Lokhttp3/internal/connection/ConnectionSpecSelector;->c(Ljavax/net/ssl/SSLSocket;)Z
move-result v0
iput-boolean v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->b:Z
iget-boolean v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->c:Z
invoke-virtual {v3, p1, v0}, Lokhttp3/ConnectionSpec;->c(Ljavax/net/ssl/SSLSocket;Z)V
return-object v3
.end method
.method public final b(Ljava/io/IOException;)Z
.registers 5
const-string v0, "e"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v0, 0x1
iput-boolean v0, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->c:Z
iget-boolean v1, p0, Lokhttp3/internal/connection/ConnectionSpecSelector;->b:Z
const/4 v2, 0x0
if-nez v1, :cond_f
:cond_d
:goto_d
const/4 v0, 0x0
goto :goto_2f
:cond_f
instance-of v1, p1, Ljava/net/ProtocolException;
if-eqz v1, :cond_14
goto :goto_d
:cond_14
instance-of v1, p1, Ljava/io/InterruptedIOException;
if-eqz v1, :cond_19
goto :goto_d
:cond_19
instance-of v1, p1, Ljavax/net/ssl/SSLHandshakeException;
if-eqz v1, :cond_26
invoke-virtual {p1}, Ljava/io/IOException;->getCause()Ljava/lang/Throwable;
move-result-object v1
instance-of v1, v1, Ljava/security/cert/CertificateException;
if-eqz v1, :cond_26
goto :goto_d
:cond_26
instance-of v1, p1, Ljavax/net/ssl/SSLPeerUnverifiedException;
if-eqz v1, :cond_2b
goto :goto_d
:cond_2b
instance-of p1, p1, Ljavax/net/ssl/SSLException;
if-eqz p1, :cond_d
:goto_2f
return v0
.end method