On Sun, 2010-04-04 at 17:36 +0200, Okkel wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello everybody, > > Since I'm on Debian, 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:
Hmm, though this is usually done by setting: managed=false in /etc/NetworkManager/nm-system-settings.conf or /etc/NetworkManager/NetworkManager.conf instead, which causes NM to ignore devices that are listed in your /e/n/i file. I suppose this enhancement would allow 'managed=true' and let the user make individual devices unmanaged, which is nice. The patch isn't quite what we'd need though, since what you really want to do is to make the device 'unmanaged' if it's marked as 'manual' in /e/n/i. Unfortunately the ifupdown plugin isn't well set up to unmanage individual interfaces right now... any chance you'd be willing to work on a patch for that? asac/tony, any comments here? Dan > 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. > > Thanks in advance, > Okkel Klaver > i...@vanhetland.nl > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAku4sgYACgkQQxTA2p4ePKfS1QCghaDQMzycIN8FlnO+s7i4+qbW > 7xQAn3ClUTOc4YD822npR4lidhu6CPaI > =vCDR > -----END PGP SIGNATURE----- > differences between files attachment (nm-manual.patch) > 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 <i...@vanhetland.nl> > + // 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 <i...@vanhetland.nl> > + // 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 <i...@vanhetland.nl> > +// Make ifupdown plugin respect manual setting > +#define NM_SETTING_MANUAL_SETTING_NAME "manual" > + > typedef struct _SCPluginIfupdown SCPluginIfupdown; > typedef struct _SCPluginIfupdownClass SCPluginIfupdownClass; > > _______________________________________________ > NetworkManager-list mailing list > NetworkManager-list@gnome.org > http://mail.gnome.org/mailman/listinfo/networkmanager-list _______________________________________________ NetworkManager-list mailing list NetworkManager-list@gnome.org http://mail.gnome.org/mailman/listinfo/networkmanager-list