aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--lib/resolv.rb30
2 files changed, 34 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index de434679bb..c9cb3b686d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Sun Feb 6 03:24:20 2005 Tanaka Akira <akr@m17n.org>
+
+ * 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.
+
Sat Feb 5 02:24:06 2005 Minero Aoki <aamine@loveruby.net>
* test/ripper/test_scanner_events.rb: fix test.
diff --git a/lib/resolv.rb b/lib/resolv.rb
index 28847f4bb2..3861d9190d 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