summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-06-08 00:26:00 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2017-06-09 13:52:03 +0200
commitaa099906f93264bda3ae34fca4dfbdde5455b2bb (patch)
tree69df7d16a9704780fa63c42a8fac2308163eb6db
parent5b55c01848c14cda153a8bba8c8fcccc3a64e9f5 (diff)
downloadNetworkManager-aa099906f93264bda3ae34fca4dfbdde5455b2bb.tar.gz
device: apply route metric penality only when the default route exists
It's useless (and in some cases also harmful) to commit the configuration to update the default route metric when the device has no default route. Also, don't commit configuration for externally activated devices. https://bugzilla.redhat.com/show_bug.cgi?id=1459604
-rw-r--r--src/devices/nm-device.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index ca815188a1..25b1184740 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -1827,10 +1827,13 @@ update_connectivity_state (NMDevice *self, NMConnectivityState state)
priv->connectivity_state = state;
_notify (self, PROP_CONNECTIVITY);
- if (nm_device_get_state (self) == NM_DEVICE_STATE_ACTIVATED) {
- if (!ip4_config_merge_and_apply (self, NULL, TRUE))
+ if ( priv->state == NM_DEVICE_STATE_ACTIVATED
+ && !nm_device_sys_iface_state_is_external (self)) {
+ if ( priv->default_route.v4_has
+ && !ip4_config_merge_and_apply (self, NULL, TRUE))
_LOGW (LOGD_IP4, "Failed to update IPv4 default route metric");
- if (!ip6_config_merge_and_apply (self, TRUE))
+ if ( priv->default_route.v6_has
+ && !ip6_config_merge_and_apply (self, TRUE))
_LOGW (LOGD_IP6, "Failed to update IPv6 default route metric");
}
}