diff options
| author | Dan Winship <danw@gnome.org> | 2013-10-07 13:57:52 -0400 |
|---|---|---|
| committer | Dan Winship <danw@gnome.org> | 2013-10-24 12:25:08 -0400 |
| commit | f4c3e2f6438995ea6881aed5e957635256de862e (patch) | |
| tree | 8801dd26aaa08fce74400947a694eb9fd9ab57fa /libnm-util/nm-setting.c | |
| parent | 83c5a69126fe2363bab5c06881d34562b1674bcf (diff) | |
| download | NetworkManager-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.c | 22 |
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 |
