about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2010-12-05 04:26:47 +0100
committerMichael Biebl <biebl@debian.org>2010-12-05 04:26:47 +0100
commit602ec1e2e06c6cbb92dc2da2ab2ebfe433a7ef94 (patch)
treec3e336e21ad50568e8c9775195d43734a8e50360
parent29b523273500fbeeb296763e7de0a2aea9476772 (diff)
parent44eff6984a48b7ef12115ab6f06c1199f969efcc (diff)
Merge branch 'master' into experimental
Conflicts:
	debian/changelog
	debian/patches/series
-rw-r--r--debian/changelog14
-rw-r--r--debian/patches/40-umanaged-interfaces.patch28
-rw-r--r--debian/patches/50-bridge-interfaces.patch63
-rw-r--r--debian/patches/series2
4 files changed, 107 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index c13666c0..934c8acd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,20 @@ network-manager (0.8.2-1) UNRELEASED; urgency=low
 
  -- Michael Biebl <biebl@debian.org>  Mon, 29 Nov 2010 19:03:34 +0100
 
+network-manager (0.8.1-6) unstable; urgency=low
+
+  * debian/patches/40-umanaged-interfaces.patch
+    - For devices to be marked unmanaged, do not require a valid connection
+      configuration. (Closes: #569215)
+  * debian/patches/50-bridge-interfaces.patch
+    - Parse bridge configurations in /etc/network/interfaces and add
+      interfaces defined via bridge_ports to well_known_interfaces. This
+      allows to mark those interfaces as unmanaged if managed=false.
+      The "all" keyword and regexes are not supported and simply skipped.
+      (Closes: #530335)
+
+ -- Michael Biebl <biebl@debian.org>  Sat, 04 Dec 2010 17:11:13 +0100
+
 network-manager (0.8.1-5) unstable; urgency=low
 
   * Update Vcs-* fields: Move packaging from svn to git.
diff --git a/debian/patches/40-umanaged-interfaces.patch b/debian/patches/40-umanaged-interfaces.patch
new file mode 100644
index 00000000..b5509fc5
--- /dev/null
+++ b/debian/patches/40-umanaged-interfaces.patch
@@ -0,0 +1,28 @@
+Index: network-manager/system-settings/plugins/ifupdown/plugin.c
+===================================================================
+--- network-manager.orig/system-settings/plugins/ifupdown/plugin.c	2010-12-03 20:47:40.656731988 +0100
++++ network-manager/system-settings/plugins/ifupdown/plugin.c	2010-12-04 16:41:38.258906974 +0100
+@@ -366,6 +366,7 @@
+ 			/* Remove any connection for this block that was previously found */
+ 			exported = g_hash_table_lookup (priv->iface_connections, block->name);
+ 			if (exported) {
++				PLUGIN_PRINT("SCPlugin-Ifupdown", "deleting %s from iface_connections", block->name);
+ 				nm_settings_connection_interface_delete (NM_SETTINGS_CONNECTION_INTERFACE (exported),
+ 				                                         ignore_cb,
+ 				                                         NULL);
+@@ -375,11 +376,14 @@
+ 			/* add the new connection */
+ 			exported = nm_ifupdown_connection_new (block);
+ 			if (exported) {
++				PLUGIN_PRINT("SCPlugin-Ifupdown", "adding %s to iface_connections", block->name);
+ 				g_hash_table_insert (priv->iface_connections, block->name, exported);
+-				g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ 			}
++			PLUGIN_PRINT("SCPlugin-Ifupdown", "adding iface %s to well_known_interfaces", block->name);
++			g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ 		} else if (!strcmp ("mapping", block->type)) {
+ 			g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
++			PLUGIN_PRINT("SCPlugin-Ifupdown", "adding mapping %s to well_known_interfaces", block->name);
+ 		}
+ 		block = block->next;
+ 	}
diff --git a/debian/patches/50-bridge-interfaces.patch b/debian/patches/50-bridge-interfaces.patch
new file mode 100644
index 00000000..f58ba5d7
--- /dev/null
+++ b/debian/patches/50-bridge-interfaces.patch
@@ -0,0 +1,63 @@
+Index: network-manager/system-settings/plugins/ifupdown/plugin.c
+===================================================================
+--- network-manager.orig/system-settings/plugins/ifupdown/plugin.c	2010-12-04 16:41:38.000000000 +0100
++++ network-manager/system-settings/plugins/ifupdown/plugin.c	2010-12-04 16:51:51.810906877 +0100
+@@ -360,9 +360,49 @@
+ 	while (block) {
+ 		if(!strcmp ("auto", block->type) || !strcmp ("allow-hotplug", block->type))
+ 			g_hash_table_insert (auto_ifaces, block->name, GUINT_TO_POINTER (1));
+-		else if (!strcmp ("iface", block->type) && strcmp ("lo", block->name)) {
++		else if (!strcmp ("iface", block->type)) {
+ 			NMIfupdownConnection *exported;
+ 
++			/* Bridge configuration */
++			if(!strncmp ("br", block->name, 2)) {
++				/* Try to find bridge ports */
++				const char *ports = ifparser_getkey (block, "bridge_ports");
++				if (ports) {
++					PLUGIN_PRINT("SCPlugin-Ifupdown", "found bridge ports %s for %s", ports, block->name);
++					char **port_ifaces = g_strsplit_set (ports, " \t", -1);
++
++					int i;
++					int state = 0;
++					for (i = 0; i < g_strv_length (port_ifaces); i++) {
++						char *token = port_ifaces[i];
++						/* Skip crazy stuff like regex or all */
++						if (!strcmp ("all", token)) {
++							continue;
++						}
++						/* Small SM to skip everything inside regex */
++						if (!strcmp ("regex", token)) {
++							state++;
++							continue;
++						}
++						if (!strcmp ("noregex", token)) {
++							state--;
++							continue;
++						}
++						if (state == 0 && strlen (token) > 0) {
++							PLUGIN_PRINT("SCPlugin-Ifupdown", "adding bridge port %s to well_known_interfaces", token);
++							g_hash_table_insert (priv->well_known_interfaces, g_strdup (token), "known");
++						}
++					}
++					g_strfreev (port_ifaces);
++				}
++				goto next;
++			}
++
++			/* Skip loopback configuration */
++			if(!strcmp ("lo", block->name)) {
++				goto next;
++			}
++
+ 			/* Remove any connection for this block that was previously found */
+ 			exported = g_hash_table_lookup (priv->iface_connections, block->name);
+ 			if (exported) {
+@@ -385,6 +425,7 @@
+ 			g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ 			PLUGIN_PRINT("SCPlugin-Ifupdown", "adding mapping %s to well_known_interfaces", block->name);
+ 		}
++	next:
+ 		block = block->next;
+ 	}
+ 
diff --git a/debian/patches/series b/debian/patches/series
index c40ab33b..ac7dabee 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
 # Debian patches for network-manager
 02-dbus_access_network_manager.patch
+40-umanaged-interfaces.patch
+50-bridge-interfaces.patch