1
0
mirror of https://github.com/gryf/wicd.git synced 2025-12-31 19:12:28 +01:00

merged optional-dhcp-hostnames to make optional hostnames work in the daemon

This commit is contained in:
Adam Blackburn
2009-11-26 21:43:15 -06:00
2 changed files with 24 additions and 8 deletions

View File

@@ -59,16 +59,17 @@ class AdvancedSettingsDialog(urwid.WidgetWrap):
dns2_t = ('editcp',language['dns']+ ' 2'+':'+' '*8)
dns3_t = ('editcp',language['dns']+ ' 3'+':'+' '*8)
dhcp_h_t = ('editcp',"DHCP Hostname:")
use_dhcp_h_t = ("Use DHCP Hostname")
dhcp_h_t = ('editcp',"DHCP Hostname: ")
cancel_t = 'Cancel'
ok_t = 'OK'
self.static_ip_cb = urwid.CheckBox(static_ip_t,
on_state_change=self.static_ip_toggle)
self.ip_edit =DynWrap(urwid.Edit(ip_t),False)
self.netmask_edit=DynWrap(urwid.Edit(netmask_t),False)
self.gateway_edit=DynWrap(urwid.Edit(gateway_t),False)
self.ip_edit = DynWrap(urwid.Edit(ip_t),False)
self.netmask_edit = DynWrap(urwid.Edit(netmask_t),False)
self.gateway_edit = DynWrap(urwid.Edit(gateway_t),False)
self.static_dns_cb = DynWrap(urwid.CheckBox(use_static_dns_t,
@@ -83,7 +84,8 @@ class AdvancedSettingsDialog(urwid.WidgetWrap):
self.dns2 = DynWrap(urwid.Edit(dns2_t) ,False)
self.dns3 = DynWrap(urwid.Edit(dns3_t) ,False)
self.dhcp_h = urwid.AttrWrap(urwid.Edit(dhcp_h_t),'editbx','editfc')
self.use_dhcp_h = urwid.CheckBox(use_dhcp_h_t,False,on_state_change=self.use_dhcp_h_toggle)
self.dhcp_h = DynWrap(urwid.Edit(dhcp_h_t),False)
_blank = urwid.Text('')
@@ -96,6 +98,7 @@ class AdvancedSettingsDialog(urwid.WidgetWrap):
self.dns_dom_edit,self.search_dom_edit,
self.dns1,self.dns2,self.dns3,
_blank,
self.use_dhcp_h,
self.dhcp_h,
_blank
])
@@ -103,10 +106,12 @@ class AdvancedSettingsDialog(urwid.WidgetWrap):
self._listbox = urwid.ListBox(walker)
#self._frame = urwid.Frame(self._listbox)
self._frame = urwid.Frame(self._listbox)
self.__super.__init__(self._frame)
def use_dhcp_h_toggle(self,checkb,new_state,user_data=None):
self.dhcp_h.set_sensitive(new_state)
def static_ip_toggle(self,checkb,new_state,user_data=None):
for w in [ self.ip_edit,self.netmask_edit,self.gateway_edit ]:
w.set_sensitive(new_state)
@@ -173,6 +178,7 @@ class AdvancedSettingsDialog(urwid.WidgetWrap):
self.set_net_prop("dns2", '')
self.set_net_prop("dns3", '')
self.set_net_prop('dhcphostname',self.dhcp_h.get_edit_text())
self.set_net_prop('usedhcphostname',self.use_dhcp_h.get_state())
# Prevent comboboxes from dying.
def ready_widgets(self,ui,body):
pass
@@ -216,6 +222,8 @@ class WiredSettingsDialog(AdvancedSettingsDialog):
if dhcphname is None:
dhcphname = os.uname()[1]
self.use_dhcp_h.set_state(bool(wired.GetWiredProperty('usedhcphostname')))
self.dhcp_h.set_sensitive(self.use_dhcp_h.get_state())
self.dhcp_h.set_edit_text(unicode(dhcphname))
def save_settings(self):
@@ -321,6 +329,8 @@ class WirelessSettingsDialog(AdvancedSettingsDialog):
dhcphname = wireless.GetWirelessProperty(networkID,"dhcphostname")
if dhcphname is None:
dhcphname = os.uname()[1]
self.use_dhcp_h.set_state(bool(wireless.GetWirelessProperty(networkID,'usedhcphostname')))
self.dhcp_h.set_sensitive(self.use_dhcp_h.get_state())
self.dhcp_h.set_edit_text(unicode(dhcphname))

View File

@@ -448,10 +448,16 @@ class ConnectThread(threading.Thread):
else:
# Run dhcp...
self.SetStatus('running_dhcp')
if self.network.get('usedhcphostname') == None:
self.network['usedhcphostname'] = False
if self.network.get('dhcphostname') == None:
self.network['dhcphostname'] = os.uname()[1]
print "Running DHCP with hostname",self.network["dhcphostname"]
dhcp_status = iface.StartDHCP(self.network["dhcphostname"])
if not self.network['usedhcphostname']:
hname = os.uname()[1]
else:
hname = self.network['dhcphostname']
print "Running DHCP with hostname",hname
dhcp_status = iface.StartDHCP(hname)
if dhcp_status in ['no_dhcp_offers', 'dhcp_failed']:
if self.connect_result != "aborted":
self.abort_connection(dhcp_status)