module Stubby::Extensions::DNS::OSX
Private Instance Methods
flush()
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 72 def flush `dscacheutil -flushcache` end
network_interfaces()
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 41 def network_interfaces # TODO: if we connect to a new network, we'd like that to use us, too return @network_interfaces if @network_interfaces @network_interfaces = {} `networksetup listallnetworkservices`.split("\n").each do |interface| next if interface.include? '*' @network_interfaces[interface] = servers_for(interface) end @network_interfaces end
restore_references()
click to toggle source
This is less of a complete restoration and actually a return to no defaults
# File lib/stubby/extensions/dns/osx.rb, line 56 def restore_references network_interfaces.each do |interface, servers| teardown_reference(interface, ["empty"]) end end
servers_for(interface)
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 7 def servers_for(interface) servers = `networksetup -getdnsservers '#{interface}'` if servers =~ /There aren't any DNS Servers/ return ["empty"] else return servers.split("\n") end end
setup_reference(interface)
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 17 def setup_reference(interface) return if interface.include? "*" puts "[INFO] #{interface} configured with Stubby DNS. Will restore to #{@network_interfaces[interface]}" `networksetup -setdnsservers '#{interface}' #{STUBBY_MASTER}` end
setup_references()
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 30 def setup_references # TODO: if we connect to a new network, we'd like that to use us, too return if @network_interfaces network_interfaces.each do |interface, servers| setup_reference(interface) end flush end
teardown_reference(interface, servers)
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 23 def teardown_reference(interface, servers) `networksetup -setdnsservers '#{interface}' #{servers.join(" ")}` puts "[INFO] #{interface} original DNS settings restored #{servers.join(" ")}" rescue => e puts e.inspect end
teardown_references()
click to toggle source
# File lib/stubby/extensions/dns/osx.rb, line 62 def teardown_references interfaces, @network_interfaces = @network_interfaces, nil (interfaces || []).each do |interface, servers| teardown_reference(interface, servers) end flush end