From a169247b7dda0c27707861e6cbc808ecfd4c5e85 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 (cherry picked from commit 22f32a16f5aa0a24fd124ad5788959936e22acff) --- 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 e56468de29..6f9289ee46 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -8161,6 +8161,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) { @@ -8202,6 +8208,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) {