cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Modification of curl_multi_fdset()

From: Jamie Lokier <jamie_at_shareable.org>
Date: Mon, 9 Jun 2008 14:49:09 +0100

Alexey Simak wrote:
> > > 1) curl_multi_fdset does not fill exc_fd_set.
> > Uhm, why would it need to do that?
>
> We call curl_multi_fd_set() to fill fd_sets and then pass them to select().
> We need to track errors on sockets so we have to pass the exceptfds
> argument to select also.

Fwiw, exceptfds are not used for errors, with the possible exception
of asynchronous connect failures on particular platforms (Windows, SCO
Openserver, SCO Unixware), and very old versions of Linux.

When there's a socket error, read() and write() both return the
pending error code, and readfds/writefds should both be set.

exceptfds is used for urgent data on TCP sockets, or more generally,
high-priority or OOB conditions.

-- Jamie
Received on 2008-06-09