Author: arekm Date: Fri Feb 3 20:23:29 2012 New Revision: 12474 Modified: rc-scripts/trunk/lib/functions.network Log: Adding rule by rule causes reverse order to be applied by kernel. We want rules from sysconfig/static-rules to be working in the same order as these were added in that file. The one solution is to use '/usr/bin/tac static-routes' or to use own priorities. We use prio 20000 with step 10 down, to get holes for other, manually added rules.
Modified: rc-scripts/trunk/lib/functions.network ============================================================================== --- rc-scripts/trunk/lib/functions.network (original) +++ rc-scripts/trunk/lib/functions.network Fri Feb 3 20:23:29 2012 @@ -469,12 +469,19 @@ # Olgierd Pieczul <[email protected]> setup_ip_rules () { - local args prio from src + local args prio from src i prio if [ -f /etc/sysconfig/static-routes ]; then if is_yes "$1"; then + i=20000 grep -E "^(from|to|iif|tos|fwmark|dev|pref|priority|prio)[[:blank:]]" /etc/sysconfig/static-routes | while read args; do - /sbin/ip rule add $args + prio="" + if [ "${args##* prio }" = "$args" ]; then + # no "prio" used in rule, use own prio + prio="prio $i" + i=$((i - 10)) + fi + /sbin/ip rule add $args $prio done elif is_no "$1"; then LC_ALL=C /sbin/ip rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do @@ -485,8 +492,15 @@ is_no "$IPV6_NETWORKING" && return if [ -f /etc/sysconfig/static-routes6 ]; then if is_yes "$1"; then + i=20000 grep -E "^(from|to|iif|tos|fwmark|dev|pref|priority|prio)[[:blank:]]" /etc/sysconfig/static-routes6 | while read args; do - /sbin/ip -6 rule add $args + prio="" + if [ "${args##* prio }" = "$args" ]; then + # no "prio" used in rule, use own prio + prio="prio $i" + i=$((i - 10)) + fi + /sbin/ip -6 rule add $args $prio done elif is_no "$1"; then LC_ALL=C /sbin/ip -6 rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
