mirror of
https://github.com/gryf/wicd.git
synced 2026-02-23 02:25:48 +01:00
Correctly flush resolvconf DNS records
This commit is contained in:
@@ -222,6 +222,7 @@ class Controller(object):
|
|||||||
iface.ReleaseDHCP()
|
iface.ReleaseDHCP()
|
||||||
iface.SetAddress('0.0.0.0')
|
iface.SetAddress('0.0.0.0')
|
||||||
iface.FlushRoutes()
|
iface.FlushRoutes()
|
||||||
|
iface.FlushDNS()
|
||||||
iface.Down()
|
iface.Down()
|
||||||
iface.Up()
|
iface.Up()
|
||||||
misc.ExecuteScripts(wpath.postdisconnectscripts, self.debug,
|
misc.ExecuteScripts(wpath.postdisconnectscripts, self.debug,
|
||||||
@@ -464,6 +465,17 @@ class ConnectThread(threading.Thread):
|
|||||||
self.abort_connection(dhcp_status)
|
self.abort_connection(dhcp_status)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@abortable
|
||||||
|
def flush_dns_addresses(self, iface):
|
||||||
|
""" Flush the added DNS address(es).
|
||||||
|
|
||||||
|
This is only useful when using resolvconf, since we effectively have no
|
||||||
|
foolproof way of removing added DNS addresses from a non-resolvconf
|
||||||
|
setup.
|
||||||
|
|
||||||
|
"""
|
||||||
|
iface.FlushDNS()
|
||||||
|
|
||||||
@abortable
|
@abortable
|
||||||
def set_dns_addresses(self, iface):
|
def set_dns_addresses(self, iface):
|
||||||
""" Set the DNS address(es).
|
""" Set the DNS address(es).
|
||||||
@@ -908,6 +920,7 @@ class WirelessConnectThread(ConnectThread):
|
|||||||
self.reset_ip_addresses(wiface)
|
self.reset_ip_addresses(wiface)
|
||||||
self.stop_wpa(wiface)
|
self.stop_wpa(wiface)
|
||||||
self.flush_routes(wiface)
|
self.flush_routes(wiface)
|
||||||
|
self.flush_dns_addresses(wiface)
|
||||||
wiface.SetMode(self.network['mode'])
|
wiface.SetMode(self.network['mode'])
|
||||||
wiface.SetBitrate(self.bitrate, self.allow_lower_bitrates)
|
wiface.SetBitrate(self.bitrate, self.allow_lower_bitrates)
|
||||||
|
|
||||||
@@ -983,6 +996,7 @@ class WirelessConnectThread(ConnectThread):
|
|||||||
# Clean up before aborting.
|
# Clean up before aborting.
|
||||||
iface.SetAddress('0.0.0.0')
|
iface.SetAddress('0.0.0.0')
|
||||||
iface.FlushRoutes()
|
iface.FlushRoutes()
|
||||||
|
iface.FlushDNS()
|
||||||
if hasattr(iface, "StopWPA"):
|
if hasattr(iface, "StopWPA"):
|
||||||
iface.StopWPA()
|
iface.StopWPA()
|
||||||
self.abort_connection('association_failed')
|
self.abort_connection('association_failed')
|
||||||
@@ -1162,6 +1176,7 @@ class WiredConnectThread(ConnectThread):
|
|||||||
self.reset_ip_addresses(liface)
|
self.reset_ip_addresses(liface)
|
||||||
self.stop_wpa(liface)
|
self.stop_wpa(liface)
|
||||||
self.flush_routes(liface)
|
self.flush_routes(liface)
|
||||||
|
self.flush_dns_addresses(liface)
|
||||||
|
|
||||||
# Bring up interface.
|
# Bring up interface.
|
||||||
self.put_iface_up(liface)
|
self.put_iface_up(liface)
|
||||||
|
|||||||
@@ -643,6 +643,19 @@ class BaseInterface(object):
|
|||||||
if self.verbose: print cmd
|
if self.verbose: print cmd
|
||||||
misc.Run(cmd)
|
misc.Run(cmd)
|
||||||
|
|
||||||
|
@neediface(False)
|
||||||
|
def FlushDNS(self):
|
||||||
|
""" Remove added DNS servers from system resolv.conf.
|
||||||
|
|
||||||
|
Only useful for resolvconf-based setups.
|
||||||
|
|
||||||
|
"""
|
||||||
|
if self.resolvconf_cmd:
|
||||||
|
cmd = [self.resolvconf_cmd, '-d', self.iface + '.wicd']
|
||||||
|
if self.verbose: print cmd
|
||||||
|
p = misc.Run(cmd, include_stderr=True, return_obj=True)
|
||||||
|
p.communicate()
|
||||||
|
|
||||||
@neediface(False)
|
@neediface(False)
|
||||||
def SetDNS(self, dns1=None, dns2=None, dns3=None,
|
def SetDNS(self, dns1=None, dns2=None, dns3=None,
|
||||||
dns_dom=None, search_dom=None):
|
dns_dom=None, search_dom=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user