From: Eleanor McHugh Date: 2009-06-22T20:27:10+09:00 Subject: Re: ruby suggestion:do_not_reverse_lookup = true as default On 22 Jun 2009, at 11:41, Roger Pack wrote: > Currently ruby socket code defaults to always doing a reverse DNS > lookup > when it can [ex: once per incoming UDP packet]. > This causes "surprising" pauses when the lookup fails, because the DNS > waits 15s to timeout, before passing the packet back to the program, > since the pause is unexpected. > > ex: http://betterlogic.com/roger/?p=1646 > comment out the do_not_reverse_lookup on the receiver and change the > sender to send to IP127.0.0.255 > > It works great [no pause]if you set > BasicSocket.do_not_reverse_lookup to > true, and is much less surprising. This isn't the first time I've > been > bit by ruby's internal packet DNS lookups and so thought I'd ask for > feedback before suggesting to core that it be turned off by default. > > The other benefit is that with DNS lookups, sometimes they succeed, > and > sometimes fail, which means that normal code could run into unexpected > pauses when put into production--which is surprising and unwanted, > really. > > Thoughts on this one? > Thanks. I tend to agree with you on this although I'd also suggest that the option become do_reverse_lookup if it's going to default to false, that avoids having to read lots of code peppered with do_not_reverse_lookup = false when a reverse lookup is desired. Double negatives are a guaranteed way to scramble frazzled brains :) Ellie Eleanor McHugh Games With Brains http://slides.games-with-brains.net ---- raise ArgumentError unless @reality.responds_to? :reason