Sha256: 8ada2e8c9462b7a8bc62ef50efb7943222acb005678be42dab49b13e3d5a6a9f

Contents?: true

Size: 764 Bytes

Versions: 14

Compression:

Stored size: 764 Bytes

Contents

require 'net/dns'

module Auger

  class Project
    def dns(port = 53, &block)
      @connections << Dns.load(port, &block)
    end
  end
  
  class Dns < Auger::Connection
    def domain(&block)
      @requests << DnsDomainRequest.load(nil, &block)
    end

    def open(host, options)
      options[:nameserver] = host
      dns = Net::DNS::Resolver.new(options)
      dns.use_tcp = true if options[:use_tcp]
      dns
    end

    def close(dns)
      dns = nil
    end

    def query(name, &block)
      @requests << DnsQueryRequest.load(name, &block)
    end
  end

  class DnsDomainRequest < Auger::Request
    def run(dns)
      dns.domain
    end
  end
  
  class DnsQueryRequest < Auger::Request
    def run(dns)
      dns.query(@arg)
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
auger-1.4.0 lib/auger/plugin/dns.rb
auger-1.3.8 lib/auger/plugin/dns.rb
auger-1.3.7 lib/auger/plugin/dns.rb
auger-1.3.6 lib/auger/plugin/dns.rb
auger-1.3.5 lib/auger/plugin/dns.rb
auger-1.3.4 lib/auger/plugin/dns.rb
auger-1.3.3 lib/plugins/dns.rb
auger-1.3.2 lib/plugins/dns.rb
auger-1.3.1 lib/plugins/dns.rb
auger-1.3.0 lib/plugins/dns.rb
auger-1.2.4 lib/plugins/dns.rb
auger-1.2.3 lib/plugins/dns.rb
auger-1.2.2 lib/plugins/dns.rb
auger-1.2.0 lib/plugins/dns.rb