def Resolver.get_tsig(args)
tsig = nil
if (args.length == 1)
if (args[0])
if (args[0].instance_of?RR::TSIG)
tsig = args[0]
elsif (args[0].instance_of?Array)
if (args[0].length > 2)
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0][0], :key => args[0][1], :algorithm => args[0][2]})
else
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0][0], :key => args[0][1]})
end
end
else
return nil
end
elsif (args.length ==2)
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0], :key => args[1]})
elsif (args.length ==3)
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0], :key => args[1], :algorithm => args[2]})
else
raise ArgumentError.new("Wrong number of arguments to tsig=")
end
Dnsruby.log.info{"TSIG signing now using #{tsig.name}, key=#{tsig.key}"}
return tsig
end