[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#557156: wicd deconfigures the wired (eth0) interface at suspend or cable unplugged



Control: retitle -1 wired_connect_mode behavior doesn't match the wicd-manager-settings.conf(5) man page
Control: tags -1 patch

On 2009-11-19 23:41:10 +0100, Vincent Lefevre wrote:
> Note: in manager-settings.conf, I have "wired_connect_mode = 1",
> in order not to connect automatically. [...]

I wanted to see where the problem came from. In the
wicd-manager-settings.conf(5) man page:

       wired_connect_mode = <0|1>
              0 = connect to wired interface automatically
              1 = do not connect to wired interface automatically

which corresponds to what I expected, but in
/usr/share/wicd/daemon/wicd-daemon.py, one has:

    def SetWiredAutoConnectMethod(self, method):
        """ Sets which method to use to autoconnect to wired networks. """
        # 1 = default profile
        # 2 = show list
        # 3 = last used profile
        self.config.set("Settings", "wired_connect_mode", int(method),
                        write=True)
        self.wired_connect_mode = int(method)
        self.wired_bus.connect_mode = int(method)

This doesn't seem to be the same range of values!
This is confirmed here:

    def GetWiredAutoConnectMethod(self):
        """ Returns the wired autoconnect method. """
        return int(self.wired_connect_mode)
[...]
    def _wired_autoconnect(self, fresh=True):
        """ Attempts to autoconnect to a wired network. """
        wiredb = self.wired_bus
        if self.GetWiredAutoConnectMethod() == 3 and \
           not self.GetNeedWiredProfileChooser():
            # attempt to smartly connect to a wired network
            # by using various wireless networks detected
            # and by using plugged in USB devices
            print self.LastScan
        if self.GetWiredAutoConnectMethod() == 2 and \
           not self.GetNeedWiredProfileChooser():
            self.LaunchChooser()
            return True

        # Default Profile.
        elif self.GetWiredAutoConnectMethod() == 1:
            network = wiredb.GetDefaultWiredNetwork()
            if not network:
                print "Couldn't find a default wired connection," + \
                      " wired autoconnect failed."
                self.wireless_bus._wireless_autoconnect(fresh)
                return

        # Last-Used.
        else:
            network = wiredb.GetLastUsedWiredNetwork()
            if not network:
                print "no previous wired profile available, wired " + \
                      "autoconnect failed."
                self.wireless_bus._wireless_autoconnect(fresh)
                return

Actually wired_connect_mode corresponds to the 3 radio buttons of
"Wired automatic connection" in the preferences.

So, I suppose that the real problem is wrong documentation, and the
real solution to ignore the wired interface is to set

  wired_interface = None

i.e. make sure that the "Wired interface" box in the preferences is
blank.

Assuming that this is a documentation bug, I've attached a patch.

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
--- a/in/man=wicd-manager-settings.conf.5.in	2014-12-21 20:40:46.000000000 +0100
+++ b/in/man=wicd-manager-settings.conf.5.in	2016-05-11 23:04:46.266698359 +0200
@@ -52,21 +52,23 @@
 .br
 3 = ktsuss
 .TP
-.BI "wired_interface = " <interface_name>
+.BI "wired_interface = " <interface_name|None>
 .TP
 .BI "always_show_wired_interface = " <True|False>
 .TP
-.BI "wired_connect_mode = " <0|1>
-0 = connect to wired interface automatically
+.BI "wired_connect_mode = " <1|2|3>
+1 = default profile
 .br
-1 = do not connect to wired interface automatically
+2 = show list
+.br
+3 = last used profile
 .TP
 .BI "prefer_wired = " <True|False>
 True = Switch to wired interface if a link is detected, even if already connected to wireless
 .br
 False = Do not switch to wired interface automatically
 .TP
-.BI "wireless_interface = " <name_of_wireless_interface>
+.BI "wireless_interface = " <name_of_wireless_interface|None>
 .TP
 .BI "wpa_driver = " <wext|madwifi|ndiswrapper|hostap|hermes|atmel|broadcom|ipw|ralink legacy|none>
 The default (and best supported) is wext.  It should work properly in most cases.

Reply to: