#!/bin/sh # CDN Cache Offline Mode - Auto-detect WAN connectivity # Enables offline mode (serve stale) when WAN goes down # Disables offline mode when WAN comes back up # Only handle WAN interface events [ "$INTERFACE" = "wan" ] || [ "$INTERFACE" = "wan6" ] || exit 0 # Check if API failover is enabled api_enabled=$(uci -q get cdn-cache.api_failover.enabled) [ "$api_enabled" = "1" ] || exit 0 case "$ACTION" in ifdown) # WAN went down - enable offline mode logger -t cdn-cache "WAN down ($INTERFACE) - enabling offline mode" uci set cdn-cache.api_failover.offline_mode='1' uci commit cdn-cache # Reload Squid to apply offline mode if [ -x /etc/init.d/cdn-cache ]; then /etc/init.d/cdn-cache reload 2>/dev/null & fi ;; ifup) # WAN came back up - disable offline mode logger -t cdn-cache "WAN up ($INTERFACE) - disabling offline mode" uci set cdn-cache.api_failover.offline_mode='0' uci commit cdn-cache # Reload Squid to disable offline mode if [ -x /etc/init.d/cdn-cache ]; then /etc/init.d/cdn-cache reload 2>/dev/null & fi ;; esac exit 0