From 63cf5bd249ba3d8674003560515e2ef6a27a5efc Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 20 Jun 2018 12:22:51 +0200 Subject: [PATCH] device: simplify postponing IP config change in queued_ip_config_change() We don't need to cancel the current idle-action and schedule a new one. Just return and wait to be called again. Also, drop the logging. Similarly, we don't log the postponing for the previous case either. --- src/devices/nm-device.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 12577c6dc9..0e9c9e80cb 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -12274,8 +12274,6 @@ queued_ip_config_change (NMDevice *self, int addr_family) if (priv->queued_state.id) return G_SOURCE_CONTINUE; - priv->queued_ip_config_id_x[IS_IPv4] = 0; - /* If a commit is scheduled, this function would potentially interfere with * it changing IP configurations before they are applied. Postpone the * update in such case. @@ -12284,22 +12282,18 @@ queued_ip_config_change (NMDevice *self, int addr_family) IS_IPv4 ? activate_stage5_ip4_config_result : activate_stage5_ip6_config_commit, - addr_family)) { - if (IS_IPv4) - priv->queued_ip_config_id_4 = g_idle_add (queued_ip4_config_change, self); - else - priv->queued_ip_config_id_6 = g_idle_add (queued_ip6_config_change, self); - _LOGT (LOGD_DEVICE, "IP%c update was postponed", - nm_utils_addr_family_to_char (addr_family)); - } else { - update_ip_config (self, addr_family); + addr_family)) + return G_SOURCE_CONTINUE; - if (!IS_IPv4) { - /* Check whether we need to complete waiting for link-local. - * We are also called from an idle handler, so no problem doing state transitions - * now. */ - linklocal6_check_complete (self); - } + priv->queued_ip_config_id_x[IS_IPv4] = 0; + + update_ip_config (self, addr_family); + + if (!IS_IPv4) { + /* Check whether we need to complete waiting for link-local. + * We are also called from an idle handler, so no problem doing state transitions + * now. */ + linklocal6_check_complete (self); } if (!IS_IPv4) {