[ruby-list:49245] Re: dRuby IPv6

From: とみたまさひろ <tommy@...>
Date: 2013-03-02 14:54:46 UTC
List: ruby-list #49245
On Sat, 2 Mar 2013 23:36:14 +0900
masa <masap.hat@gmail.com> wrote:

> どうして、dRubyではIPv4を先に使用して、もしIPv4が使われていたら、IPv6に切り替えるのか、というところは未だわかっていませんが、とりあえずetc/hostsが原因だというのはわかりました。

dRuby というより、Ruby の Socket ライブラリ(TCPServer.open)がそのような動きをするためです。

ホスト名が複数のIPアドレスを持っていると、成功するまで順番に bind を試みます。

1回目 IPv4で成功
2回目 IPv4で失敗→IPv6で成功
3回目 IPv4で失敗→IPv6で失敗→エラー

dRuby だけでなく単純に TCPServer.open を使用しているものは同じことになると思います。前に私もハマったことがありました。

-- 
とみたまさひろ <tommy@tmtm.org>
http://twitter.com/tmtms
D68F 8F55 7F6C 5908 88EB  1EBA 25ED DEE7 BBE8 1752

In This Thread