Skip to content

Commit 16be85b

Browse files
committed
feat(dtls): add graceful close_notify shutdown support
1 parent a64fe8f commit 16be85b

15 files changed

Lines changed: 803 additions & 59 deletions

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageVersion Include="TUnit" Version="1.24.18" />
6+
<PackageVersion Include="TUnit" Version="1.37.36" />
77
</ItemGroup>
88
</Project>

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ await transport.HandshakeAsync();
2424

2525
await transport.SendAsync(data);
2626
int bytesRead = await transport.ReceiveAsync(buffer);
27+
28+
await transport.CloseAsync();
2729
```
2830

2931
### Server
@@ -59,13 +61,14 @@ public interface IDatagramTransport
5961

6062
Async I/O wrapper that bridges the sans-I/O protocol engine with an `IDatagramTransport`.
6163

62-
| Method | Description |
63-
| ------------------- | -------------------------- |
64-
| `CreateClientAsync` | Create a DTLS client |
65-
| `CreateServerAsync` | Create a DTLS server |
66-
| `HandshakeAsync` | Perform DTLS handshake |
67-
| `SendAsync` | Send encrypted datagram |
68-
| `ReceiveAsync` | Receive decrypted datagram |
64+
| Method | Description |
65+
| ------------------- | -------------------------------------- |
66+
| `CreateClientAsync` | Create a DTLS client |
67+
| `CreateServerAsync` | Create a DTLS server |
68+
| `HandshakeAsync` | Perform DTLS handshake |
69+
| `SendAsync` | Send encrypted datagram |
70+
| `ReceiveAsync` | Receive decrypted datagram |
71+
| `CloseAsync` | Send `close_notify` for graceful shutdown |
6972

7073
### DtlsSession
7174

@@ -79,6 +82,7 @@ Sans-I/O DTLS protocol engine for advanced scenarios.
7982
| `HandleTimeout` | Handle retransmission timeout |
8083
| `Send` | Encrypt plaintext into output |
8184
| `TryReceive` | Try to read decrypted application data |
85+
| `Close` | Queue `close_notify` for graceful shutdown |
8286
| `VerifyPeer` | Verify peer certificate |
8387

8488
### Options

native/Cargo.lock

Lines changed: 102 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

native/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repository = "https://github.com/HMBSbige/DTLS"
99
crate-type = ["cdylib"]
1010

1111
[dependencies]
12-
dimpl = { version = "0.5" }
12+
dimpl = { version = "0.6" }
1313

1414
[profile.release]
1515
lto = true

0 commit comments

Comments
 (0)