• v0.6.2 5da05a519d

    mward4 released this 2026-06-09 16:45:11 -04:00 | 10 commits to main since this release

    Full-codebase review and polish pass — every loose end finished or removed, the serving hot paths optimized, and the dependency tree refreshed for reliability. No behavior changes for working clients; legacy clients get clearer protocol errors.

    Performance (per-boot hot paths)

    • Zero-copy iPXE serving — TFTP and HTTP now serve the embedded boot binaries straight from the binary's rodata instead of heap-copying ~1 MiB per request.
    • PXE menu background cached — the composited console --picture PNG was re-encoded (~50–200 ms) for every booting client; it's now composed once per logo change.
    • bcrypt off the async runtime — boot-password checks and login/setup/rotation run on the blocking pool, so CPU-heavy auth can't stall ISO streaming to imaging machines.
    • Per-range-request overhead halved on /iso/… (single registry lock + clone instead of two), O(1) DHCP driver-escalation bookkeeping, one-allocation MAC formatting, and a fixed introspection buffer that no longer forces a guaranteed 32 MiB realloc.

    Correctness & legacy-client polish

    • TFTP speaks up instead of going silent: write requests get a proper Illegal TFTP operation error and non-octet (netascii) transfers a clear only octet mode is supported — legacy clients fail fast with a reason instead of retrying into a timeout.
    • HTTP Range handling is now RFC 7233-correct: malformed Range: headers are ignored (200 + full body) instead of answered with a bogus 206.

    Cleanup

    • Removed the never-enforced mac_allowlist/subnet_allowlist config fields (line-of-sight serving is the design; nothing should advertise access control that doesn't exist).
    • Removed dead client-registry API and never-emitted event variants; rustfmt sweep over six drifted files.

    Dependencies

    • dhcproto 0.12 → 0.15 — drops the deprecated/unmaintained trust-dns-proto from the tree (replaced by hickory-proto) and picks up three releases of DHCP option coverage.
    • socket2 0.6 (dedupes the tree), bcrypt 0.19, tower-http 0.6.11 (sheds iri-string), tokio 1.52.3 / hyper 1.10 lockfile refresh; dead nom workspace entry deleted.

    Validation

    cargo fmt clean · clippy (pedantic profile) clean · all 272 workspace tests green on the new dependency stack · WebUI JS syntax-checked.

    Image

    docker pull gitea.milesward.dev/mward4/openpxe:0.6.2
    

    :0.6.2 / :latest — digest sha256:53f33a65129d1b49106f5b376c0517bcbee117fe743e22e8497a7c2f55563b99 (linux/amd64).

    Downloads