c.smali
.class public Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
}
.end annotation
# static fields
.field private static final c:I
# instance fields
.field public a:Ljava/net/InetAddress;
.field private b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
.field private d:I
.field private final e:[J
# direct methods
.method static constructor <clinit>()V
.registers 1
const v0, 0x156b
invoke-static {v0}, Lnp/NPFog;->d(I)I
move-result v0
sput v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->c:I
return-void
.end method
.method public constructor <init>(Ljava/net/InetAddress;Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;)V
.registers 4
.param p1, "remote" # Ljava/net/InetAddress;
.param p2, "listener" # Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 17
const/16 v0, 0x1770
iput v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I
.line 18
const/4 v0, 0x4
new-array v0, v0, [J
iput-object v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
.line 21
iput-object p1, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a:Ljava/net/InetAddress;
.line 22
iput-object p2, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
.line 23
return-void
.end method
.method private a(Ljava/net/InetSocketAddress;II)V
.registers 13
.param p1, "socketAddress" # Ljava/net/InetSocketAddress;
.param p2, "timeOut" # I
.param p3, "index" # I
.line 113
const/4 v0, 0x0
.line 114
.local v0, "socket":Ljava/net/Socket;
const-wide/16 v1, 0x0
.line 115
.local v1, "start":J
const-wide/16 v3, 0x0
.line 117
.local v3, "end":J
:try_start_5
new-instance v5, Ljava/net/Socket;
invoke-direct {v5}, Ljava/net/Socket;-><init>()V
move-object v0, v5
.line 118
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v5
move-wide v1, v5
.line 119
invoke-virtual {v0, p1, p2}, Ljava/net/Socket;->connect(Ljava/net/SocketAddress;I)V
.line 120
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v5
move-wide v3, v5
.line 121
iget-object v5, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
sub-long v6, v3, v1
aput-wide v6, v5, p3
:try_end_1e
.catch Ljava/net/SocketTimeoutException; {:try_start_5 .. :try_end_1e} :catch_3a
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_1e} :catch_2a
.catchall {:try_start_5 .. :try_end_1e} :catchall_28
.line 129
nop
.line 131
:try_start_1f
invoke-virtual {v0}, Ljava/net/Socket;->close()V
:try_end_22
.catch Ljava/io/IOException; {:try_start_1f .. :try_end_22} :catch_23
.line 134
:goto_22
goto :goto_4a
.line 132
:catch_23
move-exception v5
.line 133
.local v5, "e":Ljava/io/IOException;
invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
.end local v5 # "e":Ljava/io/IOException;
goto :goto_22
.line 129
:catchall_28
move-exception v5
goto :goto_4b
.line 125
:catch_2a
move-exception v5
.line 126
.restart local v5 # "e":Ljava/io/IOException;
:try_start_2b
iget-object v6, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
const-wide/16 v7, -0x2
aput-wide v7, v6, p3
.line 127
invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
:try_end_34
.catchall {:try_start_2b .. :try_end_34} :catchall_28
.line 129
.end local v5 # "e":Ljava/io/IOException;
if-eqz v0, :cond_4a
.line 131
:try_start_36
invoke-virtual {v0}, Ljava/net/Socket;->close()V
:try_end_39
.catch Ljava/io/IOException; {:try_start_36 .. :try_end_39} :catch_23
goto :goto_22
.line 122
:catch_3a
move-exception v5
.line 123
.local v5, "e":Ljava/net/SocketTimeoutException;
:try_start_3b
iget-object v6, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
const-wide/16 v7, -0x1
aput-wide v7, v6, p3
.line 124
invoke-virtual {v5}, Ljava/net/SocketTimeoutException;->printStackTrace()V
:try_end_44
.catchall {:try_start_3b .. :try_end_44} :catchall_28
.line 129
.end local v5 # "e":Ljava/net/SocketTimeoutException;
if-eqz v0, :cond_4a
.line 131
:try_start_46
invoke-virtual {v0}, Ljava/net/Socket;->close()V
:try_end_49
.catch Ljava/io/IOException; {:try_start_46 .. :try_end_49} :catch_23
goto :goto_22
.line 137
:cond_4a
:goto_4a
return-void
.line 129
:goto_4b
if-eqz v0, :cond_55
.line 131
:try_start_4d
invoke-virtual {v0}, Ljava/net/Socket;->close()V
:try_end_50
.catch Ljava/io/IOException; {:try_start_4d .. :try_end_50} :catch_51
.line 134
goto :goto_55
.line 132
:catch_51
move-exception v6
.line 133
.local v6, "e":Ljava/io/IOException;
invoke-virtual {v6}, Ljava/io/IOException;->printStackTrace()V
.line 134
.end local v6 # "e":Ljava/io/IOException;
:cond_55
:goto_55
goto :goto_57
:goto_56
throw v5
:goto_57
goto :goto_56
.end method
.method private a(Ljava/net/InetAddress;Ljava/lang/String;)Z
.registers 23
.param p1, "inetAddress" # Ljava/net/InetAddress;
.param p2, "port" # Ljava/lang/String;
.line 40
move-object/from16 v0, p0
move-object/from16 v1, p1
const/4 v2, 0x1
.line 41
.local v2, "isConnected":Z
const/4 v3, 0x0
.line 42
.local v3, "socketAddress":Ljava/net/InetSocketAddress;
if-eqz v1, :cond_f1
if-eqz p2, :cond_f1
.line 43
new-instance v4, Ljava/net/InetSocketAddress;
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
invoke-direct {v4, v1, v5}, Ljava/net/InetSocketAddress;-><init>(Ljava/net/InetAddress;I)V
move-object v3, v4
.line 44
const/4 v4, 0x0
.line 46
.local v4, "flag":I
iget-object v5, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
const-string v6, ", \"TcpCheck\":{"
invoke-interface {v5, v6}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V
.line 48
const/4 v5, 0x0
.local v5, "i":I
:goto_21
const/4 v6, 0x4
if-ge v5, v6, :cond_5c
.line 49
iget v7, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I
invoke-direct {v0, v3, v7, v5}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a(Ljava/net/InetSocketAddress;II)V
.line 50
iget-object v7, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
aget-wide v8, v7, v5
const-wide/16 v10, -0x1
cmp-long v12, v8, v10
if-nez v12, :cond_45
.line 51
iget v8, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I
add-int/lit16 v8, v8, 0xfa0
iput v8, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I
.line 52
if-lez v5, :cond_59
add-int/lit8 v8, v5, -0x1
aget-wide v8, v7, v8
cmp-long v7, v8, v10
if-nez v7, :cond_59
.line 53
const/4 v4, -0x1
.line 54
goto :goto_5c
.line 56
:cond_45
aget-wide v8, v7, v5
const-wide/16 v10, -0x2
cmp-long v12, v8, v10
if-nez v12, :cond_59
.line 57
if-lez v5, :cond_59
add-int/lit8 v8, v5, -0x1
aget-wide v8, v7, v8
cmp-long v7, v8, v10
if-nez v7, :cond_59
.line 58
const/4 v4, -0x2
.line 59
goto :goto_5c
.line 48
:cond_59
add-int/lit8 v5, v5, 0x1
goto :goto_21
.line 64
.end local v5 # "i":I
:cond_5c
:goto_5c
const-wide/32 v7, 0x1869f
.line 65
.local v7, "_min":J
const-wide/32 v9, 0x1869f
.line 66
.local v9, "_max":J
const-wide/32 v11, 0x1869f
.line 67
.local v11, "time":J
const/4 v5, 0x0
.line 68
.local v5, "count":I
const/4 v13, -0x1
if-ne v4, v13, :cond_6b
.line 69
const/4 v2, 0x0
goto :goto_a6
.line 70
:cond_6b
const/4 v13, -0x2
if-ne v4, v13, :cond_70
.line 71
const/4 v2, 0x0
goto :goto_a6
.line 73
:cond_70
iget-object v13, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
const/4 v14, 0x0
aget-wide v7, v13, v14
.line 74
aget-wide v9, v13, v14
.line 75
const-wide/16 v11, 0x0
.line 76
const/4 v13, 0x0
.local v13, "i":I
:goto_7a
if-ge v13, v6, :cond_a2
.line 77
iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
aget-wide v15, v14, v13
cmp-long v17, v7, v15
if-lez v17, :cond_86
.line 78
aget-wide v7, v14, v13
.line 81
:cond_86
iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
aget-wide v15, v14, v13
cmp-long v17, v9, v15
if-gez v17, :cond_90
.line 82
aget-wide v9, v14, v13
.line 85
:cond_90
iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J
aget-wide v15, v14, v13
const-wide/16 v17, 0x0
cmp-long v19, v15, v17
if-lez v19, :cond_9f
.line 86
aget-wide v15, v14, v13
add-long/2addr v11, v15
.line 87
add-int/lit8 v5, v5, 0x1
.line 76
:cond_9f
add-int/lit8 v13, v13, 0x1
goto :goto_7a
.line 91
.end local v13 # "i":I
:cond_a2
if-lez v5, :cond_a6
.line 92
int-to-long v13, v5
div-long/2addr v11, v13
.line 97
:cond_a6
:goto_a6
iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, "\"max\":"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v9, v10}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V
.line 98
iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, ", \"min\":"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v7, v8}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V
.line 99
iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, ", \"avg\":"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v11, v12}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V
.line 100
iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
const-string/jumbo v13, "}"
invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V
.line 102
.end local v4 # "flag":I
.end local v5 # "count":I
.end local v7 # "_min":J
.end local v9 # "_max":J
.end local v11 # "time":J
goto :goto_f2
.line 103
:cond_f1
const/4 v2, 0x0
.line 106
:goto_f2
return v2
.end method
# virtual methods
.method public a(Ljava/lang/String;Ljava/lang/String;)Z
.registers 4
.param p1, "host" # Ljava/lang/String;
.param p2, "port" # Ljava/lang/String;
.line 29
iget-object v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a:Ljava/net/InetAddress;
if-eqz v0, :cond_c
invoke-direct {p0, v0, p2}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a(Ljava/net/InetAddress;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_c
.line 30
const/4 v0, 0x1
return v0
.line 33
:cond_c
const/4 v0, 0x0
return v0
.end method