summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-05 18:31:20 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-05 18:31:20 +0000
commit12261ae41c626ac0515397c65405827254d5a76f (patch)
tree584ce6b607bc3908d9f9fb4d1708ba37a39fb69f /lib
parentdf1d502c11dd3faa7470ee266c998ee633988c62 (diff)
downloadruby-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.rb30
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