From bac06c5ae6fe19dca6576ad1a621d33edc89e8c8 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 5 May 2016 11:12:21 +0200 Subject: [PATCH] device: ensure not rescheduling IP config changed on initial capture update_ip4_config() and update_ip6_config() are called from nm_device_capture_initial_config(). At that point, we don't expect any activation-source scheduled, thus the "if" should not not be hit anyway. So, this patch should actually make no difference, but it seems clearer to me. Also, because it would be a bug to re-schedule the idle handler that is already pending, but from inspecting nm_device_capture_initial_config() it is not immediately clear that this cannot be the case. --- src/devices/nm-device.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 4d2c4eed4..8f33373d7 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -8923,9 +8923,10 @@ update_ip4_config (NMDevice *self, gboolean initial) * it changing IP configurations before they are applied. Postpone the * update in such case. */ - if (activation_source_is_scheduled (self, - activate_stage5_ip4_config_commit, - AF_INET)) { + if ( !initial + && activation_source_is_scheduled (self, + activate_stage5_ip4_config_commit, + AF_INET)) { priv->queued_ip4_config_id = g_idle_add (queued_ip4_config_change, self); _LOGT (LOGD_DEVICE, "IP4 update was postponed"); return; @@ -9012,9 +9013,10 @@ update_ip6_config (NMDevice *self, gboolean initial) * it changing IP configurations before they are applied. Postpone the * update in such case. */ - if (activation_source_is_scheduled (self, - activate_stage5_ip6_config_commit, - AF_INET6)) { + if ( !initial + && activation_source_is_scheduled (self, + activate_stage5_ip6_config_commit, + AF_INET6)) { priv->queued_ip6_config_id = g_idle_add (queued_ip6_config_change, self); _LOGT (LOGD_DEVICE, "IP6 update was postponed"); return;