summary refs log tree commit diff
path: root/libnm-util/nm-setting.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-04-21 10:42:53 +0200
committerMichael Biebl <biebl@debian.org>2011-04-21 10:42:53 +0200
commit8baa1aca8dfd35e3190d7d5655eb83b5b901e263 (patch)
treea9ac1e67d0c22a48330c76f08fc5291f85307055 /libnm-util/nm-setting.c
parentf75dd6fd1975146623052b843b182dc32c3fbe46 (diff)
Imported Upstream version 0.8.4.0 upstream/0.8.4.0
Diffstat (limited to 'libnm-util/nm-setting.c')
-rw-r--r--libnm-util/nm-setting.c183
1 files changed, 24 insertions, 159 deletions
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index 0f8b7d4f..6f014bff 100644
--- a/libnm-util/nm-setting.c
+++ b/libnm-util/nm-setting.c
@@ -19,14 +19,13 @@
  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301 USA.
  *
- * (C) Copyright 2007 - 2011 Red Hat, Inc.
+ * (C) Copyright 2007 - 2008 Red Hat, Inc.
  * (C) Copyright 2007 - 2008 Novell, Inc.
  */
 
 #include <string.h>
 
 #include "nm-setting.h"
-#include "nm-setting-private.h"
 #include "nm-setting-connection.h"
 #include "nm-utils.h"
 
@@ -108,23 +107,21 @@ destroy_gvalue (gpointer data)
 /**
  * nm_setting_to_hash:
  * @setting: the #NMSetting
- * @flags: hash flags, e.g. %NM_SETTING_HASH_FLAG_ALL
  *
  * Converts the #NMSetting into a #GHashTable mapping each setting property
  * name to a GValue describing that property, suitable for marshalling over
  * D-Bus or serializing.  The mapping is string:GValue.
  * 
- * Returns: (transfer full) (element-type utf8 GObject.Value): a new #GHashTable describing the setting's properties
+ * Returns: a new #GHashTable describing the setting's properties
  **/
 GHashTable *
-nm_setting_to_hash (NMSetting *setting, NMSettingHashFlags flags)
+nm_setting_to_hash (NMSetting *setting)
 {
 	GHashTable *hash;
 	GParamSpec **property_specs;
 	guint n_property_specs;
 	guint i;
 
-	g_return_val_if_fail (setting != NULL, NULL);
 	g_return_val_if_fail (NM_IS_SETTING (setting), NULL);
 
 	property_specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (setting), &n_property_specs);
@@ -135,40 +132,28 @@ nm_setting_to_hash (NMSetting *setting, NMSettingHashFlags flags)
 	}
 
 	hash = g_hash_table_new_full (g_str_hash, g_str_equal,
-	                              (GDestroyNotify) g_free, destroy_gvalue);
+							(GDestroyNotify) g_free,
+							destroy_gvalue);
 
 	for (i = 0; i < n_property_specs; i++) {
 		GParamSpec *prop_spec = property_specs[i];
-		GValue *value;
 
-		if (!(prop_spec->flags & NM_SETTING_PARAM_SERIALIZE))
-			continue;
-
-		if (   (flags & NM_SETTING_HASH_FLAG_NO_SECRETS)
-		    && (prop_spec->flags & NM_SETTING_PARAM_SECRET))
-			continue;
-
-		if (   (flags & NM_SETTING_HASH_FLAG_ONLY_SECRETS)
-		    && !(prop_spec->flags & NM_SETTING_PARAM_SECRET))
-			continue;
+		if (prop_spec->flags & NM_SETTING_PARAM_SERIALIZE) {
+			GValue *value;
 
-		value = g_slice_new0 (GValue);
-		g_value_init (value, prop_spec->value_type);
-		g_object_get_property (G_OBJECT (setting), prop_spec->name, value);
+			value = g_slice_new0 (GValue);
+			g_value_init (value, prop_spec->value_type);
+			g_object_get_property (G_OBJECT (setting), prop_spec->name, value);
 
-		/* Don't serialize values with default values */
-		if (!g_param_value_defaults (prop_spec, value))
-			g_hash_table_insert (hash, g_strdup (prop_spec->name), value);
-		else
-			destroy_gvalue (value);
+			/* Don't serialize values with default values */
+			if (!g_param_value_defaults (prop_spec, value))
+				g_hash_table_insert (hash, g_strdup (prop_spec->name), value);
+			else
+				destroy_gvalue (value);
+		}
 	}
