svn commit: r342379 - in head: include lib/libc/net
Pedro F. Giffuni
pfg at FreeBSD.org
Sun Dec 23 18:15:50 UTC 2018
Author: pfg
Date: Sun Dec 23 18:15:48 2018
New Revision: 342379
URL: https://svnweb.freebsd.org/changeset/base/342379
Log:
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
Modified:
head/include/netdb.h
head/lib/libc/net/gai_strerror.3
head/lib/libc/net/gai_strerror.c
Modified: head/include/netdb.h
==============================================================================
--- head/include/netdb.h Sun Dec 23 09:48:36 2018 (r342378)
+++ head/include/netdb.h Sun Dec 23 18:15:48 2018 (r342379)
@@ -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 */
Modified: head/lib/libc/net/gai_strerror.3
==============================================================================
--- head/lib/libc/net/gai_strerror.3 Sun Dec 23 09:48:36 2018 (r342378)
+++ head/lib/libc/net/gai_strerror.3 Sun Dec 23 18:15:48 2018 (r342379)
@@ -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: head/lib/libc/net/gai_strerror.c
==============================================================================
--- head/lib/libc/net/gai_strerror.c Sun Dec 23 09:48:36 2018 (r342378)
+++ head/lib/libc/net/gai_strerror.c Sun Dec 23 18:15:48 2018 (r342379)
@@ -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 */
More information about the svn-src-all
mailing list