[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:21986] error Socket::unpack_sockaddr_in when use Net::Ping



こんにちは。
杉浦と申します。

woody で perl script を組んでいるのですが、Net::Ping モジュールで
引っかかって抜け出せそうにありません……

-----------------------------
#!/usr/bin/perl -w

use Net::Ping;

print "start!\n";

my $p = new Net::Ping;
print "host is alive.\n" if $p->ping('127.0.0.1');
$p->close();

print "system error; $!\n";
-----------------------------

このコードを実行すると、

-----------------------------
start!
Use of uninitialized value at /usr/lib/perl5/5.005/i386-linux/Socket.pm line 295.
Bad arg length for Socket::unpack_sockaddr_in, length is 0, should be 16
 at /usr/lib/perl5/5.005/i386-linux/Socket.pm line 295.
-----------------------------

といったエラーが帰ってきてしまいます。
# ちなみに ping が失敗するホストに向かって実行した時には正常に終了します。

デバッガを動かすと
-----------------------------
Bad arg length for Socket::unpack_sockaddr_in, length is 0, should be 16 at /usr/lib/perl5/5.005/i386-linux/Socket.pm line 295.
        Socket::sockaddr_in(undef) called at /usr/lib/perl5/5.005/Net/Ping.pm line 374
        Net::Ping::ping_udp('Net::Ping=HASH(0x82b77a8)', '^?^@^@^A', 5) called at /usr/lib/perl5/5.005/Net/Ping.pm line 154
        Net::Ping::ping('Net::Ping=HASH(0x82b77a8)', 127.0.0.1) called at test.pl line 8
-----------------------------
こんな感じです。

自分の触れる4台ほどの woody マシンで実験してみましたが、何処も同じエラーが出ます。
しかし、Solaris だと問題なく通ります。

Solaris と Debian の Socket.pm, Ping.pm で diff をとってみましたが、
完全に一致していました。


もうお手上げです。
誰か誰か解決法をご存知の方いらっしゃいませんか。


-- 
Tatsuki Sugiura   mailto:sugi@xxxxxxxxxxxxxxxxxxxxxxxxxxx