NetworkManager r3865 - in trunk: . libnm-util
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: NetworkManager r3865 - in trunk: . libnm-util
- Date: Sun, 27 Jul 2008 21:24:55 +0000 (UTC)
Author: dcbw
Date: Sun Jul 27 21:24:55 2008
New Revision: 3865
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3865&view=rev
Log:
2008-07-27 Dan Williams <dcbw redhat com>
* libnm-util/nm-setting-ip6-config.c
- (set_property): add missing break that caused routes to be overwritten
with addresses
* libnm-util/nm-setting-ip6-config.c
- (verify): validate routes and return GError everywhere on invalid setting
- (finalize): don't leak routes
- (set_property): add missing break that caused routes to be overwritten
with addresses
Modified:
trunk/ChangeLog
trunk/libnm-util/nm-setting-ip4-config.c
trunk/libnm-util/nm-setting-ip6-config.c
Modified: trunk/libnm-util/nm-setting-ip4-config.c
==============================================================================
--- trunk/libnm-util/nm-setting-ip4-config.c (original)
+++ trunk/libnm-util/nm-setting-ip4-config.c Sun Jul 27 21:24:55 2008
@@ -148,12 +148,18 @@
}
if (self->dhcp_client_id && !strlen (self->dhcp_client_id)) {
- g_warning ("invalid DHCP client ID");
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID);
return FALSE;
}
if (self->dhcp_hostname && !strlen (self->dhcp_hostname)) {
- g_warning ("invalid DHCP client ID");
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME);
return FALSE;
}
@@ -162,13 +168,39 @@
NMSettingIP4Address *addr = (NMSettingIP4Address *) iter->data;
if (!addr->address) {
- g_warning ("invalid IP4 address #%d", i);
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_ADDRESSES);
return FALSE;
}
if (!addr->prefix || addr->prefix > 32) {
- g_warning ("invalid IP4 address prefix %d for address #%d",
- addr->prefix, i);
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_ADDRESSES);
+ return FALSE;
+ }
+ }
+
+ /* Validate routes */
+ for (iter = self->routes, i = 0; iter; iter = g_slist_next (iter), i++) {
+ NMSettingIP4Address *addr = (NMSettingIP4Address *) iter->data;
+
+ if (!addr->address) {
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_ROUTES);
+ return FALSE;
+ }
+
+ if (!addr->prefix || addr->prefix > 32) {
+ g_set_error (error,
+ NM_SETTING_IP4_CONFIG_ERROR,
+ NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
+ NM_SETTING_IP4_CONFIG_ROUTES);
return FALSE;
}
}
@@ -195,6 +227,7 @@
nm_utils_slist_free (self->dns_search, g_free);
nm_utils_slist_free (self->addresses, g_free);
+ nm_utils_slist_free (self->routes, g_free);
G_OBJECT_CLASS (nm_setting_ip4_config_parent_class)->finalize (object);
}
@@ -222,6 +255,7 @@
case PROP_ADDRESSES:
nm_utils_slist_free (setting->addresses, g_free);
setting->addresses = nm_utils_ip4_addresses_from_gvalue (value);
+ break;
case PROP_ROUTES:
nm_utils_slist_free (setting->routes, g_free);
setting->routes = nm_utils_ip4_addresses_from_gvalue (value);
Modified: trunk/libnm-util/nm-setting-ip6-config.c
==============================================================================
--- trunk/libnm-util/nm-setting-ip6-config.c (original)
+++ trunk/libnm-util/nm-setting-ip6-config.c Sun Jul 27 21:24:55 2008
@@ -204,6 +204,7 @@
case PROP_ADDRESSES:
nm_utils_slist_free (setting->addresses, g_free);
setting->addresses = nm_utils_ip6_addresses_from_gvalue (value);
+ break;
case PROP_ROUTES:
nm_utils_slist_free (setting->routes, g_free);
setting->routes = nm_utils_ip6_addresses_from_gvalue (value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]