Skip to content

Releases: RFingAdam/VPN-AP

v1.4.0 - Reliability & Robustness Improvements

21 Feb 06:37
ba23c3c

Choose a tag to compare

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-restore for 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