if (nonblock)
return fd;
#ifndef WIN32
if (fd >= FD_SETSIZE)
{
close (fd);
errno = EMFILE;
}
#endif
/* Waits until connection is established */
fd_set s;
FD_ZERO (&s);
FD_SET (fd, &s);
int err = 0;
socklen_t len = sizeof (err);
if (select (fd + 1, NULL, &s, NULL, NULL) != 1)
SetError ();
continue;
if (getsockopt (fd, SOL_SOCKET, SO_ERROR, &err, &len))
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h> // shutdown(), send(), recv()
#include <errno.h>
#include "log.h"
long totalcount = 0;
bridge b[2];
if ((fds[0] >= FD_SETSIZE) || (fds[1] >= FD_SETSIZE))
errno = EINVAL;
return -1;
b[0].outfd = b[1].infd = fds[0];
b[0].infd = b[1].outfd = fds[1];
b[0].buflen = b[1].buflen = 0;