diff options
Diffstat (limited to 'src/nm-ip4-config.c')
-rw-r--r-- | src/nm-ip4-config.c | 162 |
1 files changed, 12 insertions, 150 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 0bf780b894..718c80cb41 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -56,8 +56,6 @@ typedef struct { GPtrArray *searches; gchar *hostname; - gchar *nis_domain; - GArray *nis_servers; GSList *routes; } NMIP4ConfigPrivate; @@ -68,8 +66,6 @@ enum { PROP_HOSTNAME, PROP_NAMESERVERS, PROP_DOMAINS, - PROP_NIS_DOMAIN, - PROP_NIS_SERVERS, PROP_ROUTES, LAST_PROP @@ -95,56 +91,6 @@ nm_ip4_config_new (void) return (NMIP4Config *) object; } -NMIP4Config *nm_ip4_config_copy (NMIP4Config *src_config) -{ - NMIP4Config *dst_config; - NMIP4ConfigPrivate *src_priv; - int i; - int len; - GSList *iter; - - g_return_val_if_fail (NM_IS_IP4_CONFIG (src_config), NULL); - - dst_config = nm_ip4_config_new (); - src_priv = NM_IP4_CONFIG_GET_PRIVATE (src_config); - - for (iter = src_priv->addresses; iter; iter = g_slist_next (iter)) { - NMSettingIP4Address *src_addr = (NMSettingIP4Address *) iter->data; - NMSettingIP4Address *dst_addr; - - dst_addr = g_malloc0 (sizeof (NMSettingIP4Address)); - memcpy (dst_addr, src_addr, sizeof (NMSettingIP4Address)); - nm_ip4_config_take_address (dst_config, dst_addr); - } - - nm_ip4_config_set_ptp_address (dst_config, nm_ip4_config_get_ptp_address (src_config)); - nm_ip4_config_set_hostname (dst_config, nm_ip4_config_get_hostname (src_config)); - nm_ip4_config_set_nis_domain (dst_config, nm_ip4_config_get_nis_domain (src_config)); - - len = nm_ip4_config_get_num_nameservers (src_config); - for (i = 0; i < len; i++) - nm_ip4_config_add_nameserver (dst_config, nm_ip4_config_get_nameserver (src_config, i)); - - len = nm_ip4_config_get_num_domains (src_config); - for (i = 0; i < len; i++) - nm_ip4_config_add_domain (dst_config, nm_ip4_config_get_domain (src_config, i)); - - len = nm_ip4_config_get_num_nis_servers (src_config); - for (i = 0; i < len; i++) - nm_ip4_config_add_nis_server (dst_config, nm_ip4_config_get_nis_server (src_config, i)); - - for (iter = src_priv->routes; iter; iter = g_slist_next (iter)) { - NMSettingIP4Route *src_route = (NMSettingIP4Route *) iter->data; - NMSettingIP4Route *dst_route; - - dst_route = g_malloc0 (sizeof (NMSettingIP4Route)); - memcpy (dst_route, src_route, sizeof (NMSettingIP4Route)); - nm_ip4_config_take_route (dst_config, dst_route); - } - - return dst_config; -} - void nm_ip4_config_take_address (NMIP4Config *config, NMSettingIP4Address *address) @@ -180,6 +126,7 @@ nm_ip4_config_replace_address (NMIP4Config *config, NMSettingIP4Address *new_address) { NMIP4ConfigPrivate *priv; + NMSettingIP4Address *copy; GSList *old; g_return_if_fail (NM_IS_IP4_CONFIG (config)); @@ -187,9 +134,11 @@ nm_ip4_config_replace_address (NMIP4Config *config, priv = NM_IP4_CONFIG_GET_PRIVATE (config); old = g_slist_nth (priv->addresses, i); g_return_if_fail (old != NULL); - g_free (old->data); - old->data = new_address; + + copy = g_malloc0 (sizeof (NMSettingIP4Address)); + memcpy (copy, new_address, sizeof (NMSettingIP4Address)); + old->data = copy; } const NMSettingIP4Address *nm_ip4_config_get_address (NMIP4Config *config, guint i) @@ -253,27 +202,6 @@ void nm_ip4_config_reset_nameservers (NMIP4Config *config) g_array_remove_range (priv->nameservers, 0, priv->nameservers->len); } -void nm_ip4_config_add_nis_server (NMIP4Config *config, guint32 nis_server) -{ - g_return_if_fail (NM_IS_IP4_CONFIG (config)); - - g_array_append_val (NM_IP4_CONFIG_GET_PRIVATE (config)->nis_servers, nis_server); -} - -guint32 nm_ip4_config_get_nis_server (NMIP4Config *config, guint i) -{ - g_return_val_if_fail (NM_IS_IP4_CONFIG (config), 0); - - return g_array_index (NM_IP4_CONFIG_GET_PRIVATE (config)->nis_servers, guint32, i); -} - -guint32 nm_ip4_config_get_num_nis_servers (NMIP4Config *config) -{ - g_return_val_if_fail (NM_IS_IP4_CONFIG (config), 0); - - return NM_IP4_CONFIG_GET_PRIVATE (config)->nis_servers->len; -} - void nm_ip4_config_set_hostname (NMIP4Config *config, const char *hostname) { g_return_if_fail (NM_IS_IP4_CONFIG (config)); @@ -292,23 +220,6 @@ const char *nm_ip4_config_get_hostname (NMIP4Config *config) return NM_IP4_CONFIG_GET_PRIVATE (config)->hostname; } -void nm_ip4_config_set_nis_domain (NMIP4Config *config, const char *domain) -{ - g_return_if_fail (NM_IS_IP4_CONFIG (config)); - g_return_if_fail (domain != NULL); - - if (!strlen (domain)) - return; - - NM_IP4_CONFIG_GET_PRIVATE (config)->nis_domain = g_strdup (domain); -} - -const char *nm_ip4_config_get_nis_domain (NMIP4Config *config) -{ - g_return_val_if_fail( NM_IS_IP4_CONFIG (config), NULL); - return NM_IP4_CONFIG_GET_PRIVATE (config)->nis_domain; -} - void nm_ip4_config_take_route (NMIP4Config *config, NMSettingIP4Route *route) @@ -344,6 +255,7 @@ nm_ip4_config_replace_route (NMIP4Config *config, NMSettingIP4Route *new_route) { NMIP4ConfigPrivate *priv; + NMSettingIP4Route *copy; GSList *old; g_return_if_fail (NM_IS_IP4_CONFIG (config)); @@ -351,9 +263,11 @@ nm_ip4_config_replace_route (NMIP4Config *config, priv = NM_IP4_CONFIG_GET_PRIVATE (config); old = g_slist_nth (priv->routes, i); g_return_if_fail (old != NULL); - g_free (old->data); - old->data = new_route; + + copy = g_malloc0 (sizeof (NMSettingIP4Route)); + memcpy (copy, new_route, sizeof (NMSettingIP4Route)); + old->data = copy; } const NMSettingIP4Route * @@ -565,7 +479,6 @@ nm_ip4_config_init (NMIP4Config *config) NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (config); priv->nameservers = g_array_new (FALSE, TRUE, sizeof (guint32)); - priv->nis_servers = g_array_new (FALSE, TRUE, sizeof (guint32)); priv->domains = g_ptr_array_new (); priv->searches = g_ptr_array_new (); } @@ -577,44 +490,13 @@ finalize (GObject *object) nm_utils_slist_free (priv->addresses, g_free); g_free (priv->hostname); - g_free (priv->nis_domain); g_array_free (priv->nameservers, TRUE); g_ptr_array_free (priv->domains, TRUE); g_ptr_array_free (priv->searches, TRUE); - g_array_free (priv->nis_servers, TRUE); nm_utils_slist_free (priv->routes, g_free); } static void -ip4_addresses_to_gvalue (GSList *list, GValue *value) -{ - GPtrArray *addresses; - GSList *iter; - - addresses = g_ptr_array_new (); - - for (iter = list; iter; iter = iter->next) { - NMSettingIP4Address *ip4_addr = (NMSettingIP4Address *) iter->data; - GArray *array; - const guint32 empty_val = 0; - - array = g_array_sized_new (FALSE, TRUE, sizeof (guint32), 3); - - g_array_append_val (array, ip4_addr->address); - g_array_append_val (array, ip4_addr->prefix); - - if (ip4_addr->gateway) - g_array_append_val (array, ip4_addr->gateway); - else - g_array_append_val (array, empty_val); - - g_ptr_array_add (addresses, array); - } - - g_value_take_boxed (value, addresses); -} - -static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { @@ -622,7 +504,7 @@ get_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_ADDRESSES: - ip4_addresses_to_gvalue (priv->addresses, value); + nm_utils_ip4_addresses_to_gvalue (priv->addresses, value); break; case PROP_HOSTNAME: g_value_set_string (value, priv->hostname); @@ -633,14 +515,8 @@ get_property (GObject *object, guint prop_id, case PROP_DOMAINS: g_value_set_boxed (value, priv->domains); break; - case PROP_NIS_DOMAIN: - g_value_set_string (value, priv->nis_domain); - break; - case PROP_NIS_SERVERS: - g_value_set_boxed (value, priv->nis_servers); - break; case PROP_ROUTES: - ip4_addresses_to_gvalue (priv->routes, value); + nm_utils_ip4_routes_to_gvalue (priv->routes, value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -688,20 +564,6 @@ nm_ip4_config_class_init (NMIP4ConfigClass *config_class) "Domains", DBUS_TYPE_G_ARRAY_OF_STRING, G_PARAM_READABLE)); - g_object_class_install_property - (object_class, PROP_NIS_DOMAIN, - g_param_spec_string (NM_IP4_CONFIG_NIS_DOMAIN, - "NIS domain", - "NIS domain name", - NULL, - G_PARAM_READABLE)); - g_object_class_install_property - (object_class, PROP_NIS_SERVERS, - g_param_spec_boxed (NM_IP4_CONFIG_NIS_SERVERS, - "NIS servers", - "NIS servers", - DBUS_TYPE_G_UINT_ARRAY, - G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_ROUTES, |