Method: Dnsruby::RRSet#add
- Defined in:
- lib/Dnsruby/resource/resource.rb
#add(rin, do_clone = true) ⇒ Object
Add the RR to this RRSet Takes a copy of the RR by default. To suppress this, pass false as the second parameter.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/Dnsruby/resource/resource.rb', line 72 def add(rin, do_clone = true) if (rin.instance_of?RRSet) ret = false [rin.rrs, rin.sigs].each {|rr| ret = add(rr)} return ret end # r = RR.create(r.to_s) # clone the record r = nil if do_clone r = rin.clone else r = rin end if (@rrs.size() == 0) # && !(r.type == Types.RRSIG)) return privateAdd(r) end # Check the type, klass and ttl are correct first = @rrs[0] if (!r.sameRRset(first)) return false # raise ArgumentError.new("record does not match rrset") end if (!(r.type == Types::RRSIG) && (!(first.type == Types::RRSIG))) if (r.ttl != first.ttl) # RFC2181, section 5.2 if (r.ttl > first.ttl) r.ttl=(first.ttl) else @rrs.each do |rr| rr.ttl = r.ttl end end end end return privateAdd(r) # return true end |