class Comuna::Server
Public Class Methods
new(config)
click to toggle source
# File lib/comuna/server.rb, line 9 def initialize(config) @interfaces = config.interfaces @upstream_ifaces = config.upstream @matches = config.matches end
Public Instance Methods
call()
click to toggle source
# File lib/comuna/server.rb, line 15 def call matches = @matches upstr = upstream RubyDNS::run_server(:listen => @interfaces) do @logger.level = Logger::INFO matches.each do |(name, address)| match(/#{name}/, IN::A) do |transaction| transaction.respond!(address) end end otherwise do |transaction| transaction.passthrough!(upstr) end end end
upstream()
click to toggle source
# File lib/comuna/server.rb, line 34 def upstream RubyDNS::Resolver.new(@upstream_ifaces) end