From bd054bf6fdfd3d5ce8eaec82e417787b6e705904 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 28 Aug 2020 17:20:53 +0200 Subject: [PATCH] l3cfg: remove changed flag from nm_l3cfg_add_config()/nm_l3cfg_remove_config() --- src/nm-l3cfg.c | 27 +++++++++++++++++---------- src/nm-l3cfg.h | 30 +++++++++++++++--------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/nm-l3cfg.c b/src/nm-l3cfg.c index d831223357..3c8bb524e3 100644 --- a/src/nm-l3cfg.c +++ b/src/nm-l3cfg.c @@ -2297,7 +2297,7 @@ nm_l3cfg_mark_config_dirty (NML3Cfg *self, } } -void +gboolean nm_l3cfg_add_config (NML3Cfg *self, gconstpointer tag, gboolean replace_same_tag, @@ -2391,15 +2391,18 @@ nm_l3cfg_add_config (NML3Cfg *self, if (changed) self->priv.changed_configs = TRUE; + + return changed; } -static void +static gboolean _l3cfg_remove_config (NML3Cfg *self, gconstpointer tag, gboolean only_dirty, const NML3ConfigData *l3cd) { GArray *l3_config_datas; + gboolean changed; gssize idx; nm_assert (NM_IS_L3CFG (self)); @@ -2407,16 +2410,17 @@ _l3cfg_remove_config (NML3Cfg *self, l3_config_datas = self->priv.p->l3_config_datas; if (!l3_config_datas) - return; + return FALSE; idx = 0; + changed = FALSE; while (TRUE) { idx = _l3_config_datas_find_next (l3_config_datas, idx, tag, l3cd); if (idx < 0) - return; + return changed; if ( only_dirty && !_l3_config_datas_at (l3_config_datas, idx)->dirty) { @@ -2426,27 +2430,30 @@ _l3cfg_remove_config (NML3Cfg *self, self->priv.changed_configs = TRUE; _l3_config_datas_remove_index_fast (l3_config_datas, idx); - if (!l3cd) - return; + if (l3cd) { + /* only one was requested to be removed. We are done. */ + return TRUE; + } + changed = TRUE; } } -void +gboolean nm_l3cfg_remove_config (NML3Cfg *self, gconstpointer tag, const NML3ConfigData *ifcfg) { nm_assert (ifcfg); - _l3cfg_remove_config (self, tag, FALSE, ifcfg); + return _l3cfg_remove_config (self, tag, FALSE, ifcfg); } -void +gboolean nm_l3cfg_remove_config_all (NML3Cfg *self, gconstpointer tag, gboolean only_dirty) { - _l3cfg_remove_config (self, tag, only_dirty, NULL); + return _l3cfg_remove_config (self, tag, only_dirty, NULL); } /*****************************************************************************/ diff --git a/src/nm-l3cfg.h b/src/nm-l3cfg.h index 335b59e614..a199f27cfb 100644 --- a/src/nm-l3cfg.h +++ b/src/nm-l3cfg.h @@ -128,23 +128,23 @@ void nm_l3cfg_mark_config_dirty (NML3Cfg *self, gconstpointer tag, gboolean dirty); -void nm_l3cfg_add_config (NML3Cfg *self, - gconstpointer tag, - gboolean replace_same_tag, - const NML3ConfigData *l3cd, - int priority, - guint32 default_route_penalty_4, - guint32 default_route_penalty_6, - guint32 acd_timeout_msec, - NML3ConfigMergeFlags merge_flags); +gboolean nm_l3cfg_add_config (NML3Cfg *self, + gconstpointer tag, + gboolean replace_same_tag, + const NML3ConfigData *l3cd, + int priority, + guint32 default_route_penalty_4, + guint32 default_route_penalty_6, + guint32 acd_timeout_msec, + NML3ConfigMergeFlags merge_flags); -void nm_l3cfg_remove_config (NML3Cfg *self, - gconstpointer tag, - const NML3ConfigData *ifcfg); - -void nm_l3cfg_remove_config_all (NML3Cfg *self, +gboolean nm_l3cfg_remove_config (NML3Cfg *self, gconstpointer tag, - gboolean only_dirty); + const NML3ConfigData *ifcfg); + +gboolean nm_l3cfg_remove_config_all (NML3Cfg *self, + gconstpointer tag, + gboolean only_dirty); /*****************************************************************************/