[Top][All Lists]

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

cvs-1_11_18 VMS client build select() function problem

From: Piet Schuermans
Subject: cvs-1_11_18 VMS client build select() function problem
Date: Tue, 8 Feb 2005 00:03:33 +0100

Follow-up on Issue 1:
See "Complete build session of CVS-1_11_18 VMS client" of January 30, 2005

The CVS-1_11_18 VMS client build had two remaining issues
-1- the changes in the [.src]client.c to get things working and avoid the error with the select statement -2- the renaming problem Entries.Backup to Entries.; when checking out a large module.

This e-mail addresses only the first issue.
In January I comment out the select statement, as a temporary workaround in [.SRC]Client.c routines handle_e and handle_m. Which enables us to use the CVS-1_11_18 build client on our VMS systems

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.

Piet Schuermans.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]