rpms/NetworkManager/FC-4 NetworkManager-0.4-static-ip-nameservers.patch, 1.2, 1.3

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Jun 13 15:33:28 UTC 2005


Author: dcbw

Update of /cvs/dist/rpms/NetworkManager/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv4942

Modified Files:
	NetworkManager-0.4-static-ip-nameservers.patch 
Log Message:
Make the static IP nameservers patch actually compile and work


NetworkManager-0.4-static-ip-nameservers.patch:
 Makefile.am                     |    1 
 NetworkManagerDevice.c          |    2 
 NetworkManagerSystem.c          |  118 ++++++++++++++++++++++++++++++++++++++++
 NetworkManagerSystem.h          |    5 +
 backends/NetworkManagerRedHat.c |  110 +++++++++++++++++++++++++++++++++++++
 5 files changed, 235 insertions(+), 1 deletion(-)

Index: NetworkManager-0.4-static-ip-nameservers.patch
===================================================================
RCS file: /cvs/dist/rpms/NetworkManager/FC-4/NetworkManager-0.4-static-ip-nameservers.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NetworkManager-0.4-static-ip-nameservers.patch	10 Jun 2005 05:10:15 -0000	1.2
+++ NetworkManager-0.4-static-ip-nameservers.patch	13 Jun 2005 15:33:24 -0000	1.3
@@ -1,11 +1,19 @@
---- NetworkManager-0.4/src/backends/NetworkManagerRedHat.c.static-resolv-conf	2005-06-10 00:51:15.000000000 -0400
-+++ NetworkManager-0.4/src/backends/NetworkManagerRedHat.c	2005-06-10 01:05:07.000000000 -0400
-@@ -364,6 +364,106 @@
- }
+--- NetworkManager-0.4/src/Makefile.am.static-ip-nameservers	2005-03-22 11:37:38.000000000 -0500
++++ NetworkManager-0.4/src/Makefile.am	2005-06-13 10:44:03.000000000 -0400
+@@ -53,6 +53,7 @@
+ 	-DG_DISABLE_DEPRECATED			\
+ 	-DBINDIR=\"$(bindir)\"			\
+ 	-DDATADIR=\"$(datadir)\"			\
++    -DSYSCONFDIR=\"$(sysconfdir)\"  \
+ 	-DARP_DEBUG
+ if WITH_GCRYPT
+ NetworkManager_CPPFLAGS += $(LIBGCRYPT_CFLAGS)
+--- NetworkManager-0.4/src/backends/NetworkManagerRedHat.c.static-ip-nameservers	2005-06-13 10:44:02.000000000 -0400
++++ NetworkManager-0.4/src/backends/NetworkManagerRedHat.c	2005-06-13 11:14:42.000000000 -0400
+@@ -125,6 +125,105 @@
  
  
-+
-+/*
+ /*
 + * get_current_profile_name
 + *
 + * Retrieve the current network profile, if any
@@ -34,14 +42,14 @@
 + * Add nameservers and search names from a resolv.conf format file.
 + *
 + */
-+static void set_ip4_config_from_resolv_conf (const char *filename, NMIP4Config *ip4_config)
++static void set_ip4_config_from_resolv_conf (NMDevice *dev, const char *filename)
 +{
 +	char *	contents = NULL;
 +	char **	split_contents = NULL;
 +	int		i, len;
 +
++	g_return_if_fail (dev != NULL);
 +	g_return_if_fail (filename != NULL);
-+	g_return_if_fail (ip4_config != NULL);
 +
 +	if (!g_file_get_contents (filename, &contents, NULL, NULL) || (contents == NULL))
 +		return;
@@ -76,14 +84,14 @@
 +				for (m = 0; m < srch_len; m++)
 +				{
 +					if (split_searches[m])
-+						nm_ip4_config_add_domain	(ip4_config, split_searches[m]);
++						nm_system_device_add_domain_search (dev, split_searches[m]);
 +				}
 +				g_strfreev (split_searches);
 +			}
 +			else
 +			{
 +				/* Only 1 item, add the whole line */
-+				nm_ip4_config_add_domain	(ip4_config, searches);
++				nm_system_device_add_domain_search (dev, searches);
 +			}
 +
 +			g_free (searches);
