diff --git a/ChangeLog b/ChangeLog index 082679d55..fa3b177b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2008-11-20 Dan Williams + + Patch from Tambet Ingo + + * libnm-util/nm-setting.c + libnm-util/nm-setting.h + - (NMSettingValueIterFn): instead of just a gboolean for secrets, take + all the GParamSpec flags of the property + + * system-settings/plugins/keyfile/nm-keyfile-connection.c + system-settings/plugins/keyfile/reader.c + system-settings/plugins/keyfile/writer.c + - Update for NMSettingValueIterFn change + 2008-11-20 Dan Williams * libnm-util/nm-utils.c diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c index fd00f1a2f..e3163813d 100644 --- a/libnm-util/nm-setting.c +++ b/libnm-util/nm-setting.c @@ -230,14 +230,13 @@ nm_setting_new_from_hash (GType setting_type, static void duplicate_setting (NMSetting *setting, - const char *name, - const GValue *value, - gboolean secret, - gpointer user_data) + const char *name, + const GValue *value, + GParamFlags flags, + gpointer user_data) { - GObject *dup = (GObject *) user_data; - - g_object_set_property (dup, name, value); + if (flags & G_PARAM_WRITABLE) + g_object_set_property (G_OBJECT (user_data), name, value); } /** @@ -407,9 +406,7 @@ nm_setting_enumerate_values (NMSetting *setting, g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (prop_spec)); g_object_get_property (G_OBJECT (setting), prop_spec->name, &value); - func (setting, prop_spec->name, &value, - prop_spec->flags & NM_SETTING_PARAM_SECRET, - user_data); + func (setting, prop_spec->name, &value, prop_spec->flags, user_data); g_value_unset (&value); } diff --git a/libnm-util/nm-setting.h b/libnm-util/nm-setting.h index 8e4af2478..8303c7410 100644 --- a/libnm-util/nm-setting.h +++ b/libnm-util/nm-setting.h @@ -80,10 +80,10 @@ typedef struct { } NMSettingClass; typedef void (*NMSettingValueIterFn) (NMSetting *setting, - const char *key, - const GValue *value, - gboolean secret, - gpointer user_data); + const char *key, + const GValue *value, + GParamFlags flags, + gpointer user_data); GType nm_setting_get_type (void); diff --git a/system-settings/plugins/keyfile/nm-keyfile-connection.c b/system-settings/plugins/keyfile/nm-keyfile-connection.c index 3f15458b3..c65b1b636 100644 --- a/system-settings/plugins/keyfile/nm-keyfile-connection.c +++ b/system-settings/plugins/keyfile/nm-keyfile-connection.c @@ -97,12 +97,12 @@ static void add_secrets (NMSetting *setting, const char *key, const GValue *value, - gboolean secret, + GParamFlags flags, gpointer user_data) { GHashTable *secrets = user_data; - if (!secret) + if (!(flags & NM_SETTING_PARAM_SECRET)) return; if (G_VALUE_HOLDS_STRING (value)) { diff --git a/system-settings/plugins/keyfile/reader.c b/system-settings/plugins/keyfile/reader.c index d3d32ab1c..9efd1307b 100644 --- a/system-settings/plugins/keyfile/reader.c +++ b/system-settings/plugins/keyfile/reader.c @@ -344,10 +344,10 @@ typedef struct { static void read_one_setting_value (NMSetting *setting, - const char *key, - const GValue *value, - gboolean secret, - gpointer user_data) + const char *key, + const GValue *value, + GParamFlags flags, + gpointer user_data) { ReadSettingInfo *info = (ReadSettingInfo *) user_data; GKeyFile *file = info->keyfile; @@ -356,12 +356,16 @@ read_one_setting_value (NMSetting *setting, GError *err = NULL; gboolean check_for_key = TRUE; + /* Property is not writable */ + if (!(flags & G_PARAM_WRITABLE)) + return; + /* Setting name gets picked up from the keyfile's section name instead */ if (!strcmp (key, NM_SETTING_NAME)) return; /* Don't read in secrets unless we want to */ - if (secret && !info->secrets) + if ((flags & NM_SETTING_PARAM_SECRET) && !info->secrets) return; /* Don't read the NMSettingConnection object's 'read-only' property */ diff --git a/system-settings/plugins/keyfile/writer.c b/system-settings/plugins/keyfile/writer.c index 59ec69d70..da5c5b09a 100644 --- a/system-settings/plugins/keyfile/writer.c +++ b/system-settings/plugins/keyfile/writer.c @@ -203,10 +203,10 @@ write_hash_of_string (GKeyFile *file, static void write_setting_value (NMSetting *setting, - const char *key, - const GValue *value, - gboolean secret, - gpointer user_data) + const char *key, + const GValue *value, + GParamFlags flag, + gpointer user_data) { GKeyFile *file = (GKeyFile *) user_data; const char *setting_name;