diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-06-07 13:54:18 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-06-07 14:01:09 -0700 |
commit | c3880bb0cc00821d1715a7dd94b0b76a03a7ace0 (patch) | |
tree | dee85ce7f218d0ce4e0232dc9f845f51c59a62ef /test/unit/test_socket_helper.rb | |
parent | 0dc56fd03ea478ae054e3d0398703f43e017723b (diff) | |
download | unicorn-c3880bb0cc00821d1715a7dd94b0b76a03a7ace0.tar.gz |
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.
Diffstat (limited to 'test/unit/test_socket_helper.rb')
-rw-r--r-- | test/unit/test_socket_helper.rb | 8 |
1 files changed, 8 insertions, 0 deletions
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 |