From c3880bb0cc00821d1715a7dd94b0b76a03a7ace0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 7 Jun 2011 13:54:18 -0700 Subject: configurator: add :ipv6only directive Enabling this flag for an IPv6 TCP listener allows users to specify IPv6-only listeners regardless of the OS default. This should be interest to Rainbows! users. --- test/unit/test_socket_helper.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test') diff --git a/test/unit/test_socket_helper.rb b/test/unit/test_socket_helper.rb index c6d0d42..8ce1023 100644 --- a/test/unit/test_socket_helper.rb +++ b/test/unit/test_socket_helper.rb @@ -12,6 +12,7 @@ class TestSocketHelper < Test::Unit::TestCase @log_tmp = Tempfile.new 'logger' @logger = Logger.new(@log_tmp.path) @test_addr = ENV['UNICORN_TEST_ADDR'] || '127.0.0.1' + @test6_addr = ENV['UNICORN_TEST6_ADDR'] || '::1' GC.disable end @@ -177,4 +178,11 @@ class TestSocketHelper < Test::Unit::TestCase assert cur > 1 end if defined?(TCP_DEFER_ACCEPT) + def test_ipv6only + port = unused_port "#@test6_addr" + sock = bind_listen "[#@test6_addr]:#{port}", :ipv6only => true + cur = sock.getsockopt(:IPPROTO_IPV6, :IPV6_V6ONLY).unpack('i')[0] + assert_equal 1, cur + rescue Errno::EAFNOSUPPORT + end if RUBY_VERSION >= "1.9.2" end -- cgit v1.2.3-24-ge0c7