diff options
| author | Michael Biebl <biebl@debian.org> | 2018-06-04 00:07:45 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2018-06-04 00:07:45 +0200 |
| commit | 04bc9e1cd3544445d883ad29ea108c1645c8e7b7 (patch) | |
| tree | d10c354b1b980ca8a7b9e48ec9019e8ed88bde2b /libnm-core/nm-setting-user.c | |
| parent | ee9c73a923909e23a649407be77e25235d769e25 (diff) | |
New upstream version 1.11.4 upstream/1.11.4
Diffstat (limited to 'libnm-core/nm-setting-user.c')
| -rw-r--r-- | libnm-core/nm-setting-user.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/libnm-core/nm-setting-user.c b/libnm-core/nm-setting-user.c index 049607e1..ccc030aa 100644 --- a/libnm-core/nm-setting-user.c +++ b/libnm-core/nm-setting-user.c @@ -210,7 +210,7 @@ nm_setting_user_check_val (const char *val, GError **error) static GHashTable * _create_data_hash (void) { - return g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + return g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, g_free); } /** @@ -226,7 +226,6 @@ nm_setting_user_get_keys (NMSettingUser *setting, guint *out_len) { NMSettingUser *self = setting; NMSettingUserPrivate *priv; - guint len; g_return_val_if_fail (NM_IS_SETTING_USER (self), NULL); @@ -237,19 +236,13 @@ nm_setting_user_get_keys (NMSettingUser *setting, guint *out_len) return priv->keys; } - if (!priv->data || !g_hash_table_size (priv->data)) { - NM_SET_OUT (out_len, 0); - return (const char **) &priv->keys; - } + priv->keys = nm_utils_strdict_get_keys (priv->data, + TRUE, + out_len); - priv->keys = (const char **) g_hash_table_get_keys_as_array (priv->data, &len); - g_qsort_with_data (priv->keys, - len, - sizeof (const char *), - nm_strcmp_p_with_data, - NULL); - NM_SET_OUT (out_len, len); - return priv->keys; + /* don't return %NULL, but hijack the @keys fields as a pseudo + * empty strv array. */ + return priv->keys ?: ((const char **) &priv->keys); } /*****************************************************************************/ @@ -587,14 +580,12 @@ nm_setting_user_class_init (NMSettingUserClass *klass) setting_class->verify = verify; /** - * NMSettingUser:data: + * NMSettingUser:data: (type GHashTable(utf8,utf8)) * * A dictionary of key/value pairs with user data. This data is ignored by NetworkManager * and can be used at the users discretion. The keys only support a strict ascii format, * but the values can be arbitrary UTF8 strings up to a certain length. * - * Type: GHashTable(utf8,utf8) - * * Since: 1.8 **/ /* ---ifcfg-rh--- |