Benjamin Saunders
d85ce6b7e4
Fix path validation timer
2019-01-07 06:52:00 +01:00
Benjamin Saunders
60f592b926
Correct lost_packets accounting, strengthen coalesced packet test
2019-01-07 06:52:00 +01:00
est31
916546ff8c
Use libc from crates.io
...
The git commit that libc had been pinned
to earlier has been part of a release since.
2019-01-06 17:40:58 +01:00
Benjamin Saunders
c9f0a23c2a
Handle path validation probes
2019-01-05 23:24:30 -08:00
Benjamin Saunders
ed35d048e6
Remove Event::NewSessionTicket
...
This is handled adequately by rustls by default, and rustls's
extension points are exposed if anyone really wants to e.g. use a
persistent cache.
2019-01-05 23:24:30 -08:00
Benjamin Saunders
86d5a3cd33
Remove non-retransmittable data from Retransmits
2019-01-05 23:24:30 -08:00
Benjamin Saunders
4dcff18d4f
Reset congestion/rtt state when migrating
2019-01-05 23:24:30 -08:00
Benjamin Saunders
092eae3666
Implement client address migration
2019-01-05 23:24:30 -08:00
Benjamin Saunders
74a6bc032c
Reduce duplication in timer cancellation handling
2019-01-05 23:24:30 -08:00
Benjamin Saunders
0c2006b982
Tweak diagnostics
2019-01-05 23:24:30 -08:00
Benjamin Saunders
a213eeaf1f
Test key update in interop tool
2019-01-06 07:56:09 +01:00
Benjamin Saunders
32b6dddaf4
Fix handling of early packet spaces after key update
...
Handshake and Initial packets do not have a key phase, so the key
phase test should always be ignored for them.
2019-01-06 07:56:09 +01:00
Benjamin Saunders
cbac404529
Mark resumption as working
2019-01-06 07:56:09 +01:00
Benjamin Saunders
31edd6c734
Test resumption in interop tool
...
We can infer whether the session was resumed based on whether we saw
the server's certificate.
2019-01-06 07:56:09 +01:00
Benjamin Saunders
05668af7b4
Fix IO polling panic when draining begins after IO is queued
...
If we closed the connection, then received a packet from the peer that
did not contain a CONNECTION_CLOSE, followed by one that did, we would
enter the Draining state with io.close = true, causing us to try to
send a CONNECTION_CLOSE packet after having forgotten the close
reason.
2019-01-05 06:14:24 +01:00
Benjamin Saunders
beaedb541b
Fix malformed resumption handshake
2019-01-05 06:14:24 +01:00
Benjamin Saunders
ce514af89a
Don't pad anti-deadlock packets
...
If the client manages to get a Handshake packet through to the server,
its address will be verified and anti-amplification budget becomes
irrelevant.
2019-01-04 11:46:44 +01:00
Benjamin Saunders
f94f0ec6a8
Ensure a closed or reset connection cancels its timers
...
Fixes a panic in the higher level.
2019-01-04 11:46:44 +01:00
Benjamin Saunders
24a7ef311e
Fix ChaCha20 header protection
2019-01-04 11:46:44 +01:00
Benjamin Saunders
8a1c61abeb
Tweak diagnostics
2019-01-04 11:46:44 +01:00
Benjamin Saunders
08e057ec39
Test handling of coalesced packets
2019-01-04 11:46:44 +01:00
Benjamin Saunders
7338f7b1e4
Fix panic on receiving 0-RTT headers
2019-01-04 11:46:44 +01:00
Benjamin Saunders
60bf13acff
Mark client Initial authenticated before processing for consistency
2019-01-04 11:46:44 +01:00
Benjamin Saunders
eef1ba31f7
Improve unsafe code defensiveness
2019-01-04 11:46:44 +01:00
Benjamin Saunders
58dd5daade
Fix feature-gated type reference
2019-01-04 01:22:55 -08:00
Benjamin Saunders
07384a920e
Add missing documentation
2019-01-04 01:22:55 -08:00
Benjamin Saunders
37c664ec0a
Fix copy-paste error
2019-01-04 01:22:55 -08:00
Benjamin Saunders
32b4ed7c8e
Hide rustls certificate types and parsing methods
...
This decouples an important part of the API from rustls, and greatly
simplifies the task of robustly reading a certificate from disk.
2019-01-03 23:10:22 -08:00
Benjamin Saunders
2aa8e30a64
Delete dead macro_use
2019-01-02 08:11:00 +01:00
Benjamin Saunders
3e7961ad37
Backwards-compatible IP_TOS sendmsg use
...
Linux required IP_TOS to be set as an int prior to 2016 kernel commit
e895cdce683161081e3626c4f5a5c55cb72089f8, even though it's a u8 when
read via IP_RECVTOS.
2019-01-02 08:11:00 +01:00
Benjamin Saunders
b5dbe2b602
Independently test IPv4, IPv6, and dual-stack connections
2019-01-02 08:11:00 +01:00
Benjamin Saunders
d47c8b8430
Don't send to IPv4 addrs on IPv6 sockets
...
This fixes dual-stack operation on less recent Linux kernels, and
reduces the rate of address conversion to once per connection by
assuming that dual-stack sockets will always yield IPv4-mapped IPv6
addresses.
2019-01-02 08:11:00 +01:00
Benjamin Saunders
15ce3f0be2
Handshake anti-deadlock
...
Servers may only send at most 3x received data until address
verification is complete, so large handshakes or packet loss may
require the client to send dummy packets.
2019-01-01 13:52:51 +01:00
Benjamin Saunders
a1f248ee38
Test dropped server handshake messages
2019-01-01 13:52:51 +01:00
Benjamin Saunders
e2bd393a9d
Implement handshake anti-amplification
2019-01-01 13:52:51 +01:00
Benjamin Saunders
f529a0481f
Delete dead code
2019-01-01 13:52:51 +01:00
Benjamin Saunders
652c7559ef
Fix congestion blocking ACK-only packets
2019-01-01 13:52:51 +01:00
Benjamin Saunders
7d4055da6d
Fix probes being blocked by lack of pending data
2019-01-01 13:52:51 +01:00
Benjamin Saunders
4555aa4bf7
Cosmetic fixes
2019-01-01 13:52:51 +01:00
Benjamin Saunders
4d8260b57e
Immediately fail the high-level test on unexpected errors
2018-12-31 10:25:36 +01:00
Benjamin Saunders
4ef0480bbb
Signal connection tasks when the driver is lost
...
This isn't normally expected, but should reduce confusion in corner
cases.
2018-12-31 10:25:36 +01:00
Benjamin Saunders
43d321bdfc
Update block-modes to 0.3
2018-12-31 00:29:35 -08:00
Benjamin Saunders
b84f22f64f
Use test vectors from upstream
2018-12-31 07:03:16 +01:00
dependabot[bot]
2008cb6eca
Update orion requirement from 0.11 to 0.12
...
Updates the requirements on [orion](https://github.com/brycx/orion ) to permit the latest version.
- [Release notes](https://github.com/brycx/orion/releases )
- [Commits](https://github.com/brycx/orion/commits/0.12.0 )
Signed-off-by: dependabot[bot] <support@dependabot.com >
2018-12-31 07:00:19 +01:00
Benjamin Saunders
4bbe0d825f
Delete dead code
2018-12-30 23:03:56 +01:00
Benjamin Saunders
0abbff72a9
Move SocketAddr normalization into Endpoint
...
This reduces the amount of conversion necessary.
2018-12-30 23:03:56 +01:00
Benjamin Saunders
6f5dd2dc4d
Fix Linux IPv4 UDP socket setup
2018-12-30 23:03:56 +01:00
Dirkjan Ochtman
af66816f06
Add CI for macOS
2018-12-30 22:26:20 +01:00
Benjamin Saunders
97301a93a4
Extract in-flight statistics struct
...
This makes it easier to manipulate while borrowing a space.
2018-12-30 21:56:15 +01:00
Benjamin Saunders
cf5ec4aff4
Set ALPN ID in interop tool
...
ngtcp2 unconditionally pretends we negotiated hq-17, which confuses
rustls if we didn't.
2018-12-30 21:56:15 +01:00