This class performs zone transfers as per RFC1034 (AXFR) and RFC1995 (IXFR).
Perform a zone transfer (RFC1995) If an IXFR query is unsuccessful, then AXFR is tried (and @transfer_type is set to AXFR) TCP is used as the only transport
If AXFR is performed, then the zone will be returned as a set of records :
zt = Dnsruby::ZoneTransfer.new zt.transfer_type = Dnsruby::Types.AXFR zt.server = "ns0.validation-test-servers.nominet.org.uk" zone = zt.transfer("validation-test-servers.nominet.org.uk") soa = zone[0] rec1 = zone[1] print zone.to_s
If IXFR is performed, then the incrementals will be returned as a set of Deltas. Each Delta contains the start and end SOA serial number, as well as an array of adds and deletes that occurred between the start and end.
zt = Dnsruby::ZoneTransfer.new zt.transfer_type = Dnsruby::Types.IXFR zt.server = "ns0.validation-test-servers.nominet.org.uk" zt.serial = 2007090401 deltas = zt.transfer("validation-test-servers.nominet.org.uk") assert_equal("Should show up in transfer", deltas[0].adds[1].data)
# File lib/Dnsruby/zone_transfer.rb, line 82 82: def transfer(zone) 83: servers = @server 84: if (servers.class == String) 85: servers=[servers] 86: end 87: xfr = nil 88: exception = nil 89: servers.each do |server| 90: begin 91: server=Config.resolve_server(server) 92: xfr = do_transfer(zone, server) 93: break 94: rescue Exception => exception 95: end 96: end 97: if (xfr == nil && exception != nil) 98: raise exception 99: end 100: return xfr 101: end
Sets the TSIG to sign the zone transfer with. Pass in either a Dnsruby::RR::TSIG, or a key_name and key (or just a key) Pass in nil to stop tsig signing.
res.tsig=(tsig_rr)
res.tsig=(key_name, key)
res.tsig=nil # Don’t sign the transfer
# File lib/Dnsruby/zone_transfer.rb, line 41 41: def tsig=(*args) 42: @tsig = SingleResolver.get_tsig(args) 43: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.