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:
Dan Williams
2008-10-27 17:36:18 +00:00
parent 519f8cd6c9
commit c438326110
20 changed files with 109 additions and 66 deletions

View File

@@ -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));
}
}

View File

@@ -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));
}
}