diff --git a/wireguard-monitor/wireguard-reconnect b/wireguard-monitor/wireguard-reconnect index 98eab1e..2f20ed2 100755 --- a/wireguard-monitor/wireguard-reconnect +++ b/wireguard-monitor/wireguard-reconnect @@ -13,9 +13,7 @@ FAILED_ATTEMPTS=0 function is_host_reachable() { for i in {1..5}; do - echo "Sending ping..." if ping -c 1 "$1" > /dev/null; then - echo "Ping received" return 0 fi echo "WARNING: Failed to ping $GATEWAY_IP" @@ -32,6 +30,19 @@ while : ; do if ! is_host_reachable "$GATEWAY_IP" > /dev/null; then echo "ERROR: ($GATEWAY_IP) is not reachable. Restarting interface $WG_INTERFACE" + + FAILED_ATTEMPTS=$(( FAILED_ATTEMPTS + 1)) + if (( FAILED_ATTEMPTS > RECONNECT_ATTEMPTS )); then + echo "WARNING: Failed $FAILED_ATTEMPTS times to recover connection..." + if $REBOOT_AFTER_FAILED_ATTEMPTS; then + echo "INFO: Rebooting..." + reboot + else + echo "INFO: Will continue trying..." + FAILED_ATTEMPTS=$(( 0 )) + fi + fi + wg-quick down "$WG_INTERFACE" echo "INFO: Stopped WG interface $WG_INTERFACE" sleep "$RECONNECT_DELAY" @@ -40,18 +51,6 @@ while : ; do else echo "INFO: Started WG interface $WG_INTERFACE" fi - - FAILED_ATTEMPTS=$(( FAILED_ATTEMPTS + 1)) - if (( FAILED_ATTEMPTS > RECONNECT_ATTEMPTS )); then - echo "Failed $FAILED_ATTEMPTS times to recover connection..." - if $REBOOT_AFTER_FAILED_ATTEMPTS; then - echo "Rebooting..." - reboot - else - echo "Will continue trying..." - FAILED_ATTEMPTS=$(( 0 )) - fi - fi fi sleep "$PING_DELAY_S"