diff options
Diffstat (limited to 'qemu')
| -rwxr-xr-x | qemu | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -45,7 +45,11 @@ xpath(){ echo "$2" | xmllint --xpath "$1" - 2>/dev/null } -get_address_family(){ [ -z "${1##*:*}" ] && echo ipv6 || echo ipv4; } +is_ipv6(){ [ -z "${1##*:*}" ]; } + +ip_family_select(){ is_ipv6 "$1" && echo "$3" || echo "$2"; } + +get_address_family(){ ip_family_select "$1" 'ipv4' 'ipv6'; } get_config(){ local configfile="$1" @@ -138,8 +142,9 @@ process_route(){ local prefix; prefix="$(get_attr 'prefix' "$nodexml")" local nexthop; nexthop="$(get_attr 'nexthop' "$nodexml")" + local nh_fam; nh_fam="inet$(ip_family_select "$nexthop" '' '6')" - ip route add proto static "$prefix" via "$nexthop" + ip route add proto static "$prefix" via "$nh_fam" "$nexthop" return 0 } |
