mirror of
https://github.com/gryf/wicd.git
synced 2025-12-19 12:28:08 +01:00
Fixed some setup.py problems
Added a bunch of docstrings Fixed a crash bug when the daemon is called with the -s option caused by wicd.py calling SetForceDisconnect(False) when it launches.
This commit is contained in:
28
daemon.py
28
daemon.py
@@ -821,7 +821,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
self.wifi.after_script = self.GetWirelessProperty(id, 'afterscript')
|
||||
self.wifi.disconnect_script = self.GetWirelessProperty(id,
|
||||
'disconnectscript')
|
||||
print 'Connecting to wireless network', self.LastScan[id]['essid']
|
||||
print 'Connecting to wireless network ' + self.LastScan[id]['essid']
|
||||
return self.wifi.Connect(self.LastScan[id], debug=self.debug_mode)
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.wireless')
|
||||
@@ -893,6 +893,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.wired')
|
||||
def SetWiredProperty(self, property, value):
|
||||
""" Sets the given property to the given value. """
|
||||
if self.WiredNetwork:
|
||||
if (property.strip()).endswith("script"):
|
||||
print "Setting script properties through the daemon" \
|
||||
@@ -930,6 +931,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.wired')
|
||||
def SetAlwaysShowWiredInterface(self, value):
|
||||
""" Sets always_show_wired_interface to the given value. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.app_conf)
|
||||
config.set("Settings", "always_show_wired_interface",
|
||||
@@ -939,10 +941,12 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.wired')
|
||||
def GetAlwaysShowWiredInterface(self):
|
||||
""" Returns always_show_wired_interface """
|
||||
return bool(self.always_show_wired_interface)
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.wired')
|
||||
def CheckPluggedIn(self, fast=False):
|
||||
""" Returns True if a ethernet cable is present, False otherwise. """
|
||||
if self.wired.wired_interface and self.wired.wired_interface != "None":
|
||||
return self.wired.CheckPluggedIn(fast)
|
||||
else:
|
||||
@@ -1026,7 +1030,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def UnsetWiredDefault(self):
|
||||
"""Unsets the default option in the current default wired profile"""
|
||||
""" Unsets the default option in the current default wired profile. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.wired_conf)
|
||||
profileList = config.sections()
|
||||
@@ -1038,7 +1042,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def GetDefaultWiredNetwork(self):
|
||||
""" Returns the current default wired network """
|
||||
""" Returns the current default wired network. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.wired_conf)
|
||||
profileList = config.sections()
|
||||
@@ -1050,6 +1054,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def GetLastUsedWiredNetwork(self):
|
||||
""" Returns the profile of the last used wired network. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.wired_conf)
|
||||
profileList = config.sections()
|
||||
@@ -1061,7 +1066,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def DeleteWiredNetworkProfile(self, profilename):
|
||||
""" Deletes a wired network profile """
|
||||
""" Deletes a wired network profile. """
|
||||
profilename = misc.to_unicode(profilename)
|
||||
print "Deleting wired profile for " + str(profilename)
|
||||
config = ConfigParser.ConfigParser()
|
||||
@@ -1075,8 +1080,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def SaveWiredNetworkProfile(self, profilename):
|
||||
""" Writes a wired network profile to disk """
|
||||
#should include: profilename,ip,netmask,gateway,dns1,dns2
|
||||
""" Writes a wired network profile to disk. """
|
||||
if profilename == "":
|
||||
return "500: Bad Profile name"
|
||||
profilename = misc.to_unicode(profilename)
|
||||
@@ -1110,7 +1114,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def GetWiredProfileList(self):
|
||||
""" Returns a list of all wired profiles in wired-settings.conf """
|
||||
""" Returns a list of all wired profiles in wired-settings.conf. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.wired_conf)
|
||||
if config.sections():
|
||||
@@ -1120,7 +1124,7 @@ class ConnectionWizard(dbus.service.Object):
|
||||
|
||||
@dbus.service.method('org.wicd.daemon.config')
|
||||
def SaveWirelessNetworkProfile(self, id):
|
||||
""" Writes a wireless profile to disk """
|
||||
""" Writes a wireless profile to disk. """
|
||||
config = ConfigParser.ConfigParser()
|
||||
config.read(self.wireless_conf)
|
||||
cur_network = self.LastScan[id]
|
||||
@@ -1304,6 +1308,12 @@ class ConnectionWizard(dbus.service.Object):
|
||||
return ret
|
||||
|
||||
def ReadConfig(self):
|
||||
""" Reads the manager-settings.conf file.
|
||||
|
||||
Reads the manager-settings.conf file and loads the stored
|
||||
values into memory.
|
||||
|
||||
"""
|
||||
if os.path.isfile(self.app_conf):
|
||||
iface = self.DetectWirelessInterface()
|
||||
if not iface:
|
||||
@@ -1546,12 +1556,14 @@ def main(argv):
|
||||
mainloop.run()
|
||||
|
||||
def sigterm_caught(sig, frame):
|
||||
""" Called when a SIGTERM is caught, kills monitor.py before exiting. """
|
||||
global child_pid
|
||||
print 'SIGTERM caught, killing wicd-monitor...'
|
||||
os.kill(child_pid, signal.SIGTERM)
|
||||
print 'Shutting down...'
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if os.getuid() != 0:
|
||||
print ("Root priviledges are required for the daemon to run properly." +
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
||||
<!--Generated with glade3 3.2.2 on Sun Jul 1 23:19:18 2007 by adam@adam-->
|
||||
<!--Generated with glade3 3.4.0 on Wed Apr 2 14:45:13 2008 -->
|
||||
<glade-interface>
|
||||
<widget class="GtkWindow" id="window1">
|
||||
<property name="width_request">605</property>
|
||||
<property name="width_request">450</property>
|
||||
<property name="height_request">400</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">Wicd Manager</property>
|
||||
<property name="window_position">GTK_WIN_POS_CENTER</property>
|
||||
<property name="default_width">550</property>
|
||||
<property name="icon">wicd.png</property>
|
||||
<property name="gravity">GDK_GRAVITY_CENTER</property>
|
||||
<signal name="destroy" handler="exit"/>
|
||||
@@ -31,6 +32,7 @@
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -140,7 +142,6 @@
|
||||
<property name="border_width">4</property>
|
||||
<child>
|
||||
<widget class="GtkProgressBar" id="progressbar">
|
||||
<property name="visible">False</property>
|
||||
<property name="tooltip" translatable="yes">Connecting...</property>
|
||||
<property name="activity_mode">True</property>
|
||||
<property name="text" translatable="yes">Connecting...</property>
|
||||
|
||||
15
gui.py
15
gui.py
@@ -456,6 +456,7 @@ class WiredSettingsDialog(AdvancedSettingsDialog):
|
||||
self.des = self.connect("destroy", self.destroy_called)
|
||||
|
||||
def set_net_prop(self, option, value):
|
||||
""" Sets the given option to the given value for this network. """
|
||||
wired.SetWiredProperty(option, value)
|
||||
|
||||
def set_values(self):
|
||||
@@ -1183,6 +1184,7 @@ class appGui:
|
||||
|
||||
self.status_area.hide_all()
|
||||
|
||||
self.window.set_icon_from_file(wpath.etc + "wicd.png")
|
||||
self.statusID = None
|
||||
self.first_dialog_load = True
|
||||
self.vpn_connection_pipe = None
|
||||
@@ -1484,9 +1486,6 @@ class appGui:
|
||||
|
||||
def connect_hidden(self, widget):
|
||||
""" Prompts the user for a hidden network, then scans for it. """
|
||||
# Should display a dialog asking
|
||||
# for the ssid of a hidden network
|
||||
# and displaying connect/cancel buttons
|
||||
dialog = gtk.Dialog(title=language['hidden_network'],
|
||||
flags=gtk.DIALOG_MODAL,
|
||||
buttons=(gtk.STOCK_CONNECT, 1, gtk.STOCK_CANCEL, 2))
|
||||
@@ -1938,6 +1937,16 @@ class appGui:
|
||||
self.update_statusbar()
|
||||
|
||||
def disconnect(self, widget, event, nettype, networkid, networkentry):
|
||||
""" Disconnects from the given network.
|
||||
|
||||
Keyword arguments:
|
||||
widget -- The disconnect button that was pressed.
|
||||
event -- unused
|
||||
nettype -- "wired" or "wireless", depending on the network entry type.
|
||||
networkid -- unused
|
||||
networkentry -- The NetworkEntry containing the disconnect button.
|
||||
|
||||
"""
|
||||
widget.hide()
|
||||
networkentry.connect_button.show()
|
||||
if nettype == "wired":
|
||||
|
||||
24
setup.py
24
setup.py
@@ -25,17 +25,9 @@ data=[
|
||||
('/usr/share/applications', ['other/hammer-00186ddbac.desktop']),
|
||||
('', ['launchdaemon.sh']),
|
||||
('/usr/share/pixmaps', ['other/wicd.png']),
|
||||
('images', ['images/good-signal.png', 'images/low-signal.png',
|
||||
'images/no-signal.png', 'images/good-signal-lock.png' ,'images/wired.png',
|
||||
'images/wicd-purple.png', 'images/signal-25.png', 'images/signal-50.png',
|
||||
'images/wicd-green.png', 'images/signal-100.png', 'images/wicd.png',
|
||||
'images/low-signal-lock.png', 'images/wicd-blue.png', 'images/bad-signal.png',
|
||||
'images/bad-signal-lock.png', 'images/wicd-orange.png', 'images/signal-75.png',
|
||||
'images/high-signal.png', 'images/wicd-red.png', 'images/high-signal-lock.png']),
|
||||
('encryption/templates', ['encryption/templates/peap', 'encryption/templates/wep-hex', 'encryption/templates/wpa',
|
||||
'encryption/templates/wep-passphrase', 'encryption/templates/wep-shared',
|
||||
'encryption/templates/ttls', 'encryption/templates/leap', 'encryption/templates/peap-tkip',
|
||||
'encryption/templates/eap', 'encryption/templates/active']),
|
||||
('images', [('images/' + b) for b in os.listdir('images') if not b.startswith('.')]),
|
||||
('encryption/templates', [('encryption/templates/' + b) for b in os.listdir('encryption/templates') if not b.startswith('.')]),
|
||||
('encryption/configurations', []),
|
||||
('data', ['data/wicd.png', 'data/wicd.glade']),
|
||||
('translations', ['translations/wicd.pot', 'translations/ids']),
|
||||
('translations/de_DE/LC_MESSAGES', ['translations/de_DE/LC_MESSAGES/wicd.mo']),
|
||||
@@ -46,15 +38,7 @@ data=[
|
||||
('translations/gl_GL/LC_MESSAGES', ['translations/gl_GL/LC_MESSAGES/wicd.mo']),
|
||||
('translations/no_NO/LC_MESSAGES', ['translations/no_NO/LC_MESSAGES/wicd.mo']),
|
||||
('translations/bg_PHO/LC_MESSAGES', ['translations/bg_PHO/LC_MESSAGES/wicd.mo']),
|
||||
('translations/po', ['translations/po/bg_PHO.po', 'translations/po/ja_JA.po', 'translations/po/de_DE.po',
|
||||
'translations/po/de_DE.po', 'translations/po/zh_CN.po', 'translations/po/fr_FR.po',
|
||||
'translations/po/ar_EG.po', 'translations/po/it_IT.po', 'translations/po/fi_FI.po',
|
||||
'translations/po/sl_SI.po', 'translations/po/es_ES.po', 'translations/po/da_DK.po',
|
||||
'translations/po/sv_SE.po', 'translations/po/ca_ES.po', 'translations/po/nl_NL.po',
|
||||
'translations/po/no_NO.po', 'translations/po/gl_GL.po', 'translations/po/pl_PL.po',
|
||||
'translations/po/ru_RU.po', 'translations/po/en_US.po', 'translations/po/pt_BR.po',
|
||||
'translations/po/cs_CZ.po', 'translations/po/tr_TR.po', 'translations/po/zh_HK.po',
|
||||
'translations/po/hu_HU.po', 'translations/po/ko_KR.po']),
|
||||
('translations/po', [('translations/po/' + b) for b in os.listdir('translations/po') if not b.startswith('.')]),
|
||||
('translations/sl_SI/LC_MESSAGES', ['translations/sl_SI/LC_MESSAGES/wicd.mo']),
|
||||
('translations/da_DK/LC_MESSAGES', ['translations/da_DK/LC_MESSAGES/wicd.mo']),
|
||||
('translations/ja_JA/LC_MESSAGES', ['translations/ja_JA/LC_MESSAGES/wicd.mo']),
|
||||
|
||||
4
wicd.py
4
wicd.py
@@ -110,6 +110,7 @@ language['killswitch_enabled'] = _('Wireless Kill Switch Enabled')
|
||||
language['connecting'] = _('Connecting')
|
||||
language['wired'] = _('Wired Network')
|
||||
|
||||
|
||||
class TrayIcon:
|
||||
""" Base Tray Icon class.
|
||||
|
||||
@@ -390,6 +391,8 @@ class TrayIcon:
|
||||
""" Tray Icon for gtk < 2.10.
|
||||
|
||||
Uses the deprecated egg.trayicon module to implement the tray icon.
|
||||
Since it relies on a deprecated module, this class is only used
|
||||
for machines running versions of GTK < 2.10.
|
||||
|
||||
"""
|
||||
def __init__(self, use_tray=True):
|
||||
@@ -451,7 +454,6 @@ class TrayIcon:
|
||||
gtk.StatusIcon.__init__(self)
|
||||
|
||||
self.current_icon_path = ''
|
||||
daemon.SetForcedDisconnect(False)
|
||||
self.set_visible(True)
|
||||
self.connect('activate', self.on_activate)
|
||||
self.connect('popup-menu', self.on_popup_menu)
|
||||
|
||||
47
wnettools.py
47
wnettools.py
@@ -155,6 +155,15 @@ def _fast_get_wifi_interfaces():
|
||||
return None
|
||||
|
||||
def get_iw_ioctl_result(iface, call):
|
||||
""" Makes the given ioctl call and returns the results.
|
||||
|
||||
Keyword arguments:
|
||||
call -- The ioctl call to make
|
||||
|
||||
Returns:
|
||||
The results of the ioctl call.
|
||||
|
||||
"""
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
buff = array.array('c', '\0' * 32)
|
||||
addr, length = buff.buffer_info()
|
||||
@@ -205,6 +214,17 @@ class Interface(object):
|
||||
self.iface = str(iface)
|
||||
|
||||
def _find_client_path(self, client):
|
||||
""" Determines the full path for the given program.
|
||||
|
||||
Searches a hardcoded list of paths for a given program name.
|
||||
|
||||
Keyword arguments:
|
||||
client -- The name of the program to search for
|
||||
|
||||
Returns:
|
||||
The full path of the program or None
|
||||
|
||||
"""
|
||||
paths = ['/sbin/', '/usr/sbin/', '/bin/', '/usr/bin/',
|
||||
'/usr/local/sbin/', '/usr/local/bin/']
|
||||
for path in paths:
|
||||
@@ -215,7 +235,14 @@ class Interface(object):
|
||||
return None
|
||||
|
||||
def _client_found(self, client):
|
||||
# TODO: Don't use which anymore. Just search path manually.
|
||||
""" Searches for the existence of the given program in PATH.
|
||||
|
||||
Uses "which" to determine if a given program exists in PATH.
|
||||
|
||||
Returns:
|
||||
True if the program exists, False otherwise.
|
||||
|
||||
"""
|
||||
output = misc.Run("which " + client)
|
||||
if output and not ("no " + client) in output:
|
||||
return True
|
||||
@@ -539,6 +566,7 @@ class Interface(object):
|
||||
return False
|
||||
|
||||
def _fast_is_up(self):
|
||||
""" Determines if the interfae is up using an ioctl call. """
|
||||
data = (self.iface + '\0' * 16)[:18]
|
||||
try:
|
||||
result = fcntl.ioctl(self.sock.fileno(), SIOCGIFFLAGS, data)
|
||||
@@ -551,7 +579,6 @@ class Interface(object):
|
||||
return bool(flags & 1)
|
||||
|
||||
|
||||
|
||||
class WiredInterface(Interface):
|
||||
""" Control a wired network interface. """
|
||||
def __init__(self, iface, verbose=False):
|
||||
@@ -608,6 +635,14 @@ class WiredInterface(Interface):
|
||||
return False
|
||||
|
||||
def _fast_eth_get_plugged_in(self):
|
||||
""" Determines link connection status using an ioctl call.
|
||||
|
||||
Uses the SIOCGETHTOOL ioctl call to determine link status.
|
||||
|
||||
Returns:
|
||||
True if a wire is plugged in, False otherwise.
|
||||
|
||||
"""
|
||||
if not self.IsUp():
|
||||
self.Up()
|
||||
time.sleep(2.5)
|
||||
@@ -649,7 +684,7 @@ class WiredInterface(Interface):
|
||||
return False
|
||||
|
||||
def _fast_mii_get_plugged_in(self):
|
||||
""" Get link status usingthe SIOCGMIIPHY ioctl. """
|
||||
""" Get link status using the SIOCGMIIPHY ioctl call. """
|
||||
if not self.IsUp():
|
||||
self.Up()
|
||||
time.sleep(2.5)
|
||||
@@ -1199,6 +1234,12 @@ class WirelessInterface(Interface):
|
||||
return dbm_strength
|
||||
|
||||
def _get_dbm_strength_fast(self):
|
||||
""" Uses the SIOCGIWSTATS ioctl call to get dbm signal strength.
|
||||
|
||||
Returns:
|
||||
The dBm signal strength or None if it can't be found.
|
||||
|
||||
"""
|
||||
buff = misc.get_irwange_ioctl_result(self.iface, SIOCGIWSTATS)
|
||||
if not buff:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user