Nils Andreas Svee
21bc7805f7
refactor: mark public enums as non-exhaustive to improve API stability
...
Apply the #[non-exhaustive] attribute to ClientError and WarningKind to prevent breaking changes when adding new variants. Handle the catch-all case in the CLI formatter.
2026-05-11 12:33:40 +07:00
Nils Andreas Svee
8d1d0f50de
style(client): reformat imports in test files
...
Collapse multi-line import statements into single lines to improve code legibility and maintain consistent formatting across test suites.
2026-05-11 10:13:06 +07:00
Nils Andreas Svee
d6c6e60742
refactor(client): expose len methods for map structures
2026-05-11 10:10:24 +07:00
Nils Andreas Svee
5f6bff5dcb
feat(client): add timestamp to ClientEvent::Warning
...
Include a timestamp when reporting warnings to allow consumers like the machine-readable formatter to provide temporal context for troubleshooting.
2026-05-11 09:50:16 +07:00
Nils Andreas Svee
1a04f44bb5
refactor(client): remove redundant timestamp parameter from poll_timeouts
...
Use internal monotonic time by default and introduce poll_timeouts_at for callers requiring a specific sampled Instant. This simplifies the API for standard usage while maintaining flexibility for external event loops.
2026-05-11 09:33:55 +07:00
Nils Andreas Svee
d8b580a19c
refactor(client): remove redundant timestamp parameter from close method
2026-05-10 23:47:46 +07:00
Nils Andreas Svee
023e85741a
refactor(client): remove redundant timestamp parameter from open method
2026-05-10 23:37:35 +07:00
Nils Andreas Svee
2258509021
chore: bump version to 0.1.1 across all crates
...
Update workspace members and dependencies to version 0.1.1 to prepare for a new release.
2026-05-10 21:17:22 +07:00
Nils Andreas Svee
44ffb9557a
fix(client): use correct socket option for IPv4 TOS reception on Linux
2026-05-10 20:56:43 +07:00
renovate[bot]
3eaaeee408
fix(deps): update socket dependencies
2026-05-10 20:56:43 +07:00
renovate[bot]
f474632f4c
fix(deps): update rust crate thiserror to 2.0.18
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
fe418d650d
refactor(client): upgrade socket2 to 0.6 and use version-specific API
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
416e5b43ba
build: add package metadata to member crates for publishing
...
Include descriptions, keywords, categories, and workspace-inherited fields (repository, homepage, readme) to prepare crates for distribution on crates.io.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
2368e0b3ee
build: centralize internal dependencies using workspace inheritance
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
c3f2a524a3
fix(client): avoid lossy timing casts
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
a41a1e319d
fix(client): handle close-flagged echo replies
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
48f6cb80ed
fix(proto): require exact echo reply packet length
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
ef18bb549c
fix(client): report counter overflows clearly
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
b8d16f3d18
test(client): cover timing validation boundaries
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
2c75e08e30
fix(client): reject invalid timing parameters earlier
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
8374a51054
fix(client): reject runtime-invalid negotiated dscp
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
9977d26a43
perf(client): reuse receive buffer
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
be2f43b07a
chore(client): polish managed runner ergonomics
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
afb20b6625
fix(client): retry real backend startup on port races
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
33e2b663b8
fix(client): report read-timeout restore failures
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
07d14328d3
fix(client): clarify duration negotiation rejection
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
860594ebec
fix(client): check probe scheduling arithmetic
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
b53e650c53
fix(client): handle sequence wrap in reply ordering
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
294d97a13d
fix(client): reject invalid negotiated packet length
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
e3bb28c559
fix(client): validate packet length configuration
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
1a98858b7a
fix(client): harden ancillary receive parsing
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
56d3a905ed
fix(client): harden ancillary control message parsing
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
9b5bb46210
feat(client): add Linux kernel receive timestamp metadata
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
212a6e7b35
test(client): cover receive metadata on reply events
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
1c7f0ea22f
chore(client): refine unsafe code restrictions for Linux ancillary features
...
Transition from a global forbid to a scoped deny for unsafe code to accommodate necessary low-level operations in the Linux receive implementation.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
3ff6a07225
feat(client): add Linux ancillary receive metadata
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
40dc41dc39
feat(client): add receive datagram abstraction
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
25d5c1db1c
feat(client): add receive metadata scaffold
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
ed62a5c80c
test: refactor real backend support for reliable output capture
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
706e3bd1e1
test: make IPv6 socket option tests more robust
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
2a11e77cfd
chore: remove unused interop feature flag
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
d93e10ba45
feat(cli): add support for configuring outgoing TTL and hop limit
...
Introduce a `--ttl` flag to allow users to set the IPv4 TTL or IPv6 hop limit, providing control over packet lifespan and helping diagnose network topology issues.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
a80a5e2b7b
test(client): rename DSCP smoke test to reflect specific behavior
...
Update the test name to clarify that it verifies DSCP configuration during the session open and close lifecycle.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
063214b83b
feat(client): implement DSCP negotiation and socket traffic class application
...
Apply the negotiated DSCP value to the UDP socket after a successful session open and clear it before closing to support network-level quality of service. This change adds platform-specific socket option handling for IPv4 TOS and IPv6 Traffic Class.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
ab95489f20
test(client): add integration tests for packet length and server fill
...
Verify that the client correctly handles custom packet lengths and server fill negotiation to ensure protocol compliance and support for larger MTUs. Add validation to reject empty server fill strings during configuration.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
a4e2f3aef4
test(client): unify fake and real backend testing via BackendPeer
...
Introduce a BackendPeer abstraction to transparently switch between fake and real IRTT backends. This simplifies test logic by removing manual skip checks and providing a consistent interface for server lifecycle management.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
3d49f725ae
test(client): add integration tests for compatibility with real IRTT backends
...
Introduce a mechanism to run tests against a live irtt binary to verify real-world protocol interoperability, including HMAC authentication and various timestamp modes.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
797120056e
test(client): add comprehensive integration tests for HMAC authentication
...
Verify HMAC negotiation, session closure, and error handling for authenticated probes to ensure protocol security and reliability.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
3f33f630b2
test(client): split client tests into behavior-focused modules
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
48891f8b5a
refactor(client): move internal client tests to a dedicated sub-module
2026-05-10 20:56:43 +07:00