mirror of
https://github.com/gryf/wicd.git
synced 2025-12-25 07:32:29 +01:00
Correctly flush resolvconf DNS records
This commit is contained in:
@@ -222,6 +222,7 @@ class Controller(object):
|
||||
iface.ReleaseDHCP()
|
||||
iface.SetAddress('0.0.0.0')
|
||||
iface.FlushRoutes()
|
||||
iface.FlushDNS()
|
||||
iface.Down()
|
||||
iface.Up()
|
||||
misc.ExecuteScripts(wpath.postdisconnectscripts, self.debug,
|
||||
@@ -464,6 +465,17 @@ class ConnectThread(threading.Thread):
|
||||
self.abort_connection(dhcp_status)
|
||||
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
|
||||
def set_dns_addresses(self, iface):
|
||||
""" Set the DNS address(es).
|
||||
@@ -908,6 +920,7 @@ class WirelessConnectThread(ConnectThread):
|
||||
self.reset_ip_addresses(wiface)
|
||||
self.stop_wpa(wiface)
|
||||
self.flush_routes(wiface)
|
||||
self.flush_dns_addresses(wiface)
|
||||
wiface.SetMode(self.network['mode'])
|
||||
wiface.SetBitrate(self.bitrate, self.allow_lower_bitrates)
|
||||
|
||||
@@ -983,6 +996,7 @@ class WirelessConnectThread(ConnectThread):
|
||||
# Clean up before aborting.
|
||||
iface.SetAddress('0.0.0.0')
|
||||
iface.FlushRoutes()
|
||||
iface.FlushDNS()
|
||||
if hasattr(iface, "StopWPA"):
|
||||
iface.StopWPA()
|
||||
self.abort_connection('association_failed')
|
||||
@@ -1162,6 +1176,7 @@ class WiredConnectThread(ConnectThread):
|
||||
self.reset_ip_addresses(liface)
|
||||
self.stop_wpa(liface)
|
||||
self.flush_routes(liface)
|
||||
self.flush_dns_addresses(liface)
|
||||
|
||||
# Bring up interface.
|
||||
self.put_iface_up(liface)
|
||||
|
||||
@@ -643,6 +643,19 @@ class BaseInterface(object):
|
||||
if self.verbose: print 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)
|
||||
def SetDNS(self, dns1=None, dns2=None, dns3=None,
|
||||
dns_dom=None, search_dom=None):
|
||||
|
||||
Reference in New Issue
Block a user