diff --git a/lib/dyndnsd.rb b/lib/dyndnsd.rb index 1916baa..1563ee3 100644 --- a/lib/dyndnsd.rb +++ b/lib/dyndnsd.rb @@ -119,7 +119,7 @@ module Dyndnsd config = YAML::load(File.open(config_file, 'r') { |f| f.read }) db = Database.new(config['db']) - updater = Updater::CommandWithBindZone.new(config['updater']['params']) if config['updater']['name'] == 'command_with_bind_zone' + updater = Updater::CommandWithBindZone.new(config['domain'], config['updater']['params']) if config['updater']['name'] == 'command_with_bind_zone' responder = Responder::DynDNSStyle.new app = Daemon.new(config, db, updater, responder) diff --git a/lib/dyndnsd/generator/bind.rb b/lib/dyndnsd/generator/bind.rb index a8c1f3f..7b227c2 100644 --- a/lib/dyndnsd/generator/bind.rb +++ b/lib/dyndnsd/generator/bind.rb @@ -2,9 +2,9 @@ module Dyndnsd module Generator class Bind - def initialize(config) + def initialize(domain, config) + @domain = domain @ttl = config['ttl'] - @origin = config['origin'] @dns = config['dns'] @email_addr = config['email_addr'] end @@ -12,13 +12,13 @@ module Dyndnsd def generate(zone) out = [] out << "$TTL #{@ttl}" - out << "$ORIGIN #{@origin}" + out << "$ORIGIN #{@domain}." out << "" out << "@ IN SOA #{@dns} #{@email_addr} ( #{zone['serial']} 3h 5m 1w 1h )" out << "@ IN NS #{@dns}" out << "" zone['hosts'].each do |hostname,ip| - name = hostname.chomp('.' + @origin[0..-2]) + name = hostname.chomp('.' + @domain) out << "#{name} IN A #{ip}" end out << "" diff --git a/lib/dyndnsd/updater/command_with_bind_zone.rb b/lib/dyndnsd/updater/command_with_bind_zone.rb index 57a33a9..dc9fe63 100644 --- a/lib/dyndnsd/updater/command_with_bind_zone.rb +++ b/lib/dyndnsd/updater/command_with_bind_zone.rb @@ -2,10 +2,10 @@ module Dyndnsd module Updater class CommandWithBindZone - def initialize(config) + def initialize(domain, config) @zone_file = config['zone_file'] @command = config['command'] - @generator = Generator::Bind.new(config) + @generator = Generator::Bind.new(domain, config) end def update(zone)