@@ -93,7 +101,7 @@
 +			guint32	addr = (guint32) (inet_addr (line + 11));
 +
 +			if (addr != (guint32) -1)
-+				nm_ip4_config_add_nameserver (ip4_config, addr);
++				nm_system_device_add_ip4_nameserver (dev, addr);
 +		}
 +	}
 +
@@ -104,28 +112,180 @@
 +}
 +
 +
- /*
-  * nm_system_device_update_config_info
++/*
+  * nm_system_device_setup_static_ip4_config
   *
-@@ -472,6 +572,21 @@
- 		use_dhcp = TRUE;
+  * Set up the device with a particular IPv4 address/netmask/gateway.
+@@ -148,6 +247,7 @@
+ 	char			*buf;
+ 	int			 err;
+ 	const char	*iface;
++	char * cur_profile_name = get_current_profile_name ();
+ 
+ 	g_return_val_if_fail (dev != NULL, FALSE);
+ 	g_return_val_if_fail (!nm_device_config_get_use_dhcp (dev), FALSE);
+@@ -204,6 +304,16 @@
+ 		goto error;
  	}
+ 	g_free (buf);
++
++	if (cur_profile_name)
++	{
++		char *filename = g_strdup_printf (SYSCONFDIR"/sysconfig/networking/profiles/%s/resolv.conf", cur_profile_name);
++		
++		set_ip4_config_from_resolv_conf (dev, filename);
++		g_free (filename);
++		g_free (cur_profile_name);
++	}
++
+ 	return (TRUE);
+ 
+ error:
+--- NetworkManager-0.4/src/NetworkManagerSystem.c.static-ip-nameservers	2005-06-13 11:06:34.000000000 -0400
++++ NetworkManager-0.4/src/NetworkManagerSystem.c	2005-06-13 11:20:59.000000000 -0400
+@@ -216,3 +216,121 @@
+ 	return (success);
+ }
  
-+	/* If we're using Static IP, grab DNS servers from the profile's config file */
-+	if (!sys_data->use_dhcp)
++
++gboolean nm_system_device_add_ip4_nameserver (NMDevice *dev, guint32 ip4_nameserver)
++{
++	gboolean success = FALSE;
++	char *nameserver;
++	GError *error = NULL;
++	NMData *data;
++	guint id;
++
++	g_return_val_if_fail (dev != NULL, FALSE);
++	data = nm_device_get_app_data (dev);
++	g_return_val_if_fail (data != NULL, FALSE);
++
++	nameserver = g_strdup_printf ("%u.%u.%u.%u",
++				      ((unsigned char *)ip4_nameserver)[0],
++				      ((unsigned char *)ip4_nameserver)[1],
++				      ((unsigned char *)ip4_nameserver)[2],
++				      ((unsigned char *)ip4_nameserver)[3]);
++	nm_info ("Adding nameserver: %s", nameserver);
++
++	if ((id = nm_named_manager_add_nameserver_ipv4 (data->named, nameserver, &error)))
 +	{
-+		char * cur_profile_name = get_current_profile_name ();
++		data->nameserver_ids = g_list_prepend (data->nameserver_ids, GUINT_TO_POINTER (id));
++		success = TRUE;
++	}
++	else
++	{
++		nm_warning ("Couldn't add nameserver: %s\n", error->message);
++		g_clear_error (&error);
++	}
++	g_free (nameserver);
 +
-+		if (cur_profile_name)
++	return success;
++}
++
++
++void nm_system_device_clear_ip4_nameservers (NMDevice *dev)
++{
++	GList *elt;
++	GError *error = NULL;
++	NMData *data;
++
++	g_return_val_if_fail (dev != NULL, FALSE);
++	data = nm_device_get_app_data (dev);
++	g_return_val_if_fail (data != NULL, FALSE);
++
++	/* Reset our nameserver list */
++	for (elt = data->nameserver_ids; elt; elt = elt->next)
++	{
++		if (!nm_named_manager_remove_nameserver_ipv4 (data->named,
++							      GPOINTER_TO_UINT (elt->data),
++							      &error))
 +		{
-+			char *filename = g_strdup_printf (SYSCONFDIR"/sysconfig/networking/profiles/%s/resolv.conf", cur_profile_name);
-+			
-+			set_ip4_config_from_resolv_conf (filename, sys_data->config);
-+			g_free (filename);
-+			g_free (cur_profile_name);
++			nm_warning ("Couldn't remove nameserver: %s", error->message);
++			g_clear_error (&error);
 +		}
-+	}	
++	}
++	g_list_free (data->nameserver_ids);
++	data->nameserver_ids = NULL;
++	
++}
++
++
++gboolean nm_system_device_add_domain_search (NMDevice *dev, const char *search)
++{
++	gboolean success = FALSE;
++	guint id;
++	GError *error = NULL;
++	NMData *data;
++
++	g_return_val_if_fail (dev != NULL, FALSE);
++	g_return_val_if_fail (search != NULL, FALSE);
++	g_return_val_if_fail (strlen (search) <= 0, FALSE);
++
++	data = nm_device_get_app_data (dev);
++	g_return_val_if_fail (data != NULL, FALSE);
++
++	nm_warning ("Adding domain search: %s\n", search);
++	if ((id = nm_named_manager_add_domain_search (data->named, search, &error)))
++	{
++		data->domain_search_ids = g_list_append (data->domain_search_ids, GUINT_TO_POINTER (id));
++		success = TRUE;
++	}
++	else
++	{
++		nm_warning ("Couldn't add domain search '%s': %s\n", search, error->message);
++		g_clear_error (&error);
++	}
++
++	return success;
++}
 +
