class DnsOne::DnsOne

Constants

DEFAULTS

Public Class Methods

new(conf_file: nil) click to toggle source
# File lib/dns_one.rb, line 40
def initialize conf_file: nil
    @conf = Global.conf = load_conf(conf_file || DEFAULTS[:conf_file])
end

Public Instance Methods

start() click to toggle source
# File lib/dns_one.rb, line 44
def start
    init_loggers
    chdir
    Server.new.run 
end

Private Instance Methods

chdir() click to toggle source
# File lib/dns_one.rb, line 70
def chdir
    d = @conf.work_dir
    FileUtils.mkdir_p d
    Dir.chdir d

rescue => e
    Global.logger.error e.desc
    Global.logger.error "Cannot chdir to #{@conf.work_dir}. Will continue in #{Dir.pwd}"
end
init_loggers() click to toggle source
# File lib/dns_one.rb, line 65
def init_loggers
    Global.logger           = Util.init_logger @conf.log_file       , Logger::INFO
    Global.ruby_dns_logger  = Util.init_logger @conf.ruby_dns_logger, Logger::WARN
end
load_conf(conf_file) click to toggle source
# File lib/dns_one.rb, line 52
def load_conf conf_file
    conf = DEFAULTS.clone
    if File.exists? conf_file
        conf.merge! YAML.load_file(conf_file).symbolize_keys
    end
    Util.hash_to_ostruct_deep conf

rescue => e
    $stderr.puts e.desc
    $stderr.puts "Error opening conf file #{conf_file}. Aborting."
    exit 1
end