xref: /freebsd/lib/libc/net/gai_strerror.3 (revision 9768746ba83efa02837c5b9c66348db6e900208f)
1.\"	$KAME: gai_strerror.3,v 1.1 2005/01/05 03:04:47 itojun Exp $
2.\"	$OpenBSD: gai_strerror.3,v 1.4 2004/12/20 23:04:53 millert Exp $
3.\"
4.\" Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
5.\" Copyright (C) 2000, 2001  Internet Software Consortium.
6.\"
7.\" Permission to use, copy, modify, and distribute this software for any
8.\" purpose with or without fee is hereby granted, provided that the above
9.\" copyright notice and this permission notice appear in all copies.
10.\"
11.\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
12.\" REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13.\" AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
14.\" INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15.\" LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17.\" PERFORMANCE OF THIS SOFTWARE.
18.\"
19.\" $FreeBSD$
20.\"
21.Dd November 2, 2022
22.Dt GAI_STRERROR 3
23.Os
24.Sh NAME
25.Nm gai_strerror
26.Nd get error message string from EAI_xxx error code
27.Sh SYNOPSIS
28.In sys/types.h
29.In sys/socket.h
30.In netdb.h
31.Ft "const char *"
32.Fn gai_strerror "int ecode"
33.Sh DESCRIPTION
34The
35.Fn gai_strerror
36function returns an error message string corresponding to the error code
37returned by
38.Xr getaddrinfo 3
39or
40.Xr getnameinfo 3 .
41.Pp
42The following error codes and their meaning are defined in
43.In netdb.h :
44.Pp
45.Bl -tag -width ".Dv EAI_ADDRFAMILY" -offset indent -compact
46.It Dv EAI_ADDRFAMILY
47Address family for hostname not supported
48.It Dv EAI_AGAIN
49Name could not be resolved at this time
50.It Dv EAI_BADFLAGS
51flags parameter had an invalid value
52.It Dv EAI_BADHINTS
53invalid value for
54.Fa hints
55.It Dv EAI_FAIL
56Non-recoverable failure in name resolution
57.It Dv EAI_FAMILY
58Address family was not recognized
59.It Dv EAI_MEMORY
60Memory allocation failure
61.It Dv EAI_NODATA
62No address associated with hostname
63.It Dv EAI_NONAME
64Name does not resolve
65.It Dv EAI_OVERFLOW
66argument buffer overflow
67.It Dv EAI_PROTOCOL
68Resolved protocol is unknown
69.It Dv EAI_SERVICE
70Service was not recognized for socket type
71.It Dv EAI_SOCKTYPE
72Intended socket type was not recognized
73.It Dv EAI_SYSTEM
74System error returned in
75.Va errno
76.El
77.Sh RETURN VALUES
78The
79.Fn gai_strerror
80function
81returns a pointer to the error message string corresponding to
82.Fa ecode .
83If
84.Fa ecode
85is out of range, an implementation-specific error message string is returned.
86.Sh SEE ALSO
87.Xr getaddrinfo 3 ,
88.Xr getnameinfo 3
89.Sh STANDARDS
90.Bl -tag -width ".It RFC 3493"
91.It RFC 3493
92Basic Socket Interface Extensions for IPv6
93.El
94.Pp
95EAI_ADDRFAMILY and EAI_NODATA were in previous RFCs, but not in RFC 3493.
96They are not in POSIX (IEEE Std 1003.1-2017).
97They were in
98.Fx
99before 5.2, and were re-added for 14.0.
100EAI_BADHINTS, EAI_OVERFLOW, and EAI_PROTOCOL are not in RFC 3493 or POSIX.
101