develooper Front page | perl.vmsperl | Postings from May 2002

Re: [PATCH: perl@16826] small updates to DCL portions of perl kit

From:
PPrymmer
Date:
May 30, 2002 10:58
Subject:
Re: [PATCH: perl@16826] small updates to DCL portions of perl kit
Message ID:
OF5D13E5C1.A33F30A2-ON85256BC9.0061EF06@55.25.11

Craig Berry wrote:

!Good show, Peter, though I think that should read "third party TCP/IP
!stack" rather than vendor....  If we want to be more
!generous-sounding, we could say it's an incompatibility between the
!vendor-supplied socket library and the third party IP stack.

Hunter Goatley has acknowledged the bug and says that an ECO
is currently being worked on at Process.

How about the following change to README.vms?  I've managed to avoid
the terms "vendor" and "third party", and even supply some
temporary workaround suggestions. (BTW all tests pass with the
pp_sys.c hack using the perl@16826 kit, but this diff was taken
against the README.vms as shipped with perl@16893):

--- README.vms;1  Tue May 21 23:21:00 2002
+++ README.vms    Thu May 30 13:46:27 2002
@@ -560,6 +560,58 @@
     http://www.progis.de/
     http://www.lp.se/products/gnu.html

+=head2 Multinet issues with Perl on VMS
+
+Prior to the release of Perl 5.8.0 it was noted that the regression
+test for lib/Net/hostent (in file [.lib.Net]hostent.t) will fail owing
+to problems with the hostent structure returned by C calls to either
+gethostbyname() or gethostbyaddr() using DEC or Compaq C with a
+Multinet TCP/IP stack.  The problem was noted in Multinet 4.3A
+using either Compaq C 6.5 or DEC C 6.0, and with Multinet 4.2A
+using DEC C 5.2, but could easily affect other versions of Multinet.
+A representative of Process Software Inc. has acknowledged a
+bug in the Multinet version of UCX$IPC_SHR for which there is
+an ECO forthcoming.  If you see one or more tests in lib/Net/hostent
+fail we recommend that you apply the Multinet ECO when it becomes
+available from:
+
+    http://www.multinet.process.com/eco.html
+
+You may determine the version of Multinet that you are running using
+the command:
+
+    multinet show /version
+
+from the DCL command prompt.
+
+If you cannot wait for the ECO from Process you might try using
+Perl programming constructs such as:
+
+    $address = substr($gethostbyname_addr,0,4);
+
+to temporarily work around the problem, or if you are brave
+and do not might the possibility of breaking IPv6 addresses,
+you might modify the pp_sys.c file to add an ad-hoc correction
+like so:
+
+
+    --- pp_sys.c;1        Thu May 30 14:42:17 2002
+    +++ pp_sys.c        Thu May 30 12:54:02 2002
+    @@ -4684,6 +4684,10 @@
+             }
+     #endif
+
+    +    if (hent) {
+    +        hent->h_length = 4;
+    +    }
+    +
+         if (GIMME != G_ARRAY) {
+             PUSHs(sv = sv_newmortal());
+             if (hent) {
+
+then re-compile and re-test your perl.  After the installation
+of the Multinet ECO you ought to back out any such changes though.
+
 =head1 Mailing Lists

 There are several mailing lists available to the Perl porter.  For VMS
End of Patch.

Peter Prymmer







nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About