comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man3/ares_gethostbyname.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_GETHOSTBYNAME 3 "25 July 1998"
6 .SH NAME
7 ares_gethostbyname \- Initiate a host query by name
8 .SH SYNOPSIS
9 .nf
10 #include <ares.h>
11
12 typedef void (*ares_host_callback)(void *\fIarg\fP, int \fIstatus\fP,
13 int \fItimeouts\fP,
14 struct hostent *\fIhostent\fP)
15
16 void ares_gethostbyname(ares_channel_t *\fIchannel\fP, const char *\fIname\fP,
17 int \fIfamily\fP, ares_host_callback \fIcallback\fP,
18 void *\fIarg\fP)
19 .fi
20 .SH DESCRIPTION
21 The
22 .B ares_gethostbyname
23 function initiates a host query by name on the name service channel
24 identified by
25 .IR channel .
26 The parameter
27 .I name
28 gives the hostname as a NUL-terminated C string, and
29 .I family
30 gives the desired type of address for the resulting host entry. When the
31 query is complete or has failed, the ares library will invoke \fIcallback\fP.
32 Completion or failure of the query may happen immediately, or may happen
33 during a later call to \fIares_process(3)\fP, \fIares_destroy(3)\fP or
34 \fIares_cancel(3)\fP.
35 .PP
36 The callback argument
37 .I arg
38 is copied from the
39 .B ares_gethostbyname
40 argument
41 .IR arg .
42 The callback argument
43 .I status
44 indicates whether the query succeeded and, if not, how it failed. It
45 may have any of the following values:
46 .TP 19
47 .B ARES_SUCCESS
48 The host lookup completed successfully.
49 .TP 19
50 .B ARES_ENOTIMP
51 The ares library does not know how to find addresses of type
52 .IR family .
53 .TP 19
54 .B ARES_EBADNAME
55 The hostname
56 .B name
57 is composed entirely of numbers and periods, but is not a valid
58 representation of an Internet address.
59 .TP 19
60 .B ARES_ENODATA
61 There was no data returned to extract a result from.
62 .TP 19
63 .B ARES_ENOTFOUND
64 The name
65 .I name
66 was not found.
67 .TP 19
68 .B ARES_ENOMEM
69 Memory was exhausted.
70 .TP 19
71 .B ARES_ECANCELLED
72 The query was cancelled.
73 .TP 19
74 .B ARES_EDESTRUCTION
75 The name service channel
76 .I channel
77 is being destroyed; the query will not be completed.
78 .PP
79 The callback argument
80 .I timeouts
81 reports how many times a query timed out during the execution of the
82 given request.
83 .PP
84 On successful completion of the query, the callback argument
85 .I hostent
86 points to a
87 .B struct hostent
88 containing the name of the host returned by the query. The callback
89 need not and should not attempt to free the memory pointed to by
90 .IR hostent ;
91 the ares library will free it when the callback returns. If the query
92 did not complete successfully,
93 .I hostent
94 will be
95 .BR NULL .
96 .PP
97 When the associated callback is called, it is called with a channel lock so care
98 must be taken to ensure any processing is minimal to prevent DNS channel stalls.
99
100 The callback may be triggered from a different thread than the one which
101 called \fIares_gethostbyname(3)\fP.
102
103 For integrators running their own event loops and not using \fBARES_OPT_EVENT_THREAD\fP,
104 care needs to be taken to ensure any file descriptor lists are updated immediately
105 within the eventloop when notified.
106 .SH SEE ALSO
107 .BR ares_process (3),
108 .BR ares_gethostbyaddr (3)