-	g_free (property_specs);
 
-	/* Don't return empty hashes */
-	if (g_hash_table_size (hash) < 1) {
-		g_hash_table_destroy (hash);
-		hash = NULL;
-	}
+	g_free (property_specs);
 
 	return hash;
 }
@@ -191,7 +176,7 @@ one_property_cb (gpointer key, gpointer val, gpointer user_data)
 	param_spec = g_object_class_find_property (info->class, prop_name);
 	if (!param_spec || !(param_spec->flags & NM_SETTING_PARAM_SERIALIZE)) {
 		/* Oh, we're so nice and only warn, maybe it should be a fatal error? */
-		g_warning ("Ignoring invalid property '%s'", prop_name);
+		nm_warning ("Ignoring invalid property '%s'", prop_name);
 		return;
 	}
 
@@ -200,8 +185,8 @@ one_property_cb (gpointer key, gpointer val, gpointer user_data)
 		info->params[info->n_params].name = prop_name;
 		info->n_params++;
 	} else {
-		g_warning ("Ignoring property '%s' with invalid type (%s)",
-		           prop_name, G_VALUE_TYPE_NAME (src_value));
+		nm_warning ("Ignoring property '%s' with invalid type (%s)",
+				  prop_name, G_VALUE_TYPE_NAME (src_value));
 		g_value_unset (dst_value);
 	}
 }
