Codebase-wide review pass: finish or remove every loose end, take the
safe performance wins on the serving hot paths, and refresh the
dependency tree for reliability. No behavior changes for working
clients; legacy clients get clearer protocol errors.
Finalize / cleanup:
- Remove mac_allowlist/subnet_allowlist config fields — parsed but never
enforced since introduction; the operator wants line-of-sight serving,
so the honest fix is deletion, not wiring.
- Remove dead ClientRegistry API (get, set_selected_target,
always-None selected_target field, never-emitted DhcpRequest/
HttpIsoAsset events).
- TFTP: reject WRQ with ERR_ILLEGAL_OP and non-octet modes with a clear
error instead of silent timeouts (legacy-client friendliness); fold
plan_window into cfg(test); drop the unused-constant keep-alive hack.
- rustfmt sweep over the six files with accumulated drift.
Hot-path optimizations (all behavior-preserving):
- Serve embedded iPXE binaries zero-copy (Cow over rodata) on both TFTP
and HTTP — was a ~1 MiB heap copy per boot file request.
- Cache the composited PXE boot-menu background PNG keyed on the
branding logo revision — was ~50-200 ms of image work per booting
client; now one compose per logo change.
- Run bcrypt verify/hash on the blocking pool (boot password gate,
login, setup, credential rotation) so CPU-heavy auth can't stall the
workers streaming ISO ranges to imaging machines.
- iso_raw: reuse the already-cloned IsoMeta for path resolution instead
of a second registry lock + deep clone per range request.
- DriverEscalation: amortize the TTL sweep (1-min interval + inline
staleness check) instead of an O(map) retain per DHCP packet.
- format_mac: one allocation instead of four per datagram.
- Introspection haystack sized to min(scan cap, file size) — was
guaranteed a 32 MiB realloc on every large-ISO probe.
Robustness:
- parse_range: malformed Range headers are now ignored per RFC 7233
(200 + full body) instead of answered with a bogus 206.
Dependencies:
- dhcproto 0.12 -> 0.15: drops the deprecated/unmaintained
trust-dns-proto from the tree (hickory-proto), three releases of DHCP
option coverage. Compiles + passes the full suite unchanged.
- socket2 0.6 (dedupes 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 removed; requested versions synced to shipped reality.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>