svn commit: r343519 - in stable/12: include lib/libc/net

Pedro F. Giffuni pfg at FreeBSD.org
Mon Jan 28 02:26:07 UTC 2019


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 */


More information about the svn-src-all mailing list