Rselect()

Check for descriptors that are ready for reading or writing (via a SOCKS server)

Synopsis:

#include <sys/select.h>

int Rselect( int width, 
             fd_set * readfds, 
             fd_set * writefds,
             fd_set * exceptionfds,
             struct timeval * timeout );

Arguments:

width
The number of descriptors to check in the given sets. Only the descriptors from 0 through (width-1) in the descriptor sets are examined. Therefore, the value of width must be at least as large as:

(highest valued file descriptor in the sets) +1

readfds
NULL, or a pointer to a fd_set object that specifies the descriptors to check for files that are ready for reading. The function replaces the set with the file descriptors that are actually ready for reading.
writefds
NULL, or a pointer to a fd_set object that specifies the descriptors to check for files that are ready for writing. The function replaces the set with the file descriptors that are actually ready for writing.
exceptionfds
NULL, or a pointer to a fd_set object that specifies the descriptors to check for files that have an exceptional condition pending. The function replaces the set with the file descriptors that actually have an exceptional condition pending.
timeout
NULL, or a pointer to a timeval that specifies how long to wait for the selection to complete.

Library:

libsocks

Use the -l socks option to qcc to link against this library.

Description:

The Rselect() function is a cover function for select(); the difference is that Rselect() does its job via a SOCKS server.

For more information about SOCKS and its libraries, see the appendix, SOCKS—A Basic Firewall.

Returns:

The number of ready descriptors in the descriptor sets, 0 if the timeout expired, or -1 if an error occurs (errno is set).

Classification:

SOCKS

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread No