class Checkson::Check::DNS

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Checkson::Check::Base::new
# File lib/checkson/checks/dns.rb, line 6
def initialize(opts = {})
  @opts = { domain: 'heise.de',
            timeout: 1,
            host: 'localhost' }.merge(opts)
  super()
end

Public Instance Methods

check() click to toggle source
# File lib/checkson/checks/dns.rb, line 13
def check
  require 'resolv'
  resolver = Resolv::DNS.new(nameserver: [@opts[:host]])
  resolver.timeouts = @opts[:timeout]
  begin
    resolver.getaddress(@opts[:domain])
  rescue Resolv::ResolvTimeout
    failed!
    log("Resolving #{@opts[:domain]} timed out")
  rescue Resolv::ResolvError
    failed!
    log("Could not resolve #{@opts[:domain]}")
  end
end