Benjamin Saunders
af4c4caeb2
Fix racy Endpoint::wait_idle
2023-01-08 06:37:22 +01:00
XOR-op
c88a6ecd7b
reexport whole quinn-udp module
2023-01-07 21:59:19 +01:00
XOR-op
50a474d7ab
reexport udp::{RecvMeta, UdpState} for AsyncUdpSocket
2023-01-07 21:59:19 +01:00
Benjamin Saunders
49cdfa553e
Route logs via log crate by default when tracing isn't used
2022-12-24 21:37:50 +01:00
Dirkjan Ochtman
2c6aa43610
Apply clippy suggestions from Rust 1.66
2022-12-19 10:13:01 -08:00
StygianLightning
0d366990f1
Removed an obsolete lint control annotation.
...
The lint issue that made the workaround necessary has been resolved.
2022-12-10 11:07:03 -08:00
StygianLightning
b170993bd1
Fixed a typo.
2022-12-10 11:07:03 -08:00
Benjamin Saunders
7d1b280f55
Bump versions
2022-12-05 22:37:28 +01:00
lucifer9
166e0fb60a
Fix build on FreeBSD, add CI test for FreeBSD, set IPV6_RECVPKTINFO on FreeBSD & macOS, set IP_RECVDSTADDR on FreeBSD and macOS only for IPv4, fix a warning about unused state: &UdpState, allow different types for the 3rd argument to sendmmsg()/recvmmsg()
2022-12-02 02:33:38 -08:00
Brandon Williams
9f50319421
send-stream: rely on cleaning up waker for Stopped in SendStream Drop impl
2022-11-29 15:26:15 -08:00
Brandon Williams
70ef5039e9
recv-stream: clean up any previously register wakers when RecvStream is dropped
2022-11-29 15:26:15 -08:00
Brandon Williams
f6ae67e2fa
send-stream: clean up any previously register wakers when SendStream is dropped
2022-11-29 15:26:15 -08:00
Brandon Williams
7ba0acb8da
send-stream: unregister waker when Stopped is dropped
2022-11-29 11:35:34 -08:00
Brandon Williams
1122c627c3
connection: wake 'stopped' streams on stream finish events
...
In the event that the SendStream Stopped future is polled once and then dropped
before the remote side has stopped the stream, and instead the stream
has been finished, the waker registered in the connection stopped map is
never removed and is effectively "leaked" until the connection is
closed. This can lead to a large amount of memory being retained when a
connection is very long lived and many streams are used over the life of
that connection.
2022-11-29 11:35:34 -08:00
Benjamin Saunders
cfb7a067ee
Bump version
2022-11-28 20:27:12 -08:00
Benjamin Saunders
478445ea71
Fix panic on concurrent read_datagram completion
...
The previous logic assumed that a datagram must be available if the
future was notified, but this might not be the case if e.g. two
futures are concurrently waiting for datagrams, but only one datagram
has been received, since we use notify_waiters to wake all waiting
futures to be robust in the face of cancellation.
2022-11-28 20:27:12 -08:00
Benjamin Saunders
fb2af0816e
Update description to reflect abstract runtime support
2022-11-22 19:34:52 -08:00
Benjamin Saunders
1d390af2fa
Bump versions for 0.9.1 release
2022-11-15 06:50:40 +01:00
Benjamin Saunders
2dca78766a
Less confusing Notify name for local stream opening
...
Remotely-initiated streams can be said to be opened as well.
2022-11-14 01:18:03 -08:00
Benjamin Saunders
d73fcfd4a0
Fix stream open futures sometimes waiting on the wrong notification
...
After a spurious wakeup, `Connection::open_uni` and `open_bi` would
switch to waiting for notifications about incoming streams, rather
than the intended notification about new stream ID flow control
budget. This was probably a copy-paste error from `poll_accept`.
2022-11-14 01:18:03 -08:00
Benjamin Saunders
641114a69d
Fix clippy lints
2022-11-14 01:17:22 -08:00
Dirkjan Ochtman
28a2c8052c
quinn: bump dependency on tokio to 1.13
...
We now use `UdpSocket::poll_send_ready()` and `UdpSocket::poll_recv_ready()`.
2022-10-26 16:10:29 -07:00
Dirkjan Ochtman
57bd7643e7
quinn-udp: bump version to 0.3
2022-10-26 16:10:29 -07:00
Benjamin Saunders
4c4da517fe
Bump version numbers for 0.9 release
2022-10-26 12:50:12 +02:00
Benjamin Saunders
00fb34759d
Move idle Notify handle into endpoint Shared
2022-10-23 08:18:42 +02:00
Benjamin Saunders
7d51d2e57e
Remove Incoming stream in favor of Endpoint::accept
2022-10-23 08:18:42 +02:00
Benjamin Saunders
b8857397ff
Introduce Endpoint::accept method for better ergonomics
2022-10-23 08:18:42 +02:00
Benjamin Saunders
feca8abebf
Accessor for free datagram send buffer space
...
Useful for applications which can adapt to variable bandwidth on the
fly, such as video streaming.
2022-10-20 09:26:20 +02:00
Benjamin Saunders
4c5d7d0894
Expose a getter for the close reason
2022-10-20 09:25:27 +02:00
dependabot[bot]
f86dd7596d
Update rcgen requirement from 0.9.1 to 0.10.0
...
Updates the requirements on [rcgen](https://github.com/est31/rcgen ) to permit the latest version.
- [Release notes](https://github.com/est31/rcgen/releases )
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md )
- [Commits](https://github.com/est31/rcgen/compare/v0.9.1...v0.10.0 )
---
updated-dependencies:
- dependency-name: rcgen
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-10-03 15:29:41 +02:00
Benjamin Saunders
6e4bcbb2fc
Drop NewConnection in favor of simpler API
2022-09-27 11:08:26 +02:00
Benjamin Saunders
dce1794bbc
Revert Connection::open_{uni, bi} to named 'static futures
2022-09-27 11:08:26 +02:00
Benjamin Saunders
6ba0051472
Introduce Connection::{accept_{uni, bi}, read_datagram}
...
Provides a more natural alternative to the streams in NewConnection
2022-09-27 11:08:26 +02:00
Benjamin Saunders
3e2935ff5f
Extract Notify handles from inside connection mutex
...
Reduces indirection and allows us to avoid cloning an `Arc` each time
one of the relevant events is waited on, and opens the door to
handwritten futures built on them.
2022-09-27 11:08:26 +02:00
Benjamin Saunders
5fa3581edb
Fix missing wakeups on large stream credit increase
2022-09-27 11:08:26 +02:00
Benjamin Saunders
ebad48d34f
Clarify test diagnostic
2022-09-17 20:25:02 +02:00
Benjamin Saunders
558e904414
Fix spurious test panic
2022-09-17 20:25:02 +02:00
Benjamin Saunders
8083a28100
Remove double indirection around Runtime
2022-09-17 20:25:02 +02:00
Benjamin Saunders
471848634b
Drop unnecessary manual Clone impl
2022-09-17 20:25:02 +02:00
Benjamin Saunders
332eb605f5
Bump MSRV to 1.59
2022-08-28 07:04:56 +02:00
Benjamin Saunders
b01ac88806
Define Connection::closed helper to await connection termination
...
This has come up several times, most recently in
https://github.com/quinn-rs/quinn/issues/1395 . While equivalent
behavior is already possible by waiting for e.g. `IncomingUniStreams`
to yield `Err` or `None`, this is substantially more discoverable.
2022-08-16 19:05:23 +02:00
Lijun Wang
24ec886905
Fixed doc link
2022-08-01 10:54:46 +02:00
Lijun Wang
1f5977450a
Doc fix
2022-08-01 10:54:46 +02:00
Lijun Wang
1274832787
remove mut
2022-08-01 10:54:46 +02:00
Lijun Wang
1cfa19284a
Open set_receive_window in public Connection class
2022-08-01 10:54:46 +02:00
Benjamin Saunders
ffa85f2c43
Abstract out async runtime
...
Co-authored-by: Yureka <yuka@yuka.dev >
2022-07-05 09:06:31 -07:00
Benjamin Saunders
9f948d5a5f
Factor async handling out of quinn-udp
2022-07-05 09:06:31 -07:00
Benjamin Saunders
16ed21b0cc
Bump edition on quinn and quinn-proto
2022-07-05 09:06:31 -07:00
Benjamin Saunders
fe93a68108
Replace structopt with its successor, clap 3
2022-07-03 21:02:33 +02:00
Benjamin Saunders
3bc6bdae89
Bump MSRV to 1.57
...
This is >6 months old and should address the CI failure.
2022-07-03 08:07:54 +02:00