on VMS, set non-blocking with ioctl, not fcntl
Craig A. Berry [Sat, 2 Aug 2003 10:25:44 +0000 (05:25 -0500)]
From: "Craig A. Berry" <craigberry@mac.com>
Message-ID: <3F2BD7F8.8090003@mac.com>

p4raw-id: //depot/perl@20451

lib/Net/Ping.pm

index 001ff2e..4f44106 100644 (file)
@@ -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: $!");