Issue #4788 has been updated by Samuel Williams.


I have a  vested interest in this patch since I am the developer of RubyDNS. This update will allow RubyDNS to hook into resolve.rb more efficiently. Right now, I have to duplicate code in resolve.rb to get the right behaviour.

Also, I originally suggested then name fetch_resource and thus I support Makoto Kishimoto's proposal about this change.

Lets work to get this updated so that I can add good support for RubyDNS and Ruby 1.9.

Thanks.
----------------------------------------
Feature #4788: resolv.rb refactoring
http://redmine.ruby-lang.org/issues/4788

Author: Makoto Kishimoto
Status: Open
Priority: Normal
Assignee: Akira Tanaka
Category: lib
Target version: 1.9.3


??????????????????????????????????????????????????????
https://github.com/ioquatix/rubydns/blob/master/lib/rubydns/resolv.rb
#3835 ? [ruby-core:32407] ????????????????????????????????????????????????????????????????????
?????????resolv.rb??以???????????????????????????????????????????????????????????????
????????????添????????????

----

diff --git a/lib/resolv.rb b/lib/resolv.rb
index 1e18893..e9c2432 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -491,6 +491,12 @@ class Resolv
     # #getresource for argument details.

     def each_resource(name, typeclass, &proc)
+      each_resource_(name, typeclass) {|reply, reply_name|
+        extract_resources(reply, reply_name, typeclass, &proc)
+      }
+    end
+
+    def each_resource_(name, typeclass)
       lazy_initialize
       requester = make_udp_requester
       senders = {}
@@ -517,7 +523,7 @@ class Resolv
               # response will not fit in an untruncated UDP packet.
               redo
             else
-              extract_resources(reply, reply_name, typeclass, &proc)
+              yield(reply, reply_name)
             end
             return
           when RCode::NXDomain



-- 
http://redmine.ruby-lang.org