- 	/* If successful, set values on the device */
- 	nm_device_config_set_use_dhcp (dev, use_dhcp);
- 	if (ip4_address)
++void nm_system_device_clear_domain_searches (NMDevice *dev)
++{
++	GError *error = NULL;
++	GList *elt;
++	NMData *data;
++
++	g_return_val_if_fail (dev != NULL, FALSE);
++	data = nm_device_get_app_data (dev);
++	g_return_val_if_fail (data != NULL, FALSE);
++
++	/* Reset our domain search list */
++	for (elt = data->domain_search_ids; elt; elt = elt->next)
++	{
++		if (!nm_named_manager_remove_domain_search (data->named,
++							    GPOINTER_TO_UINT (elt->data),
++							    &error))
++		{
++			nm_warning ("Couldn't remove domain search: %s\n", error->message);
++			g_clear_error (&error);
++		}
++	}
++	g_list_free (data->domain_search_ids);
++	data->domain_search_ids = NULL;
++}
++
++
+--- NetworkManager-0.4/src/NetworkManagerDevice.c.static-ip-nameservers	2005-06-13 11:17:52.000000000 -0400
++++ NetworkManager-0.4/src/NetworkManagerDevice.c	2005-06-13 11:21:48.000000000 -0400
+@@ -2670,6 +2670,8 @@
+ 	else
+ 	{
+ 		/* Manually set up the device */
++		nm_system_device_clear_ip4_nameservers (dev);
++		nm_system_device_clear_domain_searches (dev);
+ 		success = nm_system_device_setup_static_ip4_config (dev);
+ 	}
+ 
+--- NetworkManager-0.4/src/NetworkManagerSystem.h.static-ip-nameservers	2005-06-13 11:06:25.000000000 -0400
++++ NetworkManager-0.4/src/NetworkManagerSystem.h	2005-06-13 11:21:16.000000000 -0400
+@@ -52,6 +52,9 @@
+ gboolean		nm_system_device_set_ip4_netmask			(NMDevice *dev, int ip4_netmask);
+ gboolean		nm_system_device_set_ip4_broadcast			(NMDevice *dev, int ip4_broadcast);
+ gboolean		nm_system_device_set_ip4_default_route		(NMDevice *dev, int ip4_def_route);
+-gboolean		nm_system_device_update_resolv_conf		(void *data, int len, const char *domain_name);
++gboolean		nm_system_device_add_ip4_nameserver		(NMDevice *dev, guint32 ip4_nameserver);
++void			nm_system_device_clear_ip4_nameservers		(NMDevice *dev);
++gboolean		nm_system_device_add_domain_search			(NMDevice *dev, const char *search);
++void			nm_system_device_clear_domain_searches		(NMDevice *dev);
+ 
+ #endif




More information about the fedora-cvs-commits mailing list