diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-02-05 18:31:20 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-02-05 18:31:20 +0000 |
| commit | 12261ae41c626ac0515397c65405827254d5a76f (patch) | |
| tree | 584ce6b607bc3908d9f9fb4d1708ba37a39fb69f /lib | |
| parent | df1d502c11dd3faa7470ee266c998ee633988c62 (diff) | |
| download | ruby-12261ae41c626ac0515397c65405827254d5a76f.tar.gz ruby-12261ae41c626ac0515397c65405827254d5a76f.tar.xz ruby-12261ae41c626ac0515397c65405827254d5a76f.zip | |
* lib/resolv.rb (Resolv::DNS::Resource::TXT): multiple strings was not
handled.
(Resolv::DNS::Resource::TXT#strings): new method to return all
strings.
(Resolv::DNS::Message::MessageEncoder#put_string_list): new method.
(Resolv::DNS::Message::MessageDecoder#get_string_list): ditto.
based on [ruby-talk:129732] by Sam Roberts.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/resolv.rb | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb index 28847f4bb..3861d9190 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1154,6 +1154,12 @@ class Resolv @data << d end + def put_string_list(ds) + ds.each {|d| + self.put_string(d) + } + end + def put_name(d) put_labels(d.to_a) end @@ -1266,6 +1272,14 @@ class Resolv return d end + def get_string_list + strings = [] + while @index < @limit + strings << self.get_string + end + strings + end + def get_name return Name.new(self.get_labels) end @@ -1508,18 +1522,22 @@ class Resolv class TXT < Resource TypeValue = 16 - def initialize(data) - @data = data + def initialize(first_string, *rest_strings) + @strings = [first_string, *rest_strings] + end + attr_reader :strings + + def data + @strings[0] end - attr_reader :data def encode_rdata(msg) - msg.put_string(@data) + msg.put_string_list(@strings) end def self.decode_rdata(msg) - data = msg.get_string - return self.new(data) + strings = msg.get_string_list + return self.new(*strings) end end |
