gai_strerror() - Update string error messages according to RFC 3493.
Error messages in gai_strerror(3) vary largely among OSs. For new software we largely replaced the obsoleted EAI_NONAME and with EAI_NODATA but we never updated the corresponding message to better match the intended use. We also have references to ai_flags and ai_family which are not very descriptive for non-developer end users. Bring new new error messages based on informational RFC 3493, which has obsoleted RFC 2553, and make them consistent among the header adn manpage. MFC after: 1 month Differentical Revision: D18630
This commit is contained in:
parent
2686f69ed4
commit
09ed804717
@ -159,24 +159,24 @@ struct addrinfo {
|
||||
#define NO_ADDRESS NO_DATA /* no address, look for MX record */
|
||||
|
||||
/*
|
||||
* Error return codes from getaddrinfo()
|
||||
* Error return codes from gai_strerror(3), see RFC 3493.
|
||||
*/
|
||||
#if 0
|
||||
/* obsoleted */
|
||||
/* Obsoleted on RFC 2553bis-02 */
|
||||
#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */
|
||||
#endif
|
||||
#define EAI_AGAIN 2 /* temporary failure in name resolution */
|
||||
#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
|
||||
#define EAI_AGAIN 2 /* name could not be resolved at this time */
|
||||
#define EAI_BADFLAGS 3 /* flags parameter had an invalid value */
|
||||
#define EAI_FAIL 4 /* non-recoverable failure in name resolution */
|
||||
#define EAI_FAMILY 5 /* ai_family not supported */
|
||||
#define EAI_FAMILY 5 /* address family was recognized */
|
||||
#define EAI_MEMORY 6 /* memory allocation failure */
|
||||
#if 0
|
||||
/* obsoleted */
|
||||
/* Obsoleted on RFC 2553bis-02 */
|
||||
#define EAI_NODATA 7 /* no address associated with hostname */
|
||||
#endif
|
||||
#define EAI_NONAME 8 /* hostname nor servname provided, or not known */
|
||||
#define EAI_SERVICE 9 /* servname not supported for ai_socktype */
|
||||
#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
|
||||
#define EAI_NONAME 8 /* name does not resolve */
|
||||
#define EAI_SERVICE 9 /* service not recognized for socket type */
|
||||
#define EAI_SOCKTYPE 10 /* intended socket type was not recognized */
|
||||
#define EAI_SYSTEM 11 /* system error returned in errno */
|
||||
#define EAI_BADHINTS 12 /* invalid value for hints */
|
||||
#define EAI_PROTOCOL 13 /* resolved protocol is unknown */
|
||||
|
@ -18,7 +18,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 21, 2006
|
||||
.Dd December 23, 2018
|
||||
.Dt GAI_STRERROR 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -44,38 +44,30 @@ The following error codes and their meaning are defined in
|
||||
.Pp
|
||||
.Bl -tag -width ".Dv EAI_BADFLAGS" -offset indent -compact
|
||||
.It Dv EAI_AGAIN
|
||||
temporary failure in name resolution
|
||||
Name could not be resolved at this time
|
||||
.It Dv EAI_BADFLAGS
|
||||
invalid value for
|
||||
.Fa ai_flags
|
||||
flags parameter had an invalid value
|
||||
.It Dv EAI_BADHINTS
|
||||
invalid value for
|
||||
.Fa hints
|
||||
.It Dv EAI_FAIL
|
||||
non-recoverable failure in name resolution
|
||||
Non-recoverable failure in name resolution
|
||||
.It Dv EAI_FAMILY
|
||||
.Fa ai_family
|
||||
not supported
|
||||
Address family was not recognized
|
||||
.It Dv EAI_MEMORY
|
||||
memory allocation failure
|
||||
Memory allocation failure
|
||||
.It Dv EAI_NONAME
|
||||
.Fa hostname
|
||||
or
|
||||
.Fa servname
|
||||
not provided, or not known
|
||||
Name does not resolve
|
||||
.It Dv EAI_OVERFLOW
|
||||
argument buffer overflow
|
||||
.It Dv EAI_PROTOCOL
|
||||
resolved protocol is unknown
|
||||
Resolved protocol is unknown
|
||||
.It Dv EAI_SERVICE
|
||||
.Fa servname
|
||||
not supported for
|
||||
.Fa ai_socktype
|
||||
Service was not recognized for socket type
|
||||
.It Dv EAI_SOCKTYPE
|
||||
.Fa ai_socktype
|
||||
not supported
|
||||
Intended socket type was not recognized
|
||||
.It Dv EAI_SYSTEM
|
||||
system error returned in
|
||||
System error returned in
|
||||
.Va errno
|
||||
.El
|
||||
.Sh RETURN VALUES
|
||||
@ -90,3 +82,8 @@ is out of range, an implementation-specific error message string is returned.
|
||||
.Sh SEE ALSO
|
||||
.Xr getaddrinfo 3 ,
|
||||
.Xr getnameinfo 3
|
||||
.Sh STANDARDS
|
||||
.Bl -tag -width ".It RFC 2743"
|
||||
.It RFC 3493
|
||||
Basic Socket Interface Extensions for IPv6
|
||||
.El
|
||||
|
@ -45,19 +45,19 @@ __FBSDID("$FreeBSD$");
|
||||
#include "un-namespace.h"
|
||||
|
||||
/* Entries EAI_ADDRFAMILY (1) and EAI_NODATA (7) are obsoleted, but left */
|
||||
/* for backward compatibility with userland code prior to 2553bis-02 */
|
||||
/* for backwards compatibility with userland code prior to RFC2553bis-02 */
|
||||
static const char *ai_errlist[] = {
|
||||
"Success", /* 0 */
|
||||
"Address family for hostname not supported", /* 1 */
|
||||
"Temporary failure in name resolution", /* EAI_AGAIN */
|
||||
"Invalid value for ai_flags", /* EAI_BADFLAGS */
|
||||
"Address family for hostname not supported", /* 1: Obsolete */
|
||||
"Name could not be resolved at this time", /* EAI_AGAIN */
|
||||
"Flags parameter had an invalid value", /* EAI_BADFLAGS */
|
||||
"Non-recoverable failure in name resolution", /* EAI_FAIL */
|
||||
"ai_family not supported", /* EAI_FAMILY */
|
||||
"Address family not recognized", /* EAI_FAMILY */
|
||||
"Memory allocation failure", /* EAI_MEMORY */
|
||||
"No address associated with hostname", /* 7 */
|
||||
"hostname nor servname provided, or not known", /* EAI_NONAME */
|
||||
"servname not supported for ai_socktype", /* EAI_SERVICE */
|
||||
"ai_socktype not supported", /* EAI_SOCKTYPE */
|
||||
"No address associated with hostname", /* 7: Obsolete*/
|
||||
"Name does not resolve", /* EAI_NONAME */
|
||||
"Service was not recognized for socket type", /* EAI_SERVICE */
|
||||
"Intended socket type was not recognized", /* EAI_SOCKTYPE */
|
||||
"System error returned in errno", /* EAI_SYSTEM */
|
||||
"Invalid value for hints", /* EAI_BADHINTS */
|
||||
"Resolved protocol is unknown", /* EAI_PROTOCOL */
|
||||
|
Loading…
Reference in New Issue
Block a user