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;

