aboutsummaryrefslogtreecommitdiffstats
path: root/qemu
diff options
context:
space:
mode:
Diffstat (limited to 'qemu')
-rwxr-xr-xqemu9
1 files changed, 7 insertions, 2 deletions
diff --git a/qemu b/qemu
index 9a20e74..5a63c63 100755
--- a/qemu
+++ b/qemu
@@ -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
}