Commit Graph

4079 Commits

Author SHA1 Message Date
Sebastian Leisinger c09ff21012 Fix dropping oversized unblocks datagram senders
When dropping oversized datagrams after an MTU change, notify
callers of `send_datagram_wait` that are waiting for
space in the send buffer.

Tracking issue: https://github.com/quinn-rs/quinn/issues/2456
2026-01-05 21:16:51 +00:00
Thomas Eizinger ab9da17120 fix(windows): use effective_segment_size
Similar to older Linux kernels, Windows doesn't appear to like being
told to do GSO if it is not necessary.
2026-01-04 15:56:40 +00:00
Thomas Eizinger 99abc2b3e2 refactor: introduce Transmit::effective_segment_size 2026-01-04 15:56:40 +00:00
Dirkjan Ochtman 0dcf9d9db7 Warn on clippy::or_fun_call 2025-12-29 15:36:50 +00:00
Dirkjan Ochtman c6d3b7545e Warn on clippy::manual_let_else 2025-12-29 15:36:50 +00:00
Dirkjan Ochtman f5a5181c2b Warn on unnameable_types 2025-12-29 15:36:50 +00:00
Dirkjan Ochtman e0a3aaac2e Warn on elided_lifetimes_in_paths 2025-12-29 15:36:50 +00:00
Dirkjan Ochtman db67320e12 Hoist lint configuration to the workspace level 2025-12-29 15:36:50 +00:00
dependabot[bot] bb0240c376 build(deps): bump serde_json from 1.0.146 to 1.0.148
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.146 to 1.0.148.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.146...v1.0.148)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-version: 1.0.148
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-29 13:36:48 +00:00
Lars Eggert 98aadf2b32 refactor(quinn-udp): make decode_recv generic over MsgHdr
Replace conditional compilation on the `hdr` parameter with a generic type bound `M: cmsg::MsgHdr<ControlMessage = libc::cmsghdr>`. This enables `decode_recv` to work with both `libc::msghdr` and `msghdr_x` message types.

