[pve-devel] [PATCH container] fix #1885: delete old route when changing gateway

David Limbeck d.limbeck at proxmox.com
Fri Aug 24 13:45:33 CEST 2018


changing a gateway can fail if there is an old conflicting route. this
can happen when changing gateways back and forth.
with this change all old routes that are no longer relevant are deleted
after a change.

Signed-off-by: David Limbeck <d.limbeck at proxmox.com>
---
 src/PVE/LXC.pm | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 1504bd0..4d9f5b0 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -791,6 +791,7 @@ sub update_ipconfig {
 	my $newip = $newnet->{$ip};
 	my $newgw = $newnet->{$gw};
 	my $oldip = $optdata->{$ip};
+	my $oldgw = $optdata->{$gw};
 
 	my $change_ip = &$safe_string_ne($oldip, $newip);
 	my $change_gw = &$safe_string_ne($optdata->{$gw}, $newgw);
@@ -836,6 +837,12 @@ sub update_ipconfig {
 		# warn and continue
 		warn $@ if $@;
 	    }
+	    if ($oldgw) {
+		eval { &$ipcmd($family_opt, 'route', 'del', $oldgw, 'dev', $eth); };
+		# if the route was not deleted, the guest might have deleted it manually
+		# warn and continue
+		warn $@ if $@;
+	    }
 	}
 
 	# from this point on we save the configuration
-- 
2.11.0





More information about the pve-devel mailing list