Репозиторий Sisyphus
Последнее обновление: 10 июля 2020 | Пакетов: 17697 | Посещений: 18859713
en ru br
Репозитории ALT
S:2.73-alt1
5.1: 2.35-alt1
4.1: 2.33-alt1
4.0: 2.31-alt2
3.0: 2.31-alt2
www.altlinux.org/Changes

Группа :: Разработка/Perl
Пакет: perl-Net-Ping

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: perl-Net-Ping-2.31-bleadperl-24699.patch
Скачать


--- Net-Ping-2.31/lib/Net/Ping.pm	2003-06-28 01:31:07 +0400
+++ perl-5.9.3.24699/lib/Net/Ping.pm	2005-06-04 01:33:12 +0400
@@ -16,7 +16,7 @@ use Carp;
 
 @ISA = qw(Exporter);
 @EXPORT = qw(pingecho);
-$VERSION = "2.31";
+$VERSION = "2.31_02";
 
 sub SOL_IP { 0; };
 sub IP_TOS { 1; };
@@ -316,9 +316,9 @@ sub socket_blocking_mode
                         # set the non-blocking mode (set O_NONBLOCK)
 
   my $flags;
-  if ($^O eq 'MSWin32') {
-      # FIONBIO enables non-blocking sockets on windows.
-      # FIONBIO is (0x80000000|(4<<16)|(ord('f')<<8)|126), as per winsock.h.
+  if ($^O eq 'MSWin32' || $^O eq 'VMS') {
+      # FIONBIO enables non-blocking sockets on windows and vms.
+      # FIONBIO is (0x80000000|(4<<16)|(ord('f')<<8)|126), as per winsock.h, ioctl.h
       my $f = 0x8004667e;
       my $v = pack("L", $block ? 0 : 1);
       ioctl($fh, $f, $v) or croak("ioctl failed: $!");
@@ -395,12 +395,13 @@ sub ping_external {
   return Net::Ping::External::ping(ip => $ip, timeout => $timeout);
 }
 
-use constant ICMP_ECHOREPLY => 0; # ICMP packet types
-use constant ICMP_ECHO      => 8;
-use constant ICMP_STRUCT    => "C2 n3 A";  # Structure of a minimal ICMP packet
-use constant SUBCODE        => 0; # No ICMP subcode for ECHO and ECHOREPLY
-use constant ICMP_FLAGS     => 0; # No special flags for send or recv
-use constant ICMP_PORT      => 0; # No port with ICMP
+use constant ICMP_ECHOREPLY   => 0; # ICMP packet types
+use constant ICMP_UNREACHABLE => 3; # ICMP packet types
+use constant ICMP_ECHO        => 8;
+use constant ICMP_STRUCT      => "C2 n3 A"; # Structure of a minimal ICMP packet
+use constant SUBCODE          => 0; # No ICMP subcode for ECHO and ECHOREPLY
+use constant ICMP_FLAGS       => 0; # No special flags for send or recv
+use constant ICMP_PORT        => 0; # No port with ICMP
 
 sub ping_icmp
 {
@@ -478,10 +479,12 @@ sub ping_icmp
       $self->{"from_subcode"} = $from_subcode;
       if (($from_pid == $self->{"pid"}) && # Does the packet check out?
           ($from_seq == $self->{"seq"})) {
-        if ($from_type == ICMP_ECHOREPLY){
+        if ($from_type == ICMP_ECHOREPLY) {
           $ret = 1;
+	  $done = 1;
+        } elsif ($from_type == ICMP_UNREACHABLE) {
+          $done = 1;
         }
-        $done = 1;
       }
     } else {     # Oops, timed out
       $done = 1;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin