puppet-ff_gw/files/usr/local/bin/check_gateway

52 lines
1.4 KiB
Plaintext
Raw Normal View History

2014-03-31 23:18:29 +02:00
#!/bin/bash
INTERFACE=mullvad # Set to name of VPN interface
2014-03-31 23:18:29 +02:00
shopt -s nullglob
# Test whether gateway is connected to the outer world via VPN
2014-03-31 23:18:29 +02:00
ping -q -I $INTERFACE 8.8.8.8 -c 4 -i 1 -W 5 >/dev/null 2>&1
if test $? -eq 0; then
NEW_STATE=server
else
NEW_STATE=off
fi
# Iterate through network interfaces in sys file system
2014-03-31 23:18:29 +02:00
for MESH in /sys/class/net/*/mesh; do
# Check whether gateway modus needs to be changed
2014-03-31 23:18:29 +02:00
OLD_STATE="$(cat $MESH/gw_mode)"
[ "$OLD_STATE" == "$NEW_STATE" ] && continue
echo $NEW_STATE > $MESH/gw_mode
echo 54MBit/54MBit > $MESH/gw_bandwidth
logger "batman gateway mode changed to $NEW_STATE"
2014-03-31 23:18:29 +02:00
# Check whether gateway modus has been deactivated
if [ "$NEW_STATE" == "off" ]; then
# Shutdown DHCP server to prevent renewal of leases
/usr/sbin/service isc-dhcp-server stop
fi
2014-03-31 23:18:29 +02:00
# Check whether gateway modus has been activated
if [ "$NEW_STATE" == "server" ]; then
# Restart DHCP server
/usr/sbin/service isc-dhcp-server start
fi
exit 0
done
if [ "$NEW_STATE" == "server" ]; then
/usr/sbin/service isc-dhcp-server status 2>&1> /dev/null
if [[ $? -ne 0 ]]
then
/usr/sbin/service isc-dhcp-server restart
fi
fi
if [ "$NEW_STATE" == "off" ]; then
/usr/sbin/service isc-dhcp-server status 2>&1> /dev/null
if [[ $? -eq 0 ]]
then
/usr/sbin/service isc-dhcp-server stop
fi
fi