diff --git a/curses/prefs_curses.py b/curses/prefs_curses.py index d51c61d..43da851 100644 --- a/curses/prefs_curses.py +++ b/curses/prefs_curses.py @@ -177,7 +177,10 @@ class PrefsDialog(urwid.WidgetWrap): self.dhcp_header = urwid.Text(dhcp_header_t) self.dhcp_l = [] - # Automatic + + # Order of these is flipped in the actual interface, + # (2,3,1 -> dhcpcd, pump, dhclient), because dhclient often doesn't like + # to work on several distros. self.dhcp0 = urwid.RadioButton(self.dhcp_l,automatic_t) self.dhcp1 = DynRadioButton(self.dhcp_l,dhcp1_t) self.dhcp2 = DynRadioButton(self.dhcp_l,dhcp2_t) @@ -199,7 +202,7 @@ class PrefsDialog(urwid.WidgetWrap): self.flush_l = [self.flush0,self.flush1,self.flush2] externalLB = urwid.ListBox([self.dhcp_header, - self.dhcp0,self.dhcp1,self.dhcp2,self.dhcp3, + self.dhcp0,self.dhcp2,self.dhcp3,self.dhcp1, _blank, self.wired_detect_header, self.wired0,self.wired1,self.wired2, diff --git a/curses/wicd-curses.py b/curses/wicd-curses.py index 73ec734..c7dabfc 100755 --- a/curses/wicd-curses.py +++ b/curses/wicd-curses.py @@ -69,8 +69,8 @@ from optparse import OptionParser #from grp import getgrgid #from os import getgroups,system -import logging -import logging.handler +#import logging +#import logging.handler CURSES_REVNO=wpath.curses_revision @@ -1070,6 +1070,7 @@ def main(): urwid.set_encoding('utf8') ui.run_wrapper(run) +@wrap_exceptions def run(): global loop loop = gobject.MainLoop() @@ -1135,7 +1136,7 @@ if __name__ == '__main__': parser.add_option("-r", "--raw-screen",action="store_const",const='raw' ,dest='screen',help="use urwid's raw screen controller (default)") parser.add_option("-c", "--curses-screen",action="store_const",const='curses',dest='screen',help="use urwid's curses screen controller") - parser.add_option("-d", "--debug",action="store_true", + parser.add_option("-d", "--debug",action="store_true" ,dest='debug',help="enable logging of wicd-curses (currently does nothing)") (options,args) = parser.parse_args() main() diff --git a/data/wicd.glade b/data/wicd.glade index c42ddb1..258f6b8 100644 --- a/data/wicd.glade +++ b/data/wicd.glade @@ -1138,7 +1138,7 @@ is already active. False - 1 + 3 @@ -1153,7 +1153,7 @@ is already active. False - 2 + 1 @@ -1168,7 +1168,7 @@ is already active. False - 3 + 2 diff --git a/other/wicd-tray.desktop b/other/wicd-tray.desktop index a5f1f6d..d2cc87b 100644 --- a/other/wicd-tray.desktop +++ b/other/wicd-tray.desktop @@ -1,6 +1,5 @@ [Desktop Entry] Categories=Application;Network; -Encoding=UTF-8 Exec=wicd-client GenericName=Network Manager Icon=wicd-client diff --git a/setup.py b/setup.py index 5f4992c..041597b 100755 --- a/setup.py +++ b/setup.py @@ -86,6 +86,8 @@ class configure(Command): ('initfilename=', None, "set the name of the init file (don't use)"), ('wicdgroup=', None, "set the name of the group used for wicd"), ('distro=', None, 'set the distribution for which wicd will be installed'), + ('loggroup=', None, 'the group the log file belongs to'), + ('logperms=', None, 'the log file permissions'), # Configure switches ('no-install-init', None, "do not install the init file"), @@ -220,6 +222,8 @@ class configure(Command): self.pidfile = '/var/run/wicd/wicd.pid' self.initfilename = os.path.basename(self.initfile) self.wicdgroup = 'users' + self.loggroup = '' + self.logperms = '0600' def distro_check(self): print "Distro is: "+self.distro @@ -236,6 +240,7 @@ class configure(Command): self.mandir = '/usr/man/' self.no_install_acpi = True elif self.distro in ['debian']: + self.wicdgroup = "netdev" self.init = '/etc/init.d/' self.initfile = 'init/debian/wicd' elif self.distro in ['arch']: diff --git a/wicd/wnettools.py b/wicd/wnettools.py index f5d720d..317424a 100644 --- a/wicd/wnettools.py +++ b/wicd/wnettools.py @@ -121,8 +121,9 @@ def GetWirelessInterfaces(): def GetWiredInterfaces(): """ Returns a list of wired interfaces on the system. """ basedir = '/sys/class/net/' - return [iface for iface in os.listdir(basedir) if not 'wireless' - in os.listdir(basedir + iface) and + return [iface for iface in os.listdir(basedir) + if os.path.isdir(basedir + iface) and not 'wireless' + in os.listdir(basedir + iface) and open(basedir + iface + "/type").readlines()[0].strip() == "1"] def NeedsExternalCalls(): @@ -213,17 +214,17 @@ class BaseInterface(object): """ def get_client_name(cl): """ Converts the integer value for a dhcp client to a string. """ - if self.dhclient_cmd and cl in [misc.DHCLIENT, misc.AUTO]: - client = "dhclient" - cmd = self.dhclient_cmd - if self.dhclient_needs_verbose: - cmd += ' -v' - elif self.dhcpcd_cmd and cl in [misc.DHCPCD, misc.AUTO]: + if self.dhcpcd_cmd and cl in [misc.DHCPCD, misc.AUTO]: client = "dhcpcd" cmd = self.dhcpcd_cmd elif self.pump_cmd and cl in [misc.PUMP, misc.AUTO]: client = "pump" cmd = self.pump_cmd + elif self.dhclient_cmd and cl in [misc.DHCLIENT, misc.AUTO]: + client = "dhclient" + cmd = self.dhclient_cmd + if self.dhclient_needs_verbose: + cmd += ' -v' else: client = None cmd = ""