[Mew-dist 06110] IPv6 patch for im-98
Hajimu UMEMOTO ( 梅本 肇 )
ume at example.com
1998年 8月 22日 (土) 21:50:46 JST
梅本@IMASYです。
FreeBSD 版 KAME の ports/perl5 で作った perl だと
pack_sockaddr_in6() が使えますので、configure で判別して、pack() の代わ
りに pack_sockaddr_in6() を使用するようにしてみました。また、
--enable-inet6 でも指定できるようにしてあります。
-------------- next part --------------
Index: configure.in
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/configure.in,v
retrieving revision 1.1.1.17
diff -u -r1.1.1.17 configure.in
--- configure.in 1998/08/22 07:14:30 1.1.1.17
+++ configure.in 1998/08/22 11:34:36
@@ -28,6 +28,8 @@
AC_SUBST(im_rpop)
AC_SUBST(im_db_type)
AC_SUBST(im_file_attr)
+AC_SUBST(im_inet6_family)
+AC_SUBST(im_inet6_pack_sockaddr_in6)
IM_PATH_PERLV_PROGS(im_path_perl, perl perl5, PERL5_NOT_FOUND)
case "$im_path_perl" in
""|PERL5_NOT_FOUND)
@@ -53,6 +55,33 @@
[ --enable-rpop Use RPOP (suidperl is needed)],
[im_rpop="-o root -m 4555"],
[im_rpop="-m 555"],)
+
+AC_ARG_ENABLE(inet6,
+[ --enable-inet6 Use IPv6 (IPv6 Perl is needed)],
+inet6="$enableval", inet6="no")
+if test "${enable_inet6+set}" != set; then
+ AC_MSG_CHECKING([for IPv6 Perl])
+ cat > conftest.pl <<EOF
+use Socket;
+print AF_INET6 . "\n";
+EOF
+ if test "`$im_path_perl conftest.pl`" != AF_INET6
+ then
+ AC_MSG_RESULT([perl has ipv6])
+ inet6=yes
+ else
+ AC_MSG_RESULT([perl doesn't have ipv6])
+ fi
+ rm -fr conftest*
+fi
+if test "$inet6" != "no"; then
+ AC_MSG_RESULT(INET6 is enabled.)
+ im_inet6_family='AF_INET6'
+ im_inet6_pack_sockaddr_in6='&pack_sockaddr_in6($port, $he_addr)'
+else
+ im_inet6_family='24'
+ im_inet6_pack_sockaddr_in6='pack('CCnN', 1+1+2+4+16, $family, $port, 0) . $he_addr'
+fi
AC_OUTPUT(imali:imali.in imcat:imcat.in imcd:imcd.in imclean:imclean.in \
imget:imget.in imgrep:imgrep.in imhist:imhist.in \
Index: IM.in/TcpTransaction.pm.in
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/IM.in/TcpTransaction.pm.in,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 TcpTransaction.pm.in
--- TcpTransaction.pm.in 1998/05/23 06:13:20 1.1.1.4
+++ TcpTransaction.pm.in 1998/08/22 08:46:54
@@ -140,7 +140,7 @@
@he_addrs = (pack('n8',
hex("0x$1"), hex("0x$2"), hex("0x$3"), hex("0x$4"),
hex("0x$5"), hex("0x$6"), hex("0x$7"), hex("0x$8")));
- $family = 24; # AF_INET6
+ $family = @im_inet6_family@; # AF_INET6
} else {
im_err("bad server address in IPv6 format: $s\n");
return '';
@@ -191,7 +191,7 @@
if ($family == AF_INET) {
$sin = &pack_sockaddr_in($port, $he_addr);
} else { # AF_INET6
- $sin = pack('CCnN', 1+1+2+4+16, $family, $port, 0) . $he_addr;
+ $sin = @im_inet6_pack_sockaddr_in6@;
}
im_notice("opening $proto session to $s($port).\n");
alarm(connect_timeout()) unless win95p();
-------------- next part --------------
梅本 肇 @ インターネット互助会横浜
ume at example.com ume at example.com http://www.imasy.org/~ume/
プログラムは書いた人の意図ではなく書かれた通り動く
Mew-dist メーリングリストの案内