You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
7 years ago
|
From d07570b2dad62b582f39310f4abea036060f85a0 Mon Sep 17 00:00:00 2001
|
||
|
From: Beniamino Galvani <bgalvani@redhat.com>
|
||
|
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)
|
||
|
(cherry picked from commit a169247b7dda0c27707861e6cbc808ecfd4c5e85)
|
||
|
---
|
||
|
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 babef21ad..b3b31ea45 100644
|
||
|
--- a/src/devices/nm-device.c
|
||
|
+++ b/src/devices/nm-device.c
|
||
|
@@ -8159,6 +8159,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) {
|
||
|
@@ -8200,6 +8206,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) {
|
||
|
--
|
||
|
2.14.3
|