Date: Mon, 28 Jan 2019 02:26:05 +0000 (UTC) From: "Pedro F. Giffuni" <pfg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r343519 - in stable/12: include lib/libc/net Message-ID: <201901280226.x0S2Q5JA022230@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pfg Date: Mon Jan 28 02:26:05 2019 New Revision: 343519 URL: https://svnweb.freebsd.org/changeset/base/343519 Log: MFC r342379, r342383: 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 error messages based on informational RFC 3493, which has obsoleted RFC 2553, and make them consistent among the header and manpage. Modified: stable/12/include/netdb.h stable/12/lib/libc/net/gai_strerror.3 stable/12/lib/libc/net/gai_strerror.c Directory Properties: stable/12/ (props changed) Modified: stable/12/include/netdb.h ============================================================================== --- stable/12/include/netdb.h Mon Jan 28 02:15:41 2019 (r343518) +++ stable/12/include/netdb.h Mon Jan 28 02:26:05 2019 (r343519) @@ -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 not 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 */ Modified: stable/12/lib/libc/net/gai_strerror.3 ============================================================================== --- stable/12/lib/libc/net/gai_strerror.3 Mon Jan 28 02:15:41 2019 (r343518) +++ stable/12/lib/libc/net/gai_strerror.3 Mon Jan 28 02:26:05 2019 (r343519) @@ -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 define .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 mess .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 Modified: stable/12/lib/libc/net/gai_strerror.c ============================================================================== --- stable/12/lib/libc/net/gai_strerror.c Mon Jan 28 02:15:41 2019 (r343518) +++ stable/12/lib/libc/net/gai_strerror.c Mon Jan 28 02:26:05 2019 (r343519) @@ -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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901280226.x0S2Q5JA022230>