Project

General

Profile

Actions

Feature #8090

closed

resolv.rb checks platform based on RUBY_PLATFORM, which is insufficient for JRuby

Added by headius (Charles Nutter) about 11 years ago. Updated about 11 years ago.

Status:
Closed
Assignee:
-
Target version:
[ruby-core:53388]

Description

JRuby shares stdlib with MRI, and as a result we've had to patch a number of things. We'd like to get some of these changes back into MRI's copy.

This issue refers to the following check in resolv.rb:

if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM
  require 'win32/resolv'
  DefaultFileName = Win32::Resolv.get_hosts_path
else
  DefaultFileName = '/etc/hosts'
end

Because RUBY_PLATFORM on JRuby is always 'java', this check will use the incorrect "hosts" path on Windows. This was reported as an issue in https://github.com/jruby/jruby/issues/580.

We had patched 1.8 stdlib but not 1.9 stdlib to use the following line for checking platform:

if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM || ::RbConfig::CONFIG['host_os'] =~ /mswin/

I would like to commit this change back to MRI for 1.9.3, 2.0, and 2.1. It does not produce a behavioral change on MRI, since there's no supported platforms that will match /mswin/ for host_os, but it means we won't have to maintain a diff.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0