[#2840] Changing Resolv::DNS — Daniel Hobe <daniel@...>
I put out a RCR a while ago (176) that subclassed the Resolv::DNS class to
5 messages
2004/05/01
[#2853] cgi.rb: option to omit HTTP header emission — Jos Backus <jos@...>
I'm trying to use cgi.rb to write HTML-only output. This patch adds a
5 messages
2004/05/06
[#2867] ruby/dl — Jeff Mitchell <quixoticsycophant@...>
# dltest.rb
7 messages
2004/05/12
[#2878] Bug in open-uri under win32 (?) — Mauricio Fern疣dez <batsman.geo@...>
4 messages
2004/05/16
[#2894] RI for distribution — why the lucky stiff <ruby-core@...>
Hi, everyone.
6 messages
2004/05/18
[#2901] test/yaml/test_yaml.rb — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Hello.
2 messages
2004/05/19
[#2913] [yaml] YAML.load([1,2,3].to_yaml.to_yaml) — Jeff Mitchell <quixoticsycophant@...>
A bit contrived,
8 messages
2004/05/20
[#2926] Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml)
— "daz" <dooby@...10.karoo.co.uk>
2004/05/23
[#2927] Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml)
— ts <decoux@...>
2004/05/23
>>>>> "d" == daz <dooby@d10.karoo.co.uk> writes:
[#2928] Syck CVS (was Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml))
— why the lucky stiff <ruby-core@...>
2004/05/23
ts wrote:
[#2929] Re: Syck CVS (was Re: [bug] [yaml] YAML.load([1,2,3].to_yaml.to_yaml))
— ts <decoux@...>
2004/05/23
>>>>> "w" == why the lucky stiff <ruby-core@whytheluckystiff.net> writes:
[#2918] fixed SIG_SEGV in check_stack() in eval.c — b g <bg_rubyposter_123456@...>
I was getting a crash at 'JUMP_TAG(state);' in
6 messages
2004/05/22
[#2938] -Wstrict-prototypes for extensions — Jeff Mitchell <quixoticsycophant@...>
6 messages
2004/05/25
Changing Resolv::DNS
From:
Daniel Hobe <daniel@...>
Date:
2004-05-01 22:56:38 UTC
List:
ruby-core #2840
I put out a RCR a while ago (176) that subclassed the Resolv::DNS class to
allow a user to specify the nameserver or nameservers for the resolver to
use. I've since thought better of that interface and wanted to propose
something like the code below as an addition to the base Resolv::DNS class.
Having the ability to tell the library what nameserver to use is very usful if
you want to monitor a set of DNS servers to make sure they are responding
with the proper result for a name.
i.e.:
Resolv::DNS.new('/etc/foo')
-or-
Resolv::DNS.new({nameserver=>['192.168.10.1','192.168.10.2'],
search=>['ruby-lang.org','ruby-doc.org'],
ndots => 2})
Checking for a String or Hash explicitly is repulsive, any ideas on how to do
this better?
class Resolv::DNS
def initialize(config="/etc/resolv.conf")
@mutex = Mutex.new
if config.class == String
@config = Config.new(config)
elsif config.class == Hash
@config = ConfigUser.new
else
raise
end
@initialized = nil
end
class ConfigUser < Resolv::DNS::Config
def initialize(nameserver,search,ndots)
@mutex = Mutex.new
@nameserver = nameserver
@search = search
@ndots = ndots
@initialized = nil
end
def lazy_initialize
@mutex.synchronize {
unless @initialized
unless @search
hostname = Socket.gethostname
if /\./ =~ hostname
@search = [Resolv::DNS::Label.split($')]
else
@search = [[]]
end
end
@initialized = true
end
}
end
end
--
Daniel Hobe <daniel@nightrunner.com>
http://www.nightrunner.com