From 22f32a16f5aa0a24fd124ad5788959936e22acff Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Thu, 18 Jan 2018 11:43:09 +0100 Subject: [PATCH] device: skip IP configuration phase for external devices We already avoid committing the IP configuration for external devices (see commit 60334a2893fe). However, we still start DHCP/IPv6-autoconf and, especially, we change sysctl values of the device. To be sure that no action is taken on the device, return early from the IP configuration phase, as in the method=disabled/ignore case. https://bugzilla.redhat.com/show_bug.cgi?id=1530288 --- src/devices/nm-device.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 233b1fd0fc..b1e9fee329 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -8359,6 +8359,12 @@ nm_device_activate_stage3_ip4_start (NMDevice *self) g_assert (priv->ip4_state == IP_WAIT); + if (nm_device_sys_iface_state_is_external (self)) { + _set_ip_state (self, AF_INET, IP_DONE); + check_ip_state (self, FALSE); + return TRUE; + } + _set_ip_state (self, AF_INET, IP_CONF); ret = NM_DEVICE_GET_CLASS (self)->act_stage3_ip4_config_start (self, &ip4_config, &failure_reason); if (ret == NM_ACT_STAGE_RETURN_SUCCESS) { @@ -8400,6 +8406,12 @@ nm_device_activate_stage3_ip6_start (NMDevice *self) g_assert (priv->ip6_state == IP_WAIT); + if (nm_device_sys_iface_state_is_external (self)) { + _set_ip_state (self, AF_INET6, IP_DONE); + check_ip_state (self, FALSE); + return TRUE; + } + _set_ip_state (self, AF_INET6, IP_CONF); ret = NM_DEVICE_GET_CLASS (self)->act_stage3_ip6_config_start (self, &ip6_config, &failure_reason); if (ret == NM_ACT_STAGE_RETURN_SUCCESS) {