Update static routing script to actually add the routes.

This commit is contained in:
Michael Tremer
2011-07-05 18:57:33 +02:00
parent bfd77eaf70
commit aba9ac599f

View File

@@ -6,34 +6,62 @@
function init_table() {
# Check if table does already exist. If not we add it.
if (ip rule | grep -qeE static >/dev/null 2>&1); then
if (ip rule | grep -q "static" >/dev/null 2>&1); then
return
fi
ip rule add table static
}
function create_all_routes() {
local file=${1}
shift
# Remote all routes.
ip route flush table static >/dev/null 2>&1
local status
local network
local gateway
local remark
# Read all routes from the configuration file and add the enabled ones
# immediately.
while IFS=, read status network gateway remark; do
[ "${status}" = "on" ] || continue
if [ -z "${network}" -o -z "${gateway}" ]; then
# Silently skipping invalid routes.
continue
fi
ip route add ${network} via ${gateway} table static
done < ${file}
}
CONFIGFILE="/var/ipfire/main/routing"
case "${1}" in
start)
boot_mesg "Adding static routes..."
boot_mesg "Adding static routes..."
# First, initialize the table
init_table
init_table
### ADD ALL ROUTES
# Add all routes
create_all_routes ${CONFIGFILE}
evaluate_retval
;;
;;
stop)
boot_mesg "Removing static routes..."
ip route flush table static >/dev/null 2>&1
stop)
boot_mesg "Removing static routes..."
ip route flush table static >/dev/null 2>&1
evaluate_retval
;;
;;
*)
echo "Usage: ${0} {start|stop}"
exit 1
;;
*)
echo "Usage: ${0} {start|stop}"
exit 1
;;
esac