Nils Andreas Svee
6c5972aa58
test(client): refactor probes and replies tests into submodules
...
Split the monolithic `probes_replies.rs` file into logical submodules and expose internal packet processing methods to improve test maintainability and coverage of boundary conditions.
2026-05-17 14:54:59 +07:00
Nils Andreas Svee
bed877760e
test: prune client tests that assert private implementation details
2026-05-17 14:48:45 +07:00
Nils Andreas Svee
39d414d588
test: consolidate formatter and hub policy cases
2026-05-17 00:39:23 +07:00
Nils Andreas Svee
00fd0ebb15
test: consolidate duplicate CLI and client config cases
2026-05-17 00:34:18 +07:00
Nils Andreas Svee
ddd420cc21
test: consolidate and prune implementation-coupled tests
2026-05-17 00:28:05 +07:00
Nils Andreas Svee
a7288cc612
test(client): extract backend smoke tests into a dedicated module
2026-05-17 00:17:10 +07:00
Nils Andreas Svee
fdcdb3b9d7
test(client): remove implementation-coupled client tests
2026-05-16 23:41:11 +07:00
Nils Andreas Svee
bd9ed7eb88
test(client): trim implementation-coupled probe tests
2026-05-16 23:41:11 +07:00
Nils Andreas Svee
72470bd196
test(client): update and expand DSCP negotiation test coverage
2026-05-13 00:37:54 +07:00
Nils Andreas Svee
fec14b2c7c
feat(session): restrict DSCP negotiation to allow only disabling (reset to 0)
2026-05-13 00:37:53 +07:00
Nils Andreas Svee
3dfca1ab5e
refactor(session): implement Display and add documentation for NegotiationRestriction
2026-05-13 00:37:45 +07:00
Nils Andreas Svee
cbe91f2fe0
feat(client): track and report specific negotiation restrictions
...
Replace basic validation with a detailed negotiation process that records specific parameter changes. This allows the client to provide better feedback when a server restricts requested session parameters like duration or DSCP.
2026-05-12 15:18:02 +07:00
Nils Andreas Svee
a7e10358fd
test(client): use fallible packet length helpers in integration tests
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
4549d95d0a
test(client): update test helpers to handle fallible packet length calculations
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
1b79c864d4
refactor(client): propagate ProtoError from recv_buffer_size calculation
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
b508a94198
build: bump version to 0.2.0
2026-05-11 15:11:58 +07:00
Nils Andreas Svee
7ad83ca1f6
refactor: remove logical_seq from client events, session tracking and stats usage
...
It was an attempt at handling integer wraparound more cleanly keeping in mind that we have a continuous mode,
and so we can more easily reach seq > u32::MAX
However after running the numbers, if we run with a interval of 10ms, it's still gonna take ~497 days before we hit integer overflow, so for now it doesn't seem worth to have this extra logic to handle something that'll in 99.9% of cases be purely an edge case
Keeping in mind autorate usage, in sqm-autorate-rust each send loop is 500 ms by default, and the sleep is then 500 ms / 5 reflectors, so our interval is 100 ms. that means it'll take 4970 days or ~13.6 years to reach the limit. Not worth dealing with IMO
2026-05-11 14:56:07 +07:00
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