Resolv.rb - documentation and its name


#1

Hi group.

I’d like to test resolve.rb, but I have troubles.

First of all, where can I get some documents on resolv.rb? I use
http://ruby-doc.org/stdlib, but there’s none.

Second of all, why is it named resolve instead of Net::DNS? It doesn’t
seem to be good choice to me. Don’t you think this is incoherent?

Sincerely,
Minkoo S.


#2

Minkoo S. wrote:

Sincerely,
Minkoo S.

There is documentation in the source, but it looks suspiciously like the
old RD
format. Perhaps that explains why ruby-doc didn’t pick it up.

There’s also this project:

http://rubyforge.org/projects/net-dns/

However, there hasn’t been a release yet.

Regards,

Dan


#3

On Mar 28, 2006, at 10:28 AM, Minkoo S. wrote:

First of all, where can I get some documents on resolv.rb? I use
http://ruby-doc.org/stdlib, but there’s none.

The head branch of Ruby has resolv.rb documentation in RDoc format:

$ ri19 Resolv

---------------------------------------------------------- Class: Resolv
Resolv is a thread-aware DNS resolver library written in Ruby.
Resolv can handle multiple DNS requests concurrently without
blocking. The ruby interpreter.

  See also resolv-replace.rb to replace the libc resolver with #
  Resolv.

  Resolv can look up various DNS resources using the DNS module
  directly.

[…]

Second of all, why is it named resolve instead of Net::DNS? It doesn’t
seem to be good choice to me. Don’t you think this is incoherent?

Resolv is not just a DNS resolver. It also reads from /etc/hosts.


Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com


#4

Eric H. wrote:

  Resolv is a thread-aware DNS resolver library written in Ruby.

Second of all, why is it named resolve instead of Net::DNS? It doesn’t
seem to be good choice to me. Don’t you think this is incoherent?

Resolv is not just a DNS resolver. It also reads from /etc/hosts.


Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com

Thank you. This will be of great help.

But, as you quoted, resolve.rb says “Resolv is a thread-aware DNS
resolver library written in Ruby”, so it is DNS resolver and I accuse
resolve.rb of misnomer because it does not follow Net::xxx rules.
Futhermore, reading /etc/hosts does not justify its name, because I
believe that its name, resolve, was named after DNS resolver. (BTW, do
you really think reading /etc/hosts is not related to dns resolver’s
own job?)

Actually lack of naming coherency in Ruby is quite annoying more often
than not.

Sincerely,
Minkoo S.


#5

On Mar 28, 2006, at 11:53 AM, Minkoo S. wrote:

Eric H. wrote:

On Mar 28, 2006, at 10:28 AM, Minkoo S. wrote:

Second of all, why is it named resolve instead of Net::DNS? It
doesn’t
seem to be good choice to me. Don’t you think this is incoherent?

Resolv is not just a DNS resolver. It also reads from /etc/hosts.

Thank you. This will be of great help.

You’re welcome. I converted it from RD to RDoc.

But, as you quoted, resolve.rb says “Resolv is a thread-aware DNS
resolver library written in Ruby”, so it is DNS resolver and I accuse
resolve.rb of misnomer because it does not follow Net::xxx rules.
Futhermore, reading /etc/hosts does not justify its name, because I
believe that its name, resolve, was named after DNS resolver. (BTW, do
you really think reading /etc/hosts is not related to dns resolver’s
own job?)

Actually lack of naming coherency in Ruby is quite annoying more often
than not.

The DNS portion of Resolv should probably go under Net, but it has
broader functionality than just DNS resolution. Resolv is a good
name for the glue that the library provides between DNS and /etc/
hosts, along with the automatic configuration.


Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com


#6

On 28/03/06, Minkoo S. removed_email_address@domain.invalid wrote:

Thank you. This will be of great help.

But, as you quoted, resolve.rb says “Resolv is a thread-aware DNS
resolver library written in Ruby”, so it is DNS resolver and I accuse
resolve.rb of misnomer because it does not follow Net::xxx rules.
Futhermore, reading /etc/hosts does not justify its name, because I
believe that its name, resolve, was named after DNS resolver. (BTW, do
you really think reading /etc/hosts is not related to dns resolver’s
own job?)

It may be illuminating to study the functionality of the resolver
library found on most Unix systems. “man resolver” gives some
information on Linux systems – other systems will vary. If you note
the name of the library that gets linked in, the name of the module
will make much more sense to you.

Actually lack of naming coherency in Ruby is quite annoying more often
than not.

Sincerely,
Minkoo S.

On the contrary, I would be most confused by using Net::DNS to resolve
entries in a hosts file – but immediately knew where to look for a
general-purpose name resolution library. Sometimes historical reasons
are good ones.

Cheers,

kjw