summaryrefslogtreecommitdiff
path: root/libnm-util/nm-setting.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2013-10-07 13:57:52 -0400
committerDan Winship <danw@gnome.org>2013-10-24 12:25:08 -0400
commitf4c3e2f6438995ea6881aed5e957635256de862e (patch)
tree8801dd26aaa08fce74400947a694eb9fd9ab57fa /libnm-util/nm-setting.c
parent83c5a69126fe2363bab5c06881d34562b1674bcf (diff)
downloadNetworkManager-f4c3e2f6438995ea6881aed5e957635256de862e.tar.gz
libnm-util: centralize find_setting_by_name code
Several settings types' verify() functions need to find a particular setting from the all_settings list that NMConnection passes them. Add a convenience function for this.
Diffstat (limited to 'libnm-util/nm-setting.c')
-rw-r--r--libnm-util/nm-setting.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index a36da29428..6568c87684 100644
--- a/libnm-util/nm-setting.c
+++ b/libnm-util/nm-setting.c
@@ -415,6 +415,28 @@ nm_setting_duplicate (NMSetting *setting)
return NM_SETTING (dup);
}
+static gint
+find_setting_by_name (gconstpointer a, gconstpointer b)
+{
+ NMSetting *setting = NM_SETTING (a);
+ const char *str = (const char *) b;
+
+ return strcmp (nm_setting_get_name (setting), str);
+}
+
+NMSetting *
+nm_setting_find_in_list (GSList *settings_list,
+ const char *setting_name)
+{
+ GSList *found;
+
+ found = g_slist_find_custom (settings_list, setting_name, find_setting_by_name);
+ if (found)
+ return found->data;
+ else
+ return NULL;
+}
+
/**
* nm_setting_get_name:
* @setting: the #NMSetting