DTLSTransport.smali

.class public Lorg/spongycastle/crypto/tls/DTLSTransport;
.super Ljava/lang/Object;
.source "DTLSTransport.java"

# interfaces
.implements Lorg/spongycastle/crypto/tls/DatagramTransport;


# instance fields
.field private final recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;


# direct methods
.method constructor <init>(Lorg/spongycastle/crypto/tls/DTLSRecordLayer;)V
    .registers 2

    .prologue
    .line 11
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 12
    iput-object p1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    .line 13
    return-void
.end method


# virtual methods
.method public close()V
    .registers 2

    .prologue
    .line 78
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->close()V

    .line 79
    return-void
.end method

.method public getReceiveLimit()I
    .registers 2

    .prologue
    .line 18
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->getReceiveLimit()I

    move-result v0

    return v0
.end method

.method public getSendLimit()I
    .registers 2

    .prologue
    .line 24
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->getSendLimit()I

    move-result v0

    return v0
.end method

.method public receive([BIII)I
    .registers 8

    .prologue
    const/16 v2, 0x50

    .line 32
    :try_start_2
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0, p1, p2, p3, p4}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->receive([BIII)I
    :try_end_7
    .catch Lorg/spongycastle/crypto/tls/TlsFatalAlert; {:try_start_2 .. :try_end_7} :catch_9
    .catch Ljava/io/IOException; {:try_start_2 .. :try_end_7} :catch_14
    .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_7} :catch_1b

    move-result v0

    return v0

    .line 34
    :catch_9
    move-exception v0

    .line 36
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0}, Lorg/spongycastle/crypto/tls/TlsFatalAlert;->getAlertDescription()S

    move-result v2

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 37
    throw v0

    .line 39
    :catch_14
    move-exception v0

    .line 41
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 42
    throw v0

    .line 44
    :catch_1b
    move-exception v0

    .line 46
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 47
    new-instance v1, Lorg/spongycastle/crypto/tls/TlsFatalAlert;

    invoke-direct {v1, v2, v0}, Lorg/spongycastle/crypto/tls/TlsFatalAlert;-><init>(SLjava/lang/Throwable;)V

    throw v1
.end method

.method public send([BII)V
    .registers 7

    .prologue
    const/16 v2, 0x50

    .line 56
    :try_start_2
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0, p1, p2, p3}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->send([BII)V
    :try_end_7
    .catch Lorg/spongycastle/crypto/tls/TlsFatalAlert; {:try_start_2 .. :try_end_7} :catch_8
    .catch Ljava/io/IOException; {:try_start_2 .. :try_end_7} :catch_13
    .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_7} :catch_1a

    .line 72
    return-void

    .line 58
    :catch_8
    move-exception v0

    .line 60
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v0}, Lorg/spongycastle/crypto/tls/TlsFatalAlert;->getAlertDescription()S

    move-result v2

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 61
    throw v0

    .line 63
    :catch_13
    move-exception v0

    .line 65
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 66
    throw v0

    .line 68
    :catch_1a
    move-exception v0

    .line 70
    iget-object v1, p0, Lorg/spongycastle/crypto/tls/DTLSTransport;->recordLayer:Lorg/spongycastle/crypto/tls/DTLSRecordLayer;

    invoke-virtual {v1, v2}, Lorg/spongycastle/crypto/tls/DTLSRecordLayer;->fail(S)V

    .line 71
    new-instance v1, Lorg/spongycastle/crypto/tls/TlsFatalAlert;

    invoke-direct {v1, v2, v0}, Lorg/spongycastle/crypto/tls/TlsFatalAlert;-><init>(SLjava/lang/Throwable;)V

    throw v1
.end method