From: Ryo HAYASAKA Date: 2001-12-18T03:00:24+09:00 Subject: [ruby-dev:15485] Re: listen for sockets in both IPv4 and IPv6 早坂@北陸先端です. From: matz@ruby-lang.org (Yukihiro Matsumoto) Subject: [ruby-dev:15470] Re: listen for sockets in both IPv4 and IPv6 Date: Mon, 17 Dec 2001 15:27:41 +0900 > これってbreakとっちゃうと、load_addr_infoでとってきた > res_remoteに含まれる「最後の」family, socktype, protocolが有 > 効になりませんか? > for loop内でループごとにsocket(2)を呼んでいるので、成功した > らbreakしないと前に生成したfdが捨てられてしまうと思います。 確かに. 見落としてました. From: GOTOU Yuuzou Subject: [ruby-dev:15474] Re: listen for sockets in both IPv4 and IPv6 Date: Mon, 17 Dec 2001 17:03:47 +0900 > NetBSD の場合は、 > # sysctl -w net.inet6.ip6.bindv6only=0 > とすることで、IPv4射影アドレスのサポートが有効になって、IPv4 > と IPv6 の両方からの接続を受けられるようです。 これは知らなかったです. 試してみましたら IPv4 アドレスが IPv6 にマッ プされて接続できました. でも ip6(4) みるとアクセス制御の点でシステム 全体に影響する副作用があるみたいですね. > この機能が使えない場合には sample/dualstack-httpd.rb のように、 > Socket::getaddrinfo が返す全てのアドレスをバインドする必要があ > るのではないかと思います。 ごとうさんのコードと sample/dualstack-httpd.rb を参考にして, 両方か ら接続を受けられました. socket.c いじらなくてもこういう書き方があっ たんですね.(^^; ありがとうございました. -- HAYASAKA, Ryo (早坂 良) mailto:ryoh@jaist.ac.jp http://www.jaist.ac.jp/%7Eryoh/ Japan Advanced Institute of Science and Technology (JAIST)