近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。
で、その環境で、ただしくgetaddrinfo(3)を発見できる
ようにするためのdiffです。1.4.3のtreeにあててください。
1.5でも同様の修正が必要かと思います。
それから、
- libcに入っているgetaddrinfo(3)がIPv6 readyで
- かつrubyに--enable-ipv6をつけなかった場合
関数の戻り値にsockaddr_in6を食らって困ることがあるのでそれも
追ってdiffを出します。遅くなってごめんなさい。
まだ少しsocket.soのdynamic linkまわりで苦しんでいます。
なにがいけないんだかよくわからない...
itojun
--- ext/socket/extconf.rb- Thu Jan 20 02:50:06 2000
+++ ext/socket/extconf.rb Thu Jan 20 02:52:52 2000
@@ -41,6 +41,7 @@
$ipv6type = nil
$ipv6lib = nil
$ipv6libdir = nil
+$ipv6trylibc = nil
if $ipv6
if egrep_cpp("yes", <<EOF)
#include <netinet/in.h>
@@ -59,6 +60,7 @@
$ipv6type = "kame"
$ipv6lib="inet6"
$ipv6libdir="/usr/local/v6/lib"
+ $ipv6trylibc=true
$CFLAGS="-DINET6 "+$CFLAGS
elsif File.directory? "/usr/inet6"
$ipv6type = "linux"
@@ -100,7 +102,7 @@
if $ipv6lib
if File.directory? $ipv6libdir and File.exist? "#{$ipv6libdir}/lib#{$ipv6lib}.a"
$LOCAL_LIBS = " -L#$ipv6libdir -l#$ipv6lib"
- else
+ elsif !$ipv6trylibc
print <<EOS
Fatal: no #$ipv6lib library found. cannot continue.