IPv6 bind_address wedges setup unrecoverably #4
Labels
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
carvers/silta#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
add_address(src/platform/macos.rs:107) always runsifconfig <iface> inet <addr>/32 aliasregardless of address family, andconfigured_addressesparses only IPv4inetlines. Meanwhileplan()andbind_forwardaccept non-loopback IPv6 bind addresses (bind_forward even has an IPV6_BOUND_IF path).Failure scenario: a context sets
bind_address = "fd00::2". Config load and plan accept it.sudo silta setupcreates feth99, thenifconfig feth99 inet fd00::2/32 aliasfails with an address-family error, aborting setup after the interface exists but before /etc/hosts is written; re-running setup bails "feth99 already exists". Even if the alias were added as inet6,configured_addresseswould never report it, so drift marks it permanently missing andsilta runrefuses to start, pointing at an update that cannot fix it.Fix direction: either support IPv6 end to end (inet6 alias + inet6 parsing) or reject non-IPv4 bind addresses at config load with a clear error.
Source: high-effort code review, CONFIRMED. Area: setup/platform.