+ if (NM_FLAGS_HAS (parse_flags, NM_SETTING_PARSE_FLAGS_STRICT)) {
+ GVariantIter iter;
+ GVariant *entry, *entry_key;
+ char *key;
+
+ keys = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+ g_variant_iter_init (&iter, setting_dict);
+ while ((entry = g_variant_iter_next_value (&iter))) {
+ entry_key = g_variant_get_child_value (entry, 0);
+ key = g_strdup (g_variant_get_string (entry_key, NULL));
+ g_variant_unref (entry_key);
+ g_variant_unref (entry);
+
+ if (!nm_g_hash_table_add (keys, key)) {
+ g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_SETTING,
+ _("duplicate property"));
+ g_prefix_error (error, "%s.%s: ", nm_setting_get_name (setting), key);
+ return NULL;
+ }
+ }
+ }
+