Fyi, net-mdns-0.1 contains modified versions of resolv.rb and
resolv-replace.rb. Some of these modifications are bug fixes.

Modifications are backwards compatible, I would not expect any existing
users of resolv.rb to notice any changes (other than improvements) when
when switching to the net-mdns version.

Go to http://dnssd.rubyforge.org/net-mdns/ for more info, the diffs are
too large to post here.

Here is the note from the top of net/mdns/resolv.rb:

# net/dns/resolv.rb is a copy of resolv.rb from the ruby library, where it is
# maintained by Tanaka Akira.
#
# It contains modifications I found necessary, some of which have been accepted
# into ruby 1.8's cvs, and others that I hope will be accepted.
#
# net/dns/resolvx.rb contains extensions to resolv.rb (as opposed to modifications),
# some of these may also be worth accepting into the standard library.
#
# Note that until net/dns/resolv.rb is accepted AND released in ruby 1.8.x's
# resolv.rb I still need a copy in net-mdns. Without it, it would be necessary
# to install ruby from CVS in order to use net-mdns.
#
# = Bug fixes/Required changes
# - resolv-replace.rb: IPSocket#getaddress fails when passed a Fixnum, such as when
#   calling UDPSocket#bind(Socket:INADDR_ANY, 5353)
# - MessageEncoder#put_string: would silently create a garbage record if string was
#   longer than 255 characters.
# - TXT.new: correctly deal with TXT records longer than 255 characters.
# - TXT#data: correctly concatenate strings into a TXT record longer than 255 characters.
# - Message#encode/Message#decode: question and answer arrays now contain the
#   mDNS unicast and cacheflush bit, respectively. All APIs, including
#   #each_question and #each_answer, are backwards compatible.
# - A.new(A#address) failed because IPv4.create() wouldn't accept an address in the
#   form of A#address (4 bytes in network byte order).
#
# = Ease-of-use changes
#
# - partial rdocifying
# - Str#inspect: difficult to notice whitespace at beginning of string, added quotes.
# - Name#==: allow arg to be String or Name, as does Name#create.
# - Name#subdomain_of?: allow arg to be String or Name, as does Name#create.
# - Name#subdomain_of?: disregard absolute, it doesn't make sense that:
#     www.example.com subdomain_of? www.example.com. => false
#     www.example.com subdomain_of? www.example.com  => true
#   If you can't compare a variable thing to a known thing.. how can you compare a
#   variable thing to a variable thing?
#
# I had a lot of bugs using Name comparison related to trailing dots. Name#==
# is almost impossible to use correctly when comparing against an other which
# is a Name or a String, and may have come from a DNS Message (in which case it
# will be absolute), or from input from a user, in which case they probably did
# not type the trailing dot.


Cheers,
Sam