2008-10-27 Dan Williams <dcbw@redhat.com>
Patch from Tambet Ingo <tambet@gmail.com> * libnm-util/nm-setting.h libnm-util/nm-setting.c - Make properties private and add accessor functions * libnm-util/nm-connection.c libnm-util/nm-setting-8021x.c libnm-util/nm-setting-cdma.c libnm-util/nm-setting-connection.c libnm-util/nm-setting-gsm.c libnm-util/nm-setting-ip4-config.c libnm-util/nm-setting-ip6-config.c libnm-util/nm-setting-ppp.c libnm-util/nm-setting-pppoe.c libnm-util/nm-setting-serial.c libnm-util/nm-setting-template.c libnm-util/nm-setting-vpn.c libnm-util/nm-setting-wired.c libnm-util/nm-setting-wireless-security.c libnm-util/nm-setting-wireless.c system-settings/plugins/keyfile/reader.c system-settings/plugins/keyfile/writer.c - Use setting accessors git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4228 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
@@ -29,7 +29,7 @@ read_array_of_uint (GKeyFile *file,
|
||||
char **list, **iter;
|
||||
int ret;
|
||||
|
||||
list = g_key_file_get_string_list (file, setting->name, key, &length, NULL);
|
||||
list = g_key_file_get_string_list (file, nm_setting_get_name (setting), key, &length, NULL);
|
||||
if (!list || !g_strv_length (list))
|
||||
return TRUE;
|
||||
|
||||
@@ -48,7 +48,7 @@ read_array_of_uint (GKeyFile *file,
|
||||
} else {
|
||||
gint *tmp;
|
||||
|
||||
tmp = g_key_file_get_integer_list (file, setting->name, key, &length, NULL);
|
||||
tmp = g_key_file_get_integer_list (file, nm_setting_get_name (setting), key, &length, NULL);
|
||||
|
||||
array = g_array_sized_new (FALSE, FALSE, sizeof (guint32), length);
|
||||
for (i = 0; i < length; i++)
|
||||
@@ -255,19 +255,22 @@ read_array_of_array_of_uint (GKeyFile *file,
|
||||
const char *key)
|
||||
{
|
||||
gboolean success = FALSE;
|
||||
const char *setting_name;
|
||||
|
||||
/* Only handle IPv4 addresses and routes for now */
|
||||
if (!NM_IS_SETTING_IP4_CONFIG (setting))
|
||||
return FALSE;
|
||||
|
||||
setting_name = nm_setting_get_name (setting);
|
||||
|
||||
if (!strcmp (key, NM_SETTING_IP4_CONFIG_ADDRESSES)) {
|
||||
GPtrArray *addresses;
|
||||
|
||||
addresses = read_addresses (file, setting->name, key);
|
||||
addresses = read_addresses (file, setting_name, key);
|
||||
|
||||
/* Work around for previous syntax */
|
||||
if (!addresses && !strcmp (key, NM_SETTING_IP4_CONFIG_ADDRESSES))
|
||||
addresses = read_addresses (file, setting->name, "address");
|
||||
addresses = read_addresses (file, setting_name, "address");
|
||||
|
||||
if (addresses) {
|
||||
g_object_set (setting, key, addresses, NULL);
|
||||
@@ -278,7 +281,7 @@ read_array_of_array_of_uint (GKeyFile *file,
|
||||
} else if (!strcmp (key, NM_SETTING_IP4_CONFIG_ROUTES)) {
|
||||
GPtrArray *routes;
|
||||
|
||||
routes = read_routes (file, setting->name, key);
|
||||
routes = read_routes (file, setting_name, key);
|
||||
if (routes) {
|
||||
g_object_set (setting, key, routes, NULL);
|
||||
g_ptr_array_foreach (routes, free_one_route, NULL);
|
||||
@@ -295,13 +298,14 @@ read_hash_of_string (GKeyFile *file, NMSetting *setting, const char *key)
|
||||
{
|
||||
char **keys, **iter;
|
||||
char *value;
|
||||
const char *setting_name = nm_setting_get_name (setting);
|
||||
|
||||
keys = g_key_file_get_keys (file, setting->name, NULL, NULL);
|
||||
keys = g_key_file_get_keys (file, setting_name, NULL, NULL);
|
||||
if (!keys || !*keys)
|
||||
return;
|
||||
|
||||
for (iter = keys; *iter; iter++) {
|
||||
value = g_key_file_get_string (file, setting->name, *iter, NULL);
|
||||
value = g_key_file_get_string (file, setting_name, *iter, NULL);
|
||||
if (!value)
|
||||
continue;
|
||||
|
||||
@@ -330,6 +334,7 @@ read_one_setting_value (NMSetting *setting,
|
||||
{
|
||||
ReadSettingInfo *info = (ReadSettingInfo *) user_data;
|
||||
GKeyFile *file = info->keyfile;
|
||||
const char *setting_name;
|
||||
GType type;
|
||||
GError *err = NULL;
|
||||
gboolean check_for_key = TRUE;
|
||||
@@ -347,15 +352,17 @@ read_one_setting_value (NMSetting *setting,
|
||||
&& !strcmp (key, NM_SETTING_CONNECTION_READ_ONLY))
|
||||
return;
|
||||
|
||||
setting_name = nm_setting_get_name (setting);
|
||||
|
||||
/* IPv4 addresses and VPN properties don't have the exact key name */
|
||||
if (NM_IS_SETTING_IP4_CONFIG (setting) && !strcmp (key, NM_SETTING_IP4_CONFIG_ADDRESSES))
|
||||
check_for_key = FALSE;
|
||||
else if (NM_IS_SETTING_VPN (setting))
|
||||
check_for_key = FALSE;
|
||||
|
||||
if (check_for_key && !g_key_file_has_key (file, setting->name, key, &err)) {
|
||||
if (check_for_key && !g_key_file_has_key (file, setting_name, key, &err)) {
|
||||
if (err) {
|
||||
g_warning ("Error loading setting '%s' value: %s", setting->name, err->message);
|
||||
g_warning ("Error loading setting '%s' value: %s", setting_name, err->message);
|
||||
g_error_free (err);
|
||||
}
|
||||
|
||||
@@ -367,30 +374,30 @@ read_one_setting_value (NMSetting *setting,
|
||||
if (type == G_TYPE_STRING) {
|
||||
char *str_val;
|
||||
|
||||
str_val = g_key_file_get_string (file, setting->name, key, NULL);
|
||||
str_val = g_key_file_get_string (file, setting_name, key, NULL);
|
||||
g_object_set (setting, key, str_val, NULL);
|
||||
g_free (str_val);
|
||||
} else if (type == G_TYPE_UINT) {
|
||||
int int_val;
|
||||
|
||||
int_val = g_key_file_get_integer (file, setting->name, key, NULL);
|
||||
int_val = g_key_file_get_integer (file, setting_name, key, NULL);
|
||||
if (int_val < 0)
|
||||
g_warning ("Casting negative value (%i) to uint", int_val);
|
||||
g_object_set (setting, key, int_val, NULL);
|
||||
} else if (type == G_TYPE_INT) {
|
||||
int int_val;
|
||||
|
||||
int_val = g_key_file_get_integer (file, setting->name, key, NULL);
|
||||
int_val = g_key_file_get_integer (file, setting_name, key, NULL);
|
||||
g_object_set (setting, key, int_val, NULL);
|
||||
} else if (type == G_TYPE_BOOLEAN) {
|
||||
gboolean bool_val;
|
||||
|
||||
bool_val = g_key_file_get_boolean (file, setting->name, key, NULL);
|
||||
bool_val = g_key_file_get_boolean (file, setting_name, key, NULL);
|
||||
g_object_set (setting, key, bool_val, NULL);
|
||||
} else if (type == G_TYPE_CHAR) {
|
||||
int int_val;
|
||||
|
||||
int_val = g_key_file_get_integer (file, setting->name, key, NULL);
|
||||
int_val = g_key_file_get_integer (file, setting_name, key, NULL);
|
||||
if (int_val < G_MININT8 || int_val > G_MAXINT8)
|
||||
g_warning ("Casting value (%i) to char", int_val);
|
||||
|
||||
@@ -399,7 +406,7 @@ read_one_setting_value (NMSetting *setting,
|
||||
char *tmp_str;
|
||||
guint64 uint_val;
|
||||
|
||||
tmp_str = g_key_file_get_value (file, setting->name, key, NULL);
|
||||
tmp_str = g_key_file_get_value (file, setting_name, key, NULL);
|
||||
uint_val = g_ascii_strtoull (tmp_str, NULL, 10);
|
||||
g_free (tmp_str);
|
||||
g_object_set (setting, key, uint_val, NULL);
|
||||
@@ -409,7 +416,7 @@ read_one_setting_value (NMSetting *setting,
|
||||
gsize length;
|
||||
int i;
|
||||
|
||||
tmp = g_key_file_get_integer_list (file, setting->name, key, &length, NULL);
|
||||
tmp = g_key_file_get_integer_list (file, setting_name, key, &length, NULL);
|
||||
|
||||
array = g_byte_array_sized_new (length);
|
||||
for (i = 0; i < length; i++) {
|
||||
@@ -431,7 +438,7 @@ read_one_setting_value (NMSetting *setting,
|
||||
int i;
|
||||
GSList *list = NULL;
|
||||
|
||||
sa = g_key_file_get_string_list (file, setting->name, key, &length, NULL);
|
||||
sa = g_key_file_get_string_list (file, setting_name, key, &length, NULL);
|
||||
for (i = 0; i < length; i++)
|
||||
list = g_slist_prepend (list, sa[i]);
|
||||
|
||||
@@ -445,16 +452,16 @@ read_one_setting_value (NMSetting *setting,
|
||||
} else if (type == DBUS_TYPE_G_UINT_ARRAY) {
|
||||
if (!read_array_of_uint (file, setting, key)) {
|
||||
g_warning ("Unhandled setting property type (read): '%s/%s' : '%s'",
|
||||
setting->name, key, G_VALUE_TYPE_NAME (value));
|
||||
setting_name, key, G_VALUE_TYPE_NAME (value));
|
||||
}
|
||||
} else if (type == DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT) {
|
||||
if (!read_array_of_array_of_uint (file, setting, key)) {
|
||||
g_warning ("Unhandled setting property type (read): '%s/%s' : '%s'",
|
||||
setting->name, key, G_VALUE_TYPE_NAME (value));
|
||||
setting_name, key, G_VALUE_TYPE_NAME (value));
|
||||
}
|
||||
} else {
|
||||
g_warning ("Unhandled setting property type (read): '%s/%s' : '%s'",
|
||||
setting->name, key, G_VALUE_TYPE_NAME (value));
|
||||
setting_name, key, G_VALUE_TYPE_NAME (value));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -48,7 +48,7 @@ write_array_of_uint (GKeyFile *file,
|
||||
}
|
||||
}
|
||||
|
||||
g_key_file_set_string_list (file, setting->name, key, (const char **) list, array->len);
|
||||
g_key_file_set_string_list (file, nm_setting_get_name (setting), key, (const char **) list, array->len);
|
||||
g_strfreev (list);
|
||||
} else {
|
||||
int *tmp_array;
|
||||
@@ -57,7 +57,7 @@ write_array_of_uint (GKeyFile *file,
|
||||
for (i = 0; i < array->len; i++)
|
||||
tmp_array[i] = g_array_index (array, int, i);
|
||||
|
||||
g_key_file_set_integer_list (file, setting->name, key, tmp_array, array->len);
|
||||
g_key_file_set_integer_list (file, nm_setting_get_name (setting), key, tmp_array, array->len);
|
||||
g_free (tmp_array);
|
||||
}
|
||||
|
||||
@@ -136,9 +136,9 @@ write_array_of_array_of_uint (GKeyFile *file,
|
||||
return TRUE;
|
||||
|
||||
if (!strcmp (key, NM_SETTING_IP4_CONFIG_ADDRESSES))
|
||||
write_ip4_values (file, setting->name, key, array, 3, 0, 2);
|
||||
write_ip4_values (file, nm_setting_get_name (setting), key, array, 3, 0, 2);
|
||||
else if (!strcmp (key, NM_SETTING_IP4_CONFIG_ROUTES))
|
||||
write_ip4_values (file, setting->name, key, array, 4, 0, 2);
|
||||
write_ip4_values (file, nm_setting_get_name (setting), key, array, 4, 0, 2);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -177,7 +177,7 @@ write_hash_of_string (GKeyFile *file,
|
||||
&& !strcmp (key, NM_SETTING_VPN_SECRETS)) {
|
||||
info.setting_name = VPN_SECRETS_GROUP;
|
||||
} else
|
||||
info.setting_name = setting->name;
|
||||
info.setting_name = nm_setting_get_name (setting);
|
||||
|
||||
g_hash_table_foreach (hash, write_hash_of_string_helper, &info);
|
||||
}
|
||||
@@ -190,6 +190,7 @@ write_setting_value (NMSetting *setting,
|
||||
gpointer user_data)
|
||||
{
|
||||
GKeyFile *file = (GKeyFile *) user_data;
|
||||
const char *setting_name;
|
||||
GType type;
|
||||
|
||||
type = G_VALUE_TYPE (value);
|
||||
@@ -203,26 +204,28 @@ write_setting_value (NMSetting *setting,
|
||||
&& !strcmp (key, NM_SETTING_CONNECTION_READ_ONLY))
|
||||
return;
|
||||
|
||||
setting_name = nm_setting_get_name (setting);
|
||||
|
||||
if (type == G_TYPE_STRING) {
|
||||
const char *str;
|
||||
|
||||
str = g_value_get_string (value);
|
||||
if (str)
|
||||
g_key_file_set_string (file, setting->name, key, str);
|
||||
g_key_file_set_string (file, setting_name, key, str);
|
||||
} else if (type == G_TYPE_UINT)
|
||||
g_key_file_set_integer (file, setting->name, key, (int) g_value_get_uint (value));
|
||||
g_key_file_set_integer (file, setting_name, key, (int) g_value_get_uint (value));
|
||||
else if (type == G_TYPE_INT)
|
||||
g_key_file_set_integer (file, setting->name, key, g_value_get_int (value));
|
||||
g_key_file_set_integer (file, setting_name, key, g_value_get_int (value));
|
||||
else if (type == G_TYPE_UINT64) {
|
||||
char *numstr;
|
||||
|
||||
numstr = g_strdup_printf ("%" G_GUINT64_FORMAT, g_value_get_uint64 (value));
|
||||
g_key_file_set_value (file, setting->name, key, numstr);
|
||||
g_key_file_set_value (file, setting_name, key, numstr);
|
||||
g_free (numstr);
|
||||
} else if (type == G_TYPE_BOOLEAN) {
|
||||
g_key_file_set_boolean (file, setting->name, key, g_value_get_boolean (value));
|
||||
g_key_file_set_boolean (file, setting_name, key, g_value_get_boolean (value));
|
||||
} else if (type == G_TYPE_CHAR) {
|
||||
g_key_file_set_integer (file, setting->name, key, (int) g_value_get_char (value));
|
||||
g_key_file_set_integer (file, setting_name, key, (int) g_value_get_char (value));
|
||||
} else if (type == DBUS_TYPE_G_UCHAR_ARRAY) {
|
||||
GByteArray *array;
|
||||
|
||||
@@ -235,7 +238,7 @@ write_setting_value (NMSetting *setting,
|
||||
for (i = 0; i < array->len; i++)
|
||||
tmp_array[i] = (int) array->data[i];
|
||||
|
||||
g_key_file_set_integer_list (file, setting->name, key, tmp_array, array->len);
|
||||
g_key_file_set_integer_list (file, setting_name, key, tmp_array, array->len);
|
||||
g_free (tmp_array);
|
||||
}
|
||||
} else if (type == dbus_g_type_get_collection ("GSList", G_TYPE_STRING)) {
|
||||
@@ -251,7 +254,7 @@ write_setting_value (NMSetting *setting,
|
||||
for (iter = list; iter; iter = iter->next)
|
||||
array[i++] = iter->data;
|
||||
|
||||
g_key_file_set_string_list (file, setting->name, key, (const gchar **const) array, i);
|
||||
g_key_file_set_string_list (file, setting_name, key, (const gchar **const) array, i);
|
||||
g_free (array);
|
||||
}
|
||||
} else if (type == dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING)) {
|
||||
@@ -259,16 +262,16 @@ write_setting_value (NMSetting *setting,
|
||||
} else if (type == DBUS_TYPE_G_UINT_ARRAY) {
|
||||
if (!write_array_of_uint (file, setting, key, value)) {
|
||||
g_warning ("Unhandled setting property type (write) '%s/%s' : '%s'",
|
||||
setting->name, key, g_type_name (type));
|
||||
setting_name, key, g_type_name (type));
|
||||
}
|
||||
} else if (type == DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT) {
|
||||
if (!write_array_of_array_of_uint (file, setting, key, value)) {
|
||||
g_warning ("Unhandled setting property type (write) '%s/%s' : '%s'",
|
||||
setting->name, key, g_type_name (type));
|
||||
setting_name, key, g_type_name (type));
|
||||
}
|
||||
} else {
|
||||
g_warning ("Unhandled setting property type (write) '%s/%s' : '%s'",
|
||||
setting->name, key, g_type_name (type));
|
||||
setting_name, key, g_type_name (type));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user