From: merch-redmine@... Date: 2019-07-08T01:55:18+00:00 Subject: [ruby-core:93605] [Ruby master Bug#10747] DNS resolution should fall back to TCP on Errno::EACCES Issue #10747 has been updated by jeremyevans0 (Jeremy Evans). Assignee set to akr (Akira Tanaka) Status changed from Open to Assigned File resolv-tcp-fallback-eacces.patch added I'm not sure I would consider this a bug, but it seems like a reasonable change. Attached is an updated patch that applies against master. ---------------------------------------- Bug #10747: DNS resolution should fall back to TCP on Errno::EACCES https://bugs.ruby-lang.org/issues/10747#change-79201 * Author: a13m (Andy Grimm) * Status: Assigned * Priority: Normal * Assignee: akr (Akira Tanaka) * Target version: * ruby -v: 2.0.0p353 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- On some platforms, users may be restricted from global binding to a UDP port, which is necessary for UDP-based DNS lookups. In this case, an exception like the following is currently raised: > ruby -r resolv -e 'puts Resolv.getaddress "www.ruby-lang.org"' resolv.rb:655:in `bind': Permission denied - bind(2) (Errno::EACCES) resolv.rb:655:in `bind_random_port' resolv.rb:791:in `initialize' resolv.rb:560:in `new' resolv.rb:560:in `make_udp_requester' resolv.rb:513:in `each_resource' resolv.rb:406:in `each_address' resolv.rb:115:in `block in each_address' resolv.rb:114:in `each' resolv.rb:114:in `each_address' resolv.rb:92:in `getaddress' resolv.rb:43:in `getaddress' This error should be caught, and the resolver should fall back to TCP, as it does in other cases where this is necessary. A possible patch for this (written against 2.0.0p353 in RHEL) is attached. Ideally, it would also be nice to be able to specify tcp by default when initializing a DNS object on such platforms, to avoid repeated bind attempts which are known to fail, but I am not sure of the best way to introduce such an option. ---Files-------------------------------- resolver-force-tcp.patch (830 Bytes) resolv-tcp-fallback-eacces.patch (1.19 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: