Socket6
view release on metacpan or search on metacpan
im-140.diff view on Meta::CPAN
--- im-140/IM/TcpTransaction.pm.orig Mon Mar 6 19:39:35 2000
+++ im-140/IM/TcpTransaction.pm Wed Mar 8 22:16:24 2000
@@ -15,6 +15,9 @@
require Exporter;
use IM::Config qw(dns_timeout connect_timeout command_timeout rcv_buf_siz);
use Socket;
+BEGIN {
+ eval 'use Socket6' unless (eval '&AF_INET6'); # IPv6 patched Perl
+}
use IM::Util;
use IM::Ssh;
use integer;
@@ -120,8 +123,8 @@
$remoteport = $serv;
$Cur_server = $s;
}
- $0 = progname() . ": im_getaddrinfo($s)";
- @he_infos = im_getaddrinfo($s, $remoteport, AF_UNSPEC, SOCK_STREAM);
+ $0 = progname() . ": getaddrinfo($s)";
+ @he_infos = getaddrinfo($s, $remoteport, AF_UNSPEC, SOCK_STREAM);
if ($#he_infos < 1) {
im_warn("address unknown for $s\n");
@Response = ("address unknown for $s");
@@ -147,7 +150,7 @@
if ($family == AF_INET) {
$port = (unpack_sockaddr_in($sin))[0];
} else {
- $port = (inet6_unpack_sockaddr_in6($sin))[0];
+ $port = (unpack_sockaddr_in6($sin))[0];
}
*SOCK = \*{$name};
$SOCK = $port;
@@ -364,7 +367,9 @@
my $count = shift;
pool_priv_sock_af($count, AF_INET);
- pool_priv_sock_af($count, inet6_family()) if (eval '&AF_INET6');
+ if (eval 'pack_sockaddr_in6(110, pack("N4", 0, 0, 0, 0))') {
+ pool_priv_sock_af($count, AF_INET6);
+ }
}
sub pool_priv_sock_af ($$) {
@@ -391,7 +396,7 @@
$psin = pack_sockaddr_in($privport, $ANYADDR);
} else {
$ANYADDR = pack('N4', 0, 0, 0, 0);
- $psin = inet6_pack_sockaddr_in6($privport, $ANYADDR);
+ $psin = pack_sockaddr_in6($privport, $ANYADDR);
}
last if (bind (*{$TcpSockName}, $psin));
im_warn("privileged socket binding failed: $!.\n")
@@ -432,68 +437,6 @@
im_die("connection error\n");
}
-sub im_getaddrinfo ($$;$$$$) {
- return getaddrinfo(@_) if (defined &getaddrinfo);
-
- my ($node, $serv, $family, $socktype, $proto, $flags) = @_;
-
- my ($pe_name, $pe_aliases, $pe_proto, $se_port);
- if (unixp()) {
- $proto = 'tcp' unless ($proto);
- ($pe_name, $pe_aliases, $pe_proto) = getprotobyname($proto);
( run in 3.524 seconds using v1.01-cache-2.11-cpan-796a6f069b2 )