summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-08-28 17:20:53 +0200
committerThomas Haller <thaller@redhat.com>2020-09-03 11:52:41 +0200
commitdc0435d006c16b2f9c80bf1cc9a468ec6d3a5281 (patch)
treeeda2740e9e537b507029c8e069c4efe69ff0d75e
parent13d3e6c0d2af21c2c5481cbedc6bc8e3f999845d (diff)
downloadNetworkManager-dc0435d006c16b2f9c80bf1cc9a468ec6d3a5281.tar.gz
l3cfg: remove changed flag from nm_l3cfg_add_config()/nm_l3cfg_remove_config()
-rw-r--r--src/nm-l3cfg.c27
-rw-r--r--src/nm-l3cfg.h32
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);
/*****************************************************************************/