#!/bin/sh if [ x"$new_rfc3442_classless_static_routes" != x"" ]; then if [ x"$reason" == x"BOUND" -o x"$reason" == x"REBOOT" ]; then rfc_routes=($new_rfc3442_classless_static_routes) for(( i=0; i < ${#rfc_routes[@]}; )); do net_length=${rfc_routes[$i]} ((i++)) net_address=(0 0 0 0) for(( j=0; j < $[$net_length / 8 + ($net_length % 8 ? 1 : 0)]; j++, i++)); do net_address[$j]=${rfc_routes[$i]} done gateway=(0 0 0 0) for (( j=0; j < 4; j++, i++ )); do gateway[$j]=${rfc_routes[$i]} done old_IFS="$IFS" IFS='.' if [[ -n "$(which ip 2>/dev/null)" ]]; then ip route replace "${net_address[*]}/$net_length" via "${gateway[*]}" else if [[ -n "$(which route 2>/dev/null)" ]]; then if [ x"$net_length" == x"32" ]; then route add -host "${net_address[*]}" gw "${gateway[*]}" else route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}" fi fi fi IFS="$old_IFS" done fi fi if [ x"$new_ms_classless_static_routes" != x"" ]; then if [ x"$reason" == x"BOUND" -o x"$reason" == x"REBOOT" ]; then ms_routes=($new_ms_classless_static_routes) for(( i=0; i < ${#ms_routes[@]}; )); do net_length=${ms_routes[$i]} ((i++)) net_address=(0 0 0 0) for(( j=0; j < $[$net_length / 8 + ($net_length % 8 ? 1 : 0)]; j++, i++)); do net_address[$j]=${ms_routes[$i]} done gateway=(0 0 0 0) for (( j=0; j < 4; j++, i++ )); do gateway[$j]=${ms_routes[$i]} done old_IFS="$IFS" IFS='.' if [[ -n "$(which ip 2>/dev/null)" ]]; then ip route replace "${net_address[*]}/$net_length" via "${gateway[*]}" else if [[ -n "$(which route 2>/dev/null)" ]]; then if [ x"$net_length" == x"32" ]; then route add -host "${net_address[*]}" gw "${gateway[*]}" else route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}" fi fi fi IFS="$old_IFS" done fi fi