diff options
| author | Michael Biebl <biebl@debian.org> | 2018-04-23 18:01:04 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2018-04-23 18:01:04 +0200 |
| commit | d00e17d14b5df5f7fcba1a17f91edbb3180fbf64 (patch) | |
| tree | 2b16542fff332a3c38fb2191f7ae4d4795f66451 /libnm-core/nm-setting-user.c | |
| parent | 2e03b565aa24225ca4992797a5d563542b0b2bdd (diff) | |
| parent | f60117b41d5433be1b4a96d82cd11d0c3dce9b63 (diff) | |
Update upstream source from tag 'upstream/1.11.3'
Update to upstream version '1.11.3' with Debian dir a3a34e6c602cb81e76dc3c255c617e7f7ecfc11c
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--- |