@@ -269,7 +254,7 @@ duplicate_setting (NMSetting *setting,
  *
  * Duplicates a #NMSetting.
  *
- * Returns: (transfer full): a new #NMSetting containing the same properties and values as the
+ * Returns: a new #NMSetting containing the same properties and values as the
  * source #NMSetting
  **/
 NMSetting *
@@ -529,7 +514,7 @@ nm_setting_diff (NMSetting *a,
 /**
  * nm_setting_enumerate_values:
  * @setting: the #NMSetting
- * @func: (scope call): user-supplied function called for each property of the setting
+ * @func: user-supplied function called for each property of the setting
  * @user_data: user data passed to @func at each invocation
  *
  * Iterates over each property of the #NMSetting object, calling the supplied
@@ -604,7 +589,7 @@ nm_setting_clear_secrets (NMSetting *setting)
  * guide to what secrets may be required, because in some circumstances, there
  * is no way to conclusively determine exactly which secrets are needed.
  *
- * Returns: (transfer full) (element-type utf8): a #GPtrArray containing the property names of secrets of the
+ * Returns: a #GPtrArray containing the property names of secrets of the
  * #NMSetting which may be required; the caller owns the array
  * and must free the each array element with g_free(), as well as the array
  * itself with g_ptr_array_free()
@@ -699,124 +684,6 @@ nm_setting_update_secrets (NMSetting *setting, GHashTable *secrets, GError **err
 	return TRUE;
 }
 
-static gboolean
-is_secret_prop (NMSetting *setting, const char *secret_name, GError **error)
-{
-	GParamSpec *pspec;
-
-	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (setting), secret_name);
-	if (!pspec) {
-		g_set_error (error,
-		             NM_SETTING_ERROR,
-		             NM_SETTING_ERROR_PROPERTY_NOT_FOUND,
-		             "Secret %s not provided by this setting", secret_name);
-		return FALSE;
-	}
-
-	if (!(pspec->flags & NM_SETTING_PARAM_SECRET)) {
-		g_set_error (error,
-		             NM_SETTING_ERROR,
-		             NM_SETTING_ERROR_PROPERTY_NOT_SECRET,
-		             "Property %s is not a secret", secret_name);
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-static gboolean
-get_secret_flags (NMSetting *setting,
-                  const char *secret_name,
-                  gboolean verify_secret,
-                  NMSettingSecretFlags *out_flags,
-                  GError **error)
-{
-	char *flags_prop;
-	NMSettingSecretFlags flags = NM_SETTING_SECRET_FLAG_NONE;
-
-	if (verify_secret)
-		g_return_val_if_fail (is_secret_prop (setting, secret_name, error), FALSE);
-
-	flags_prop = g_strdup_printf ("%s-flags", secret_name);
-	g_object_get (G_OBJECT (setting), flags_prop, &flags, NULL);
-	g_free (flags_prop);
-
-	if (out_flags)
-		*out_flags = flags;
-	return TRUE;
-}
-
-/**
- * nm_setting_get_secret_flags:
- * @setting: the #NMSetting
- * @secret_name: the secret key name to get flags for
- * @out_flags: on success, the #NMSettingSecretFlags for the secret
- * @error: location to store error, or %NULL
- *
- * For a given secret, retrieves the #NMSettingSecretFlags describing how to
- * handle that secret.
- *
- * Returns: TRUE on success (if the given secret name was a valid property of
- * this setting, and if that property is secret), FALSE if not
- **/
-gboolean
-nm_setting_get_secret_flags (NMSetting *setting,
-                             const char *secret_name,
-                             NMSettingSecretFlags *out_flags,
-                             GError **error)
-{
-	g_return_val_if_fail (setting != NULL, FALSE);
-	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
-	g_return_val_if_fail (secret_name != NULL, FALSE);
-
-	return NM_SETTING_GET_CLASS (setting)->get_secret_flags (setting, secret_name, TRUE, out_flags, error);
-}
-
-static gboolean
-set_secret_flags (NMSetting *setting,
-                  const char *secret_name,
-                  gboolean verify_secret,
-                  NMSettingSecretFlags flags,
-                  GError **error)
-{
-	char *flags_prop;
-
-	if (verify_secret)
-		g_return_val_if_fail (is_secret_prop (setting, secret_name, error), FALSE);
-
-	flags_prop = g_strdup_printf ("%s-flags", secret_name);
-	g_object_set (G_OBJECT (setting), flags_prop, flags, NULL);
-	g_free (flags_prop);
-	return TRUE;
-}
-
-/**
- * nm_setting_set_secret_flags:
- * @setting: the #NMSetting
- * @secret_name: the secret key name to set flags for
- * @flags: the #NMSettingSecretFlags for the secret
- * @error: location to store error, or %NULL
- *
- * For a given secret, retrieves the #NMSettingSecretFlags describing how to
- * handle that secret.
- *
- * Returns: TRUE on success (if the given secret name was a valid property of
- * this setting, and if that property is secret), FALSE if not
- **/
-gboolean
-nm_setting_set_secret_flags (NMSetting *setting,
-                             const char *secret_name,
-                             NMSettingSecretFlags flags,
-                             GError **error)
-{
-	g_return_val_if_fail (setting != NULL, FALSE);
-	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
-	g_return_val_if_fail (secret_name != NULL, FALSE);
-	g_return_val_if_fail (flags <= NM_SETTING_SECRET_FLAGS_ALL, FALSE);
-
-	return NM_SETTING_GET_CLASS (setting)->set_secret_flags (setting, secret_name, TRUE, flags, error);
-}
-
 /**
  * nm_setting_to_string:
  * @setting: the #NMSetting
@@ -908,7 +775,7 @@ constructor (GType type,
 
 	priv = NM_SETTING_GET_PRIVATE (object);
 	if (!priv->name) {
-		g_warning ("Setting name is not set.");
+		nm_warning ("Setting name is not set.");
 		g_object_unref (object);
 		object = NULL;
 	}
@@ -973,8 +840,6 @@ nm_setting_class_init (NMSettingClass *setting_class)
 	object_class->finalize     = finalize;
 
 	setting_class->update_one_secret = update_one_secret;
-	setting_class->get_secret_flags = get_secret_flags;
-	setting_class->set_secret_flags = set_secret_flags;
 
 	/* Properties */