diff --git a/lib/dyndnsd.rb b/lib/dyndnsd.rb index 508612e..163d4ce 100644 --- a/lib/dyndnsd.rb +++ b/lib/dyndnsd.rb @@ -85,7 +85,7 @@ module Dyndnsd # malformed myip? begin - IPAddr.new(params["myip"], Socket::AF_INET) + IPAddr.new(params["myip"]) rescue ArgumentError params["myip"] = env["REMOTE_ADDR"] end diff --git a/lib/dyndnsd/generator/bind.rb b/lib/dyndnsd/generator/bind.rb index f45d668..3d03e06 100644 --- a/lib/dyndnsd/generator/bind.rb +++ b/lib/dyndnsd/generator/bind.rb @@ -19,8 +19,10 @@ module Dyndnsd out << "@ IN NS #{@dns}" out << "" zone['hosts'].each do |hostname,ip| + ip = IPAddr.new(ip).native + type = ip.ipv6? ? "AAAA" : "A" name = hostname.chomp('.' + @domain) - out << "#{name} IN A #{ip}" + out << "#{name} IN #{type} #{ip}" end out << "" out << @additional_zone_content