Releases: RFingAdam/VPN-AP
Releases · RFingAdam/VPN-AP
v1.4.0 - Reliability & Robustness Improvements
Reliability & Robustness Improvements
This release addresses 14 identified reliability gaps to make VPN-AP truly resilient under all conditions.
Critical Fixes
- Watchdog now recovers VPN failures — VPN drops are detected via tunnel health checks (ping verification) and auto-reconnected
- Fixed infinite escalation loop — Escalation capped at 3/day; per-service counters only reset on success
- Eliminated VPN recovery race condition — Recovery consolidated into watchdog only (removed from portal health thread)
- Atomic firewall transitions — All iptables scripts use
iptables-restorefor zero-gap rule loading - Fixed DNS redirect race condition — Firewall set up before DNS redirect removal during transitions
New Capabilities
- WiFi auto-recovery — Watchdog reconnects to last known WiFi on disconnect
- Exponential backoff — Recovery attempts use progressive delays (60s → 16min) to prevent storms
- Timeout protection — All systemctl (30s) and iptables (10s) calls wrapped with timeouts
- Hotel login auto-detection — Portal page polls for internet and shows success automatically
- Friendly WiFi error messages — Cryptic nmcli errors translated to plain English
- Prominent captive portal banner — Large banner with direct link when hotel login needed
Hardening
- systemd restart limits — Services stop restarting after repeated failures
- Management access rule dedup — Delete-before-insert pattern prevents iptables rule accumulation
- Improved log rotation — 3 history files (~4MB) instead of 1
- DNS resolution verification — dnsmasq health check verifies actual DNS resolution
- 2-of-3 ping checks — Upstream and internet checks use multiple targets for reliability
Files Changed
scripts/watchdog.sh · scripts/captive-portal-server.py · scripts/iptables-vpn-mode.sh · scripts/iptables-internet-mode.sh · scripts/iptables-captive-mode.sh · systemd/vpn-ap-watchdog.service · systemd/captive-portal.service · systemd/vpn-ap.service
Full Changelog: https://github.com/RFingAdam/VPN-AP/blob/main/CHANGELOG.md#140---2026-02-21