summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--libnm-util/nm-setting.c17
-rw-r--r--libnm-util/nm-setting.h8
-rw-r--r--system-settings/plugins/keyfile/nm-keyfile-connection.c4
-rw-r--r--system-settings/plugins/keyfile/reader.c14
-rw-r--r--system-settings/plugins/keyfile/writer.c8
6 files changed, 40 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 082679d558..fa3b177b1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2008-11-20 Dan Williams <dcbw@redhat.com>
+ Patch from Tambet Ingo <tambet@gmail.com>
+
+ * 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 <dcbw@redhat.com>
+
* libnm-util/nm-utils.c
libnm-util/nm-utils.h
- More documentation updates
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index fd00f1a2fa..e3163813da 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 8e4af24783..8303c74108 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 3f15458b38..c65b1b636e 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 d3d32ab1cd..9efd1307bd 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 59ec69d702..da5c5b09a5 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;