diff options
Diffstat (limited to 'libnm-util/nm-setting.c')
-rw-r--r-- | libnm-util/nm-setting.c | 183 |
1 files changed, 24 insertions, 159 deletions
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c index 0f8b7d4f2..6f014bffb 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 */ |