Skip to content

Prepare v0.9.0: fix build, harden inputs, add e2e + release workflow#7

Merged
gistrec merged 1 commit intomasterfrom
release-v0.9.0
May 2, 2026
Merged

Prepare v0.9.0: fix build, harden inputs, add e2e + release workflow#7
gistrec merged 1 commit intomasterfrom
release-v0.9.0

Conversation

@gistrec
Copy link
Copy Markdown
Owner

@gistrec gistrec commented May 2, 2026

Summary

Prepare v0.9.0: fix the broken make program build (linker error never
caught because CI only ran make gtests), validate CLI inputs, add a release
workflow and end-to-end tests, and bump cxxopts to v3.3.1.

Changes

  • Build. inline Utils helpers to fix duplicate-symbol link error; CI now
    builds the binary on every platform; -std=c++17 -O2 -Wall -Wextra.
  • Hardening. Validate --mtu / --port / --bind-port / --ttl /
    --type / --broadcast; cap announced file size at 4 GiB; inet_pton
    instead of inet_addr; int (not char) for Winsock options; bail out
    cleanly on FINISH without NEW_PACKET; check output.write and sendto;
    nothrow allocations; WSACleanup on every error path; fix signed overflow
    on > 2 GiB files.
  • CLI. New --bind-port (separates listen port from destination port),
    --version, --help.
  • Release. .github/workflows/release.yml builds Linux / macOS arm64 /
    Windows binaries on v* tags and attaches them to a GitHub Release.
  • Tests. tests/e2e.sh runs sender + receiver on loopback, verifies
    bit-identical round-trip for 50 KiB and 2 MiB files; CI runs it on Linux
    and macOS (skipped on Windows — Winsock SO_REUSEADDR semantics).
  • Dependencies. cxxopts v2.1.1 → v3.3.1.
  • Docs. Updated README (new params, Examples, Limitations, C++17 build
    instructions).

@gistrec gistrec merged commit 5470d94 into master May 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant