From 927ff3abba7610f7e70a4672bfd28156ace2915d Mon Sep 17 00:00:00 2001 From: Ross Dougherty Date: Wed, 20 Oct 2021 23:50:51 +1100 Subject: dhclient hooks: T3920: avoid 'too many args' error when no vrf (cherry picked from commit 67b3dd6b4715fef266eb47e68623944f8be617e0) --- src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup') diff --git a/src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup b/src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup index 694d53b6b..fec792b64 100644 --- a/src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup +++ b/src/etc/dhcp/dhclient-exit-hooks.d/01-vyos-cleanup @@ -15,10 +15,16 @@ if [[ $reason =~ (EXPIRE|FAIL|RELEASE|STOP) ]]; then if_metric="$IF_METRIC" - # try to delete default ip route + # try to delete default ip route for router in $old_routers; do - logmsg info "Deleting default route: via $router dev ${interface} ${if_metric:+metric $if_metric}" - ip -4 route del default via $router dev ${interface} ${if_metric:+metric $if_metric} + # check if we are bound to a VRF + local vrf_name=$(basename /sys/class/net/${interface}/upper_* | sed -e 's/upper_//') + if [ "$vrf_name" != "*" ]; then + vrf="vrf $vrf_name" + fi + + logmsg info "Deleting default route: via $router dev ${interface} ${if_metric:+metric $if_metric} ${vrf}" + ip -4 route del default via $router dev ${interface} ${if_metric:+metric $if_metric} ${vrf} if_metric=$((if_metric+1)) done -- cgit v1.2.3