[Pkg-utopia-commits] r820 - in packages/unstable/networkmanager/debian: . patches

Michael Biebl mbiebl-guest at costa.debian.org
Wed May 10 00:36:23 UTC 2006


Author: mbiebl-guest
Date: 2006-05-10 00:36:14 +0000 (Wed, 10 May 2006)
New Revision: 820

Added:
   packages/unstable/networkmanager/debian/patches/10-interface_parser_fixes.patch
Modified:
   packages/unstable/networkmanager/debian/README.Debian
   packages/unstable/networkmanager/debian/changelog
Log:
Fix the /etc/network/interfaces parser:
- Only add data to an existing block (prevents segfault)
- Support mapping and allow-* stanzas.


Modified: packages/unstable/networkmanager/debian/README.Debian
===================================================================
--- packages/unstable/networkmanager/debian/README.Debian	2006-05-10 00:33:27 UTC (rev 819)
+++ packages/unstable/networkmanager/debian/README.Debian	2006-05-10 00:36:14 UTC (rev 820)
@@ -11,9 +11,12 @@
 
 Configuration
 ~~~~~~~~~~~~~
-Only devices that are not listed in /etc/network/interfaces or which have been
-configured "auto" and "dhcp" (with no other options) are managed by NM.
+Only devices that are *not* listed in /etc/network/interfaces or which have 
+been configured "auto" and "dhcp" (with no other options) are managed by NM.
 
+This way you can setup a custom (static) configuration for a device and NM 
+will not try to override this setting.
+
 Examples:
 
 1.)

Modified: packages/unstable/networkmanager/debian/changelog
===================================================================
--- packages/unstable/networkmanager/debian/changelog	2006-05-10 00:33:27 UTC (rev 819)
+++ packages/unstable/networkmanager/debian/changelog	2006-05-10 00:36:14 UTC (rev 820)
@@ -11,13 +11,15 @@
       not handled by NM. This makes it possible to configure interfaces 
       statically and have NM not messing with them. 
       Updated README.Debian to reflect these changes.
-    - Added 09-nm_bad_mutex_free.patch. Otherwise NM crashes if devices are
-      listed in /etc/network/interfaces. 
+    - Added 09-nm_bad_mutex_free.patch. Otherwise NM crashes if a device is
+      disabled.
   * Added 07-libnm_glib_reconnect_dbus.patch which makes libnm_glib sleep 
     between unsuccessful connection attempts to dbus. (Closes: #366010)
   * Bumped Standards-Version to 3.7.2, no further changes required.
   * Removed *.la files from the dev packages as we also ship pkg-config files
     which are a better alternative.
+  * Added 10-interface_parser_fixes.patch which fixes several problems with
+    the /etc/network/interfaces parser. (Closes: #355564)
 
  -- Michael Biebl <biebl at teco.edu>  Fri,  5 May 2006 18:01:47 +0200
 

Added: packages/unstable/networkmanager/debian/patches/10-interface_parser_fixes.patch
===================================================================
--- packages/unstable/networkmanager/debian/patches/10-interface_parser_fixes.patch	2006-05-10 00:33:27 UTC (rev 819)
+++ packages/unstable/networkmanager/debian/patches/10-interface_parser_fixes.patch	2006-05-10 00:36:14 UTC (rev 820)
@@ -0,0 +1,90 @@
+Index: src/backends/interface_parser.c
+===================================================================
+RCS file: /cvs/gnome/NetworkManager/src/backends/interface_parser.c,v
+retrieving revision 1.6
+diff -u -3 -p -r1.6 interface_parser.c
+--- src/backends/interface_parser.c	24 Oct 2005 15:04:28 -0000	1.6
++++ src/backends/interface_parser.c	9 May 2006 23:06:35 -0000
+@@ -50,6 +50,10 @@ void add_block(const char *type, const c
+ 
+ void add_data(const char *key,const char *data)
+ {
++	// Check if there is a block where we can attach our data
++	if (first == NULL)
++		return;
++			
+ 	if_data *ret = (if_data*)calloc(1,sizeof(struct _if_data));
+ 	ret->key = g_strdup(key);
+ 	ret->data = g_strdup(data);
+@@ -73,6 +77,10 @@ void ifparser_init(void)
+ {
+ 	FILE *inp = fopen(INTERFACES,"r");
+ 	int ret = 0;
++	char *line;
++	char *space;
++	char rline[255];
++
+ 	if (inp == NULL)
+ 	{
+ 		nm_warning ("Error: Can't open %s\n",INTERFACES);
+@@ -81,10 +89,16 @@ void ifparser_init(void)
+ 	first = last = NULL;
+ 	while(1)
+ 	{
+-		char *line,rline[255],*space;
++		line = space = NULL;
+ 		ret = fscanf(inp,"%255[^\n]\n",rline);
+ 		if (ret == EOF)
+ 			break;
++		// If the line did not match, skip it
++		if (ret == 0) {
++			fgets(rline, 255, inp);
++			continue;
++		}
++		
+ 		line = rline;
+ 		while(line[0] == ' ')
+ 			line++;
+@@ -94,18 +108,19 @@ void ifparser_init(void)
+ 		SPACE_OR_TAB(line,space)
+ 		if (space == NULL)
+ 		{
+-            nm_warning ("Error: Can't parse interface line '%s'\n",line);
++			nm_warning ("Error: Can't parse interface line '%s'\n",line);
+ 			continue;
+ 		}
+ 		space[0] = '\0';
+ 		
+-		
++		// There are four different stanzas:
++		// iface, mapping, auto and allow-*. Create a block for each of them.
+ 		if (strcmp(line,"iface")==0)
+ 		{
+ 			char *space2 = strchr(space+1,' ');
+ 			if (space2 == NULL)
+ 			{
+-            	nm_warning ("Error: Can't parse iface line '%s'\n",space+1);
++				nm_warning ("Error: Can't parse iface line '%s'\n",space+1);
+ 				continue;
+ 			}
+ 			space2[0]='\0';
+@@ -116,7 +131,7 @@ void ifparser_init(void)
+ 				space = strchr(space2+1,' ');
+ 				if (space == NULL)
+ 				{
+-            		nm_warning ("Error: Can't parse data '%s'\n",space2+1);
++					nm_warning ("Error: Can't parse data '%s'\n",space2+1);
+ 					continue;
+ 				}
+ 				space[0] = '\0';
+@@ -124,6 +139,10 @@ void ifparser_init(void)
+ 			}
+ 		}
+ 		else if (strcmp(line,"auto")==0)
++			add_block(line,space+1);
++		else if (strcmp(line,"mapping")==0)
++			add_block(line,space+1);
++		else if (strncmp(line,"allow-",6)==0)
+ 			add_block(line,space+1);
+ 		else
+ 			add_data(line,space+1);




More information about the Pkg-utopia-commits mailing list