[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OpenVMS and CVS-1_11_21 client
From: |
Mark D. Baushke |
Subject: |
Re: OpenVMS and CVS-1_11_21 client |
Date: |
Thu, 17 Nov 2005 08:39:18 -0800 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Piet,
Piet Schuermans <pschuermans@mac.com> writes:
> It works fine. Just rebuild and tested.
The change has been committed to the repository in both the stable and
feature branches.
> I had some problem with [.src]client.c
> Based on your last e-mail I restored client.c to it's original state,
> meaning I removed my error handling in
> both handle_m and handle_e. Result check-out CVS test failed.
> Error: "cvs: cannot write to stderr: socket operation on non-socket"
> So I restored the error handling in both routines and CVS Client
> tests returned no errors.
>
> [ [part of e-mail addressing select(..) problem in handle_m and
> handle_e]
> The problem is not the client.c code but an VMS issue with file
> descriptors stderr and stdout that are not associated with a socket.
> (VMS Release notes => The select() function has been corrected to
> return failure status if either invalid file descriptor or file
> descriptor not associated with a socket is found in one of the
> specified file descriptor sets. In case of invalid file descriptor,
> the select() function sets errno to EBADF. In case of a file
> descriptor not associated with a socket, the function sets errno to
> ENOTSOCK.
> Failure with errno set to EBADF is the standard requirement for the
> select() function. Failure with errno set to ENOTSOCK is because
> currently the select() function can operate only on sockets.
> So if I check in both routines not only the returning value of select
> (...) but also the errno. And handle the case when errno == ENOTSOCK.
> it would work again with the "original" cvs source files. So instead
> of simple comment out the select() function I replacing it with a vms
> specific wrap function VMS_Select( ) in which I handle the set errno
> values.
> ] ]
Hmmm... so, are you now doing some [.vms]config.h magic to cause the
select() calls in client.c to use your VMS_Select() and do the right
thing? If you have a clean set of patches against the cvs1-11-x-branch
and/or the main trunk, it might be wise to send them to bug-cvs or
attach them to a patch on savannah.nongnu.org so that they are not lost.
It would be desirable to use 'cvs diff -u' for the patches if possible
rather than using the VMS diff command if you could.
btw: Derek is the one who has been working on the problems associated
with select() and a non-blocking/blocking I/O problem with OpenSSH as
transport... I have not looked closely at that code recently.
Thanks,
-- Mark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)
iD8DBQFDfLI2Cg7APGsDnFERAoEZAJ9OPT68HqzS4sMZIYn3TjDWWIoOMQCdGzw4
zXihMIfqUVEIUoV8t0BsPW8=
=GWrp
-----END PGP SIGNATURE-----