Method: Gem::Resolv::DNS::Message::MessageEncoder#put_labels

Defined in:
lib/rubygems/vendor/resolv/lib/resolv.rb

#put_labels(d, compress: true) ⇒ Object



1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 1524

def put_labels(d, compress: true)
  d.each_index {|i|
    domain = d[i..-1]
    if compress && idx = @names[domain]
      self.put_pack("n", 0xc000 | idx)
      return
    else
      if @data.length < 0x4000
        @names[domain] = @data.length
      end
      self.put_label(d[i])
    end
  }
  @data << "\0"
end