diff --git a/ext/ripper/tools/dsl.rb b/ext/ripper/tools/dsl.rb index 38f859dd97ed61..9b8796442cfcfd 100644 --- a/ext/ripper/tools/dsl.rb +++ b/ext/ripper/tools/dsl.rb @@ -37,7 +37,8 @@ def to_s if empty? "rb_ary_new()" else - "rb_ary_new_from_args(#{size}, #{map(&:to_s).join(', ')})" + values = map {|value| "(VALUE)0|(#{value})"} + "rb_ary_new_from_args(#{size}, #{values.join(', ')})" end end end diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c index 0e17d9e87383ce..c584a0bd193fb0 100644 --- a/ext/socket/ancdata.c +++ b/ext/socket/ancdata.c @@ -706,8 +706,14 @@ anc_inspect_passcred_credentials(int level, int type, VALUE data, VALUE ret) } #endif -#if defined(SCM_CREDS) -#define INSPECT_SCM_CREDS +#if !defined(SCM_CREDS) +#elif defined(HAVE_TYPE_STRUCT_CMSGCRED) /* FreeBSD */ +# define INSPECT_SCM_CREDS +#elif defined(HAVE_TYPE_STRUCT_SOCKCRED) /* FreeBSD, NetBSD */ +# define INSPECT_SCM_CREDS +#endif + +#ifdef INSPECT_SCM_CREDS static int anc_inspect_socket_creds(int level, int type, VALUE data, VALUE ret) { diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb index 465b74964f9b22..a091320c486531 100644 --- a/ext/socket/lib/socket.rb +++ b/ext/socket/lib/socket.rb @@ -2,11 +2,6 @@ require 'socket.so' -unless IO.method_defined?(:wait_writable, false) - # It's only required on older Rubies < v3.2: - require 'io/wait' -end - class Addrinfo # creates an Addrinfo object from the arguments. # diff --git a/test/ripper/test_ripper.rb b/test/ripper/test_ripper.rb index 2b3421d8270a8a..4baca69b57daf9 100644 --- a/test/ripper/test_ripper.rb +++ b/test/ripper/test_ripper.rb @@ -225,3 +225,12 @@ def state(name) Ripper::Lexer::State.new(Ripper.const_get(name)) end end if ripper_test + +class TestRipper::DSL < Test::Unit::TestCase + def test_array_elements_are_values + require_relative "../../ext/ripper/tools/dsl" + + code = DSL.line?("/*% ripper: [$:$, 0] %*/").generate + assert_include(code, "rb_ary_new_from_args(2, (VALUE)0|(p->s_lvalue), (VALUE)0|(0))") + end +end if ripper_test diff --git a/test/rubygems/test_bundled_ca.rb b/test/rubygems/test_bundled_ca.rb index cc8fa884cacdf9..308a736686b4f8 100644 --- a/test/rubygems/test_bundled_ca.rb +++ b/test/rubygems/test_bundled_ca.rb @@ -33,7 +33,8 @@ def assert_https(host) http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.cert_store = bundled_certificate_store http.get("/") - rescue Errno::ENOENT, Errno::ETIMEDOUT, SocketError, Gem::Net::OpenTimeout + rescue Errno::ENOENT, Errno::ETIMEDOUT, Errno::ECONNRESET, Errno::ECONNREFUSED, + EOFError, SocketError, Gem::Net::OpenTimeout pend "#{host} seems offline, I can't tell whether ssl would work." rescue OpenSSL::SSL::SSLError => e # Only fail for certificate verification errors