Package: network-manager
Version: 0.8-1
Severity: normal
Tags: sid upstream

I'm using /etc/network/interfaces to bring up my wireless network connection.
According to the wpa-supplicant docs at
/usr/share/doc/wpasupplicant/README.modes.gz one of the ways to do so is by
using wpa-supplicant scripts. Here's the corresponding part of my
/etc/network/interfaces:  auto wlan0 iface wlan0 inet manual     wpa-driver
wext         wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf  The ifupdown
plugin ignores the 'manual' setting and tries to read the wireless config since
it sees wpa-* lines. This results in an error and causes NM to take control
over the interface. The attached patch fixes this behaviour by giving
interfaces configured as 'manual' the NM_SETTING_MANUAL_SETTING_NAME type.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (700, 'unstable'), (650, 'testing'), (600, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=nl_NL.UTF-8, LC_CTYPE=nl_NL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages network-manager depends on:
ii  adduser                       3.112      add and remove users and groups
ii  dbus                          1.2.24-1   simple interprocess messaging syst
ii  dhcp3-client                  3.1.3-2    DHCP client
ii  ifupdown                      0.6.10     high level tools to configure netw
ii  libc6                         2.10.2-6   Embedded GNU C Library: Shared lib
ii  libdbus-1-3                   1.2.24-1   simple interprocess messaging syst
ii  libdbus-glib-1-2              0.84-1     simple interprocess messaging syst
ii  libgcrypt11                   1.4.5-2    LGPL Crypto library - runtime libr
ii  libglib2.0-0                  2.23.6-1   The GLib library of C routines
ii  libgnutls26                   2.8.6-1    the GNU TLS library - runtime libr
ii  libgudev-1.0-0                151-3      GObject-based wrapper library for 
ii  libnl1                        1.1-5      library for dealing with netlink s
ii  libnm-glib2                   0.8-1      network management framework (GLib
ii  libnm-util1                   0.8-1      network management framework (shar
ii  libpolkit-gobject-1-0         0.96-1     PolicyKit Authorization API
ii  libuuid1                      2.16.2-0   Universally Unique ID library
ii  lsb-base                      3.2-23     Linux Standard Base 3.2 init scrip
ii  udev                          151-3      /dev/ and hotplug management daemo
ii  wpasupplicant                 0.6.10-2   client support for WPA and WPA2 (I

Versions of packages network-manager recommends:
ii  dnsmasq-base               2.52-1        A small caching DNS proxy and DHCP
ii  iptables                   1.4.6-2       administration tools for packet fi
ii  modemmanager               0.3-2         D-Bus service for managing modems
ii  network-manager-gnome      0.8-1         network management framework (GNOM
ii  policykit-1                0.96-1        framework for managing administrat
ii  ppp                        2.4.4rel-10.1 Point-to-Point Protocol (PPP) - da

Versions of packages network-manager suggests:
ii  avahi-autoipd                 0.6.25-3   Avahi IPv4LL network address confi

-- no debconf information
diff -ur network-manager-orig-0.8//system-settings/plugins/ifupdown/parser.c network-manager-0.8//system-settings/plugins/ifupdown/parser.c
--- network-manager-orig-0.8//system-settings/plugins/ifupdown/parser.c	2010-04-03 21:14:49.000000000 +0200
+++ network-manager-0.8//system-settings/plugins/ifupdown/parser.c	2010-04-04 13:18:16.000000000 +0200
@@ -55,6 +55,12 @@
 		ret_type = NM_SETTING_PPP_SETTING_NAME;
 	}
 
+        // Added by Okkel Klaver <[email protected]>
+        // Make ifupdown plugin respect manual setting
+        if(value && !strcmp("manual", value)) {
+            ret_type = NM_SETTING_MANUAL_SETTING_NAME;
+        }
+
 	while(!ret_type && curr) {
 		if(!strncmp("wireless-", curr->key, strlen("wireless-")) ||
 		   !strncmp("wpa-", curr->key, strlen("wpa-"))) {
@@ -561,16 +567,21 @@
 	PLUGIN_PRINT("SCPlugin-Ifupdown", "update_connection_setting_from_if_block: name:%s, type:%s, id:%s, uuid: %s",
 			   block->name, type, idstr, nm_setting_connection_get_uuid (s_con));
 
+        // Modified by Okkel Klaver <[email protected]>
+        // Make ifupdown plugin respect manual setting
 	if (!strcmp (NM_SETTING_WIRED_SETTING_NAME, type))
 		update_wired_setting_from_if_block (connection, block);	
 	else if (!strcmp (NM_SETTING_WIRELESS_SETTING_NAME, type)) {
 		update_wireless_setting_from_if_block (connection, block);
 		update_wireless_security_setting_from_if_block (connection, block);
 	}
+        else if(!strcmp(NM_SETTING_MANUAL_SETTING_NAME, type))
+                success = TRUE;
 
 	update_ip4_setting_from_if_block (connection, block);
 
-	success = nm_connection_verify (connection, error);
+	if(!success)
+                success = nm_connection_verify (connection, error);
 
 	g_free (idstr);
 	return success;
diff -ur network-manager-orig-0.8//system-settings/plugins/ifupdown/plugin.h network-manager-0.8//system-settings/plugins/ifupdown/plugin.h
--- network-manager-orig-0.8//system-settings/plugins/ifupdown/plugin.h	2010-04-03 21:14:49.000000000 +0200
+++ network-manager-0.8//system-settings/plugins/ifupdown/plugin.h	2010-04-04 13:18:16.000000000 +0200
@@ -35,6 +35,10 @@
 #define SC_IS_PLUGIN_IFUPDOWN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SC_TYPE_PLUGIN_IFUPDOWN))
 #define SC_PLUGIN_IFUPDOWN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), SC_TYPE_PLUGIN_IFUPDOWN, SCPluginIfupdownClass))
 
+// Added by Okkel Klaver <[email protected]>
+// Make ifupdown plugin respect manual setting
+#define NM_SETTING_MANUAL_SETTING_NAME      "manual"
+
 typedef struct _SCPluginIfupdown SCPluginIfupdown;
 typedef struct _SCPluginIfupdownClass SCPluginIfupdownClass;
 

Reply via email to