Broken out of #2463 as suggested by @djc.
2025-12-28 08:33:23 +00:00
dependabot[bot] 1713c04012 build(deps): bump serde_json from 1.0.145 to 1.0.146
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.145 to 1.0.146.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.145...v1.0.146)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-version: 1.0.146
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 20:54:24 +00:00
朝倉水希 e57e97427d chore(quinn-udp): use consts from libc 2025-12-20 08:37:30 +00:00
dependabot[bot] bb359ccd7d build(deps): bump rcgen from 0.14.5 to 0.14.6
Bumps [rcgen](https://github.com/rustls/rcgen) from 0.14.5 to 0.14.6.
- [Release notes](https://github.com/rustls/rcgen/releases)
- [Commits](https://github.com/rustls/rcgen/compare/v0.14.5...v0.14.6)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-version: 0.14.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 13:39:11 +00:00
Liu Xiaoyi e58b3df9d6 quinn: re-export InvalidCid from quinn-proto 2025-12-15 09:05:31 +00:00
Lars Eggert 6be19194ae chore: Fix unnecessary_unwrap clippy
```
warning: called `unwrap` on `self.exit_probe_rtt_at` after checking its variant with `is_none`
   --> quinn-proto/src/congestion/bbr/mod.rs:247:48
    |
238 |             if self.exit_probe_rtt_at.is_none() {
    |             ----------------------------------- help: try: `if let Some(<item>) = self.exit_probe_rtt_at`
...
247 |             } else if is_round_start && now >= self.exit_probe_rtt_at.unwrap() {
    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap
    = note: `#[warn(clippy::unnecessary_unwrap)]` on by default
```
2025-12-09 13:24:33 +00:00
dependabot[bot] 4de6d2cefc build(deps): bump criterion from 0.7.0 to 0.8.1
Bumps [criterion](https://github.com/criterion-rs/criterion.rs) from 0.7.0 to 0.8.1.
- [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
- [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/criterion-rs/criterion.rs/compare/criterion-plot-v0.7.0...criterion-v0.8.1)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 13:17:04 +00:00
dependabot[bot] 2b51fa7203 build(deps): bump log from 0.4.28 to 0.4.29
Bumps [log](https://github.com/rust-lang/log) from 0.4.28 to 0.4.29.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.28...0.4.29)

---
updated-dependencies:
- dependency-name: log
  dependency-version: 0.4.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 13:12:51 +00:00
Dirkjan Ochtman 67fcd79020 quinn: remove indirection in connection initialization 2025-12-04 06:19:54 +00:00
Dirkjan Ochtman 4e3711f65a quinn: import more types 2025-12-04 06:10:02 +00:00
Dirkjan Ochtman c5ab01a75e proto: drop unused From impl 2025-12-04 06:10:02 +00:00
Dirkjan Ochtman 98e2c26325 proto: use new constructor where possible 2025-12-04 06:10:02 +00:00
Dirkjan Ochtman a1bdfd6113 Take semver-compatible dependency updates 2025-12-04 06:10:02 +00:00
Michael Neumann 8bf6825da7 Fix quinn-udp on DragonFly BSD
- There is no libc::IP_RECVTOST defined for DragonFly. We do support it
  in the kernel, but it's not yet defined in libc.

- There is no recvmmsg(2) support in DragonFly kernel.
2025-11-29 07:48:23 +00:00
Mateusz Szczygieł 67ededbc9e Add an option to retrieve TLS errors
Signed-off-by: Mateusz Szczygieł <mateusz.szczygiel@nordsec.com>
2025-11-26 09:55:39 +00:00
Marcus Medom Ryding 5334839f95 Track handshake confirmation 2025-11-26 09:31:13 +00:00
Dirkjan Ochtman f90254a410 quinn: statically hide default_runtime() if unavailable 2025-11-26 05:59:25 +00:00
dependabot[bot] d2cdd65ca4 build(deps): bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 14:24:51 +00:00
Dirkjan Ochtman 9596c7a261 quinn: hide implicit feature for optional smol dependency 2025-11-18 08:26:03 +00:00
Dirkjan Ochtman 1ffd9cd83f quinn: simplify cfg guards for runtime-smol 2025-11-18 08:26:03 +00:00
Dirkjan Ochtman 4c17321999 quinn: rename async_io module to smol 2025-11-18 08:26:03 +00:00
Dirkjan Ochtman 42bc17f812 quinn: move runtime module to be closer to its child modules 2025-11-18 08:26:03 +00:00
dependabot[bot] ac22065c29 build(deps): bump bytes from 1.10.1 to 1.11.0
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.10.1...v1.11.0)

---
updated-dependencies:
- dependency-name: bytes
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 13:31:37 +00:00
Cathal Mullan 35cefdd003 Bump MSRV to 1.80, remove once_cell and lazy_static deps 2025-11-14 18:29:03 +00:00
dependabot[bot] 7fc33f4143 build(deps): bump hex-literal from 1.0.0 to 1.1.0
Bumps [hex-literal](https://github.com/RustCrypto/utils) from 1.0.0 to 1.1.0.
- [Commits](https://github.com/RustCrypto/utils/compare/hex-literal-v1.0.0...hex-literal-v1.1.0)

---
updated-dependencies:
- dependency-name: hex-literal
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 09:17:23 +00:00
dependabot[bot] 425b8b45f6 build(deps): bump console-subscriber from 0.4.1 to 0.5.0
Bumps [console-subscriber](https://github.com/tokio-rs/console) from 0.4.1 to 0.5.0.
- [Release notes](https://github.com/tokio-rs/console/releases)
- [Changelog](https://github.com/tokio-rs/console/blob/main/release-plz.toml)
- [Commits](https://github.com/tokio-rs/console/compare/console-subscriber-v0.4.1...console-subscriber-v0.5.0)

---
updated-dependencies:
- dependency-name: console-subscriber
  dependency-version: 0.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 09:16:51 +00:00
Philipp Krüger b699e5c815 Avoid underflow panic in packet loss Instant calculations 2025-11-11 07:27:00 +00:00
Philipp Krüger 4f7f3e7d82 Remove instant_saturating_sub fn in favor of Instant::saturating_duration_since 2025-11-11 07:27:00 +00:00
Philipp Krüger 8c0f2a21e9 Refactor QlogSink::emit_packet_lost to take loss_delay instead of lost_send_time 2025-11-11 07:27:00 +00:00
Dirkjan Ochtman 84d392c23a Apply suggestions from clippy 1.91 2025-11-03 12:04:22 +01:00
Dirkjan Ochtman eee334dff6 ci: drop netbsd testing 2025-10-30 05:36:24 +00:00
Dirkjan Ochtman 994ab35b9f ci: pin wasm-bindgen-cli to match lockfile 2025-10-30 05:36:24 +00:00
Dirkjan Ochtman 8141831760 Take semver-compatible updates 2025-10-30 05:36:24 +00:00
dependabot[bot] 491b8b5deb build(deps): bump rustls-platform-verifier from 0.6.1 to 0.6.2
Bumps [rustls-platform-verifier](https://github.com/rustls/rustls-platform-verifier) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/rustls/rustls-platform-verifier/releases)
- [Changelog](https://github.com/rustls/rustls-platform-verifier/blob/main/CHANGELOG)
- [Commits](https://github.com/rustls/rustls-platform-verifier/compare/v/0.6.1...v/0.6.2)

---
updated-dependencies:
- dependency-name: rustls-platform-verifier
  dependency-version: 0.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 14:09:05 +00:00
ice-user 0a6635d6b7 fix(pacing): allow ±0ns tolerance in computes_pause_correctly test on i386
-Used Duration::abs_diff() instead of manual difference for cleaner and more robust duration comparison.
-added inline formatting as required.
2025-10-27 12:08:05 +00:00
dependabot[bot] fc5e219fd9 build(deps): bump actions/setup-node from 4 to 6
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 14:04:18 +00:00
dependabot[bot] 1e44c69f86 build(deps): bump getrandom from 0.3.3 to 0.3.4
Bumps [getrandom](https://github.com/rust-random/getrandom) from 0.3.3 to 0.3.4.
- [Release notes](https://github.com/rust-random/getrandom/releases)
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/getrandom/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: getrandom
  dependency-version: 0.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 13:53:59 +00:00
David Emett e05a8e5a7e Relax MTU discovery state assertion
While we will never start probing before the connection has been
established, it is possible for black hole detection to trigger, which
will put MTU discovery into the Complete state.
2025-10-11 18:09:14 +00:00
David Emett a43918cfed Fix some comparisons in the black hole detector
Lost packets with size exactly matching the minimum MTU should not be
treated as suspicious; by definition the MTU will never be reduced below
this.

Similarly, lost packets with size exactly matching a more recent
successfully transmitted packet should not be treated as suspicious.
2025-10-11 18:09:14 +00:00
Pablo Sichert 719cc78866 Use saturating_mul when calculating congestion_period to not panic on overflow 2025-10-11 14:41:24 +00:00
Fabien Savy 531ca90ec9 spurious loss detection and recovery 2025-10-07 21:59:04 +00:00