[Mew-dist 11494] Re: (v6 8660) Re: Re: im-133
Hajimu UMEMOTO ( 梅本 肇 )
ume at example.com
1999年 11月 26日 (金) 22:25:56 JST
梅本@日立です。
>>>>> On Fri, 26 Nov 1999 21:47:01 +0900
>>>>> ume at example.com (Hajimu UMEMOTO (梅本 肇)) said:
うめ> 思いっきり IPv6 Perl 依存してましたね。X-(
うめ> 出直してきます。
出直してきました。
先のパッチの上に当てて下さい。
# im を触ってるのに mew_ なんて書いてるし。X-(
-------------- next part --------------
Index: IM/TcpTransaction.pm
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/IM/TcpTransaction.pm,v
retrieving revision 1.5
diff -u -r1.5 TcpTransaction.pm
--- TcpTransaction.pm 1999/11/26 12:11:06 1.5
+++ TcpTransaction.pm 1999/11/26 13:19:46
@@ -55,7 +55,7 @@
use IM::Log;
}
-sub mew_getaddrinfo ($$;$$$$) {
+sub im_getaddrinfo ($$;$$$$) {
return getaddrinfo(@_) if (eval '&AF_INET6'); # perl supports IPv6
my ($node, $serv, $family, $socktype, $proto, $flags) = @_;
@@ -126,13 +126,9 @@
if ($family == AF_INET) {
$sin = pack_sockaddr_in($se_port, $he_addr);
} else {
- $sin = pack_sockaddr_in6($se_port, $he_addr);
+ $sin = inet6_pack_sockaddr_in6($family, $se_port, $he_addr);
}
- push(@infos, $family);
- push(@infos, $socktype);
- push(@infos, $pe_proto);
- push(@infos, $sin);
- push(@infos, $he_name);
+ push(@infos, $family, $socktype, $pe_proto, $sin, $he_name);
}
@infos;
}
@@ -202,7 +198,7 @@
$Cur_server = $s;
}
$0 = progname() . ": getaddrinfo($s)";
- @he_infos = mew_getaddrinfo($s, $remoteport, AF_UNSPEC, SOCK_STREAM);
+ @he_infos = im_getaddrinfo($s, $remoteport, AF_UNSPEC, SOCK_STREAM);
if ($#he_infos < 0) {
im_warn("address unknown for $s\n");
@Response = ("address unknown for $s");
@@ -228,7 +224,7 @@
if ($family == AF_INET) {
$port = (unpack_sockaddr_in($sin))[0];
} else {
- $port = (unpack_sockaddr_in6($sin))[0];
+ $port = (inet6_unpack_sockaddr_in6($sin))[0];
}
*SOCK = \*{$name};
$SOCK = $port;
@@ -519,6 +515,17 @@
return pack('CCnN', 1+1+2+4+16+4, $family, $port, 0) . $he_addr .
pack('N', 0);
}
+}
+
+sub inet6_unpack_sockaddr_in6 ($) {
+ return unpack_sockaddr_in6(@_) if (eval '&AF_INET6');
+
+ my $sock = shift;
+
+ my ($len, $family, $port, $flow, $a1, $a2, $a3, $a4)
+ = unpack('CCnNN4', $sock);
+ my $addr = pack('N4', $a1, $a2, $a3, $a4);
+ ($port, $addr);
}
sub inet6_family () {
-------------- next part --------------
梅本 肇@(株)日立製作所 システム開発本部
E-Mail: ume at example.com ume at example.com ume at example.com
URL: http://www.imasy.org/~ume/
Mew-dist メーリングリストの案内