From 9c9dc9727a027005aa35aab1f62d99194e6d1df2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 15 Apr 2016 17:01:02 +0200 Subject: [PATCH] device: fix wrongly deleting default-route on exit We must preserve the default-route on shutdown. Thus it must first be announced as "assumed", and only removed in a second step. Fixes: 9498ea507eb1d5042736c4351337e91b9c13bdf6 (cherry picked from commit 2079f8361c4c50ac9ef416acb19bc3a23054d877) --- src/devices/nm-device.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 3d949ec2d8..9eb803833b 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -2591,11 +2591,20 @@ nm_device_removed (NMDevice *self) * is reacting via NM_DEVICE_IP4_CONFIG_CHANGED/NM_DEVICE_IP6_CONFIG_CHANGED * signal. As NMPolicy registered the NMIPxConfig instances in NMDnsManager, * these would be leaked otherwise. */ + if ( priv->default_route.v4_has + && !priv->default_route.v4_is_assumed) { + priv->default_route.v4_is_assumed = TRUE; + nm_default_route_manager_ip4_update_default_route (nm_default_route_manager_get (), self); + } + if ( priv->default_route.v6_has + && !priv->default_route.v6_is_assumed) { + priv->default_route.v6_is_assumed = TRUE; + nm_default_route_manager_ip6_update_default_route (nm_default_route_manager_get (), self); + } + priv->default_route.v4_has = FALSE; - priv->default_route.v4_is_assumed = TRUE; nm_device_set_ip4_config (self, NULL, 0, FALSE, FALSE, NULL); priv->default_route.v6_has = FALSE; - priv->default_route.v6_is_assumed = TRUE; nm_device_set_ip6_config (self, NULL, FALSE, FALSE, NULL); }