c521fab1cb
- _build_acl_block: put all blocked IPs for a service in ONE acl block instead of one block per peer — the first block's allow-all was silently granting access to every peer after the first blocked one (first-match semantics) - generate_corefile: add 'reload' plugin so SIGUSR1 triggers Corefile reload in newer CoreDNS builds (without it the signal was a no-op) - tests/test_firewall_manager.py: new tests for single merged ACL block and the reload directive - tests/e2e/api/test_peer_access_update.py: e2e tests for service_access, internet_access, and peer_access updates persisting live to iptables/CoreDNS - tests/e2e/api/test_cell_to_cell.py: e2e tests for cell-to-cell connection management, permissions API, and cross-cell service access restrictions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>