2 require 'net/dns/resolver'
8 @resolver = Net::DNS::Resolver.new(nameserver: PROXY_IP, port: PROXY_PORT)
12 Process.kill("KILL", @pipe.pid) if @pipe
16 Around do |scenario, block|
17 Timeout.timeout(3.0) do
22 Given /^a running dnscrypt proxy with options "([^"]*)"$/ do |options|
23 @pipe = IO.popen("dnscrypt-proxy " +
24 "--local-address=#{PROXY_IP}:#{PROXY_PORT} $#{options}", "r")
28 When /^a client asks dnscrypt\-proxy for "([^"]*)"$/ do |name|
29 @answer_section = @resolver.query(name, Net::DNS::A).answer
32 Then /^dnscrypt\-proxy returns "([^"]*)"$/ do |ip_for_name|
33 @answer_section.collect { |a| a.address.to_s }.should include(ip_for_name)
36 Then /^dnscrypt\-proxy returns a NXDOMAIN answer$/ do
37 @answer_section.should be_empty