comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man3/ares_fds.3 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 68:5028fdace37b
1 .\"
2 .\" Copyright 1998 by the Massachusetts Institute of Technology.
3 .\" SPDX-License-Identifier: MIT
4 .\"
5 .TH ARES_FDS 3 "23 July 1998"
6 .SH NAME
7 ares_fds \- return file descriptors to select on (deprecated)
8 .SH SYNOPSIS
9 .nf
10 #include <ares.h>
11
12 int ares_fds(const ares_channel_t *\fIchannel\fP,
13 fd_set *\fIread_fds\fP,
14 fd_set *\fIwrite_fds\fP)
15 .fi
16 .SH DESCRIPTION
17 See the \fBNOTES\fP section on issues with this function and alternatives.
18
19 The \fBares_fds(3)\fP function retrieves the set of file descriptors which the
20 calling application should \fBselect(2)\fP on for reading and writing for the
21 processing of name service queries pending on the name service channel
22 identified by \fIchannel\fP. Should not be used with \fBARES_OPT_EVENT_THREAD\fP
23 is passed to \fIares_init_options(3)\fP.
24
25 File descriptors will be set in the file descriptor sets pointed to by
26 \fIread_fds\fP and \fIwrite_fds\fP as appropriate. File descriptors already
27 set in \fIread_fds\fP and \fIwrite_fds\fP will remain set; initialization of
28 the file descriptor sets (using \fBFD_ZERO\fP) is the responsibility of the
29 caller.
30 .SH RETURN VALUES
31 \fBares_fds(3)\fP returns a value that is one greater than the number of the
32 highest socket set in either \fIread_fds\fP or \fIwrite_fds\fP. If no queries
33 are active, \fBares_fds(3)\fP returns 0.
34
35 .SH NOTES
36 The \fBselect(2)\fP call which takes the \fIfd_set\fP parameter has significant
37 limitations which can impact modern systems. The limitations can vary from
38 system to system, but in general if the file descriptor value itself is greater
39 than 1024 (not the count but the actual value), this can lead to
40 \fBares_fds(3)\fP writing out of bounds which will cause a system crash. In
41 modern networking clients, it is not unusual to have file descriptor values
42 above 1024, especially when a library is pulled in as a dependency into a larger
43 project.
44
45 c-ares does not attempt to detect this condition to prevent crashes due to both
46 implementation-defined behavior in the OS as well as integrator-controllable
47 tunables which may impact the limits.
48
49 It is recommended to use \fBARES_OPT_EVENT_THREAD\fP passed to
50 \fIares_init_options(3)\fP, or socket state callbacks
51 (\fBARES_OPT_SOCK_STATE_CB\fP) registered via \fIares_init_options(3)\fP and use
52 more modern methods to check for socket readable/writable state such as
53 \fIpoll(2)\fP, \fIepoll(2)\fP, or \fIkqueue(2)\fP.
54 .SH SEE ALSO
55 .BR ares_init_options (3),
56 .BR ares_timeout (3),
57 .BR ares_process (3)