diff options
author | Thomas Haller <thaller@redhat.com> | 2020-08-28 17:20:53 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-09-03 11:52:41 +0200 |
commit | dc0435d006c16b2f9c80bf1cc9a468ec6d3a5281 (patch) | |
tree | eda2740e9e537b507029c8e069c4efe69ff0d75e | |
parent | 13d3e6c0d2af21c2c5481cbedc6bc8e3f999845d (diff) | |
download | NetworkManager-dc0435d006c16b2f9c80bf1cc9a468ec6d3a5281.tar.gz |
l3cfg: remove changed flag from nm_l3cfg_add_config()/nm_l3cfg_remove_config()
-rw-r--r-- | src/nm-l3cfg.c | 27 | ||||
-rw-r--r-- | src/nm-l3cfg.h | 32 |
2 files changed, 33 insertions, 26 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); - -void nm_l3cfg_remove_config (NML3Cfg *self, - gconstpointer tag, - const NML3ConfigData *ifcfg); - -void nm_l3cfg_remove_config_all (NML3Cfg *self, +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); + +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); /*****************************************************************************/ |