Blame SOURCES/sysvinit-2.88-ipv6.patch

4fa2d8
diff --git a/src/last.c b/src/last.c
4fa2d8
index 5003c7c..02103e0 100644
4fa2d8
--- a/src/last.c
4fa2d8
+++ b/src/last.c
4fa2d8
@@ -318,30 +318,22 @@ int dns_lookup(char *result, int size, int useip, int32_t *a)
4fa2d8
 	struct sockaddr_in6	sin6;
4fa2d8
 	struct sockaddr		*sa;
4fa2d8
 	int			salen, flags;
4fa2d8
-	unsigned int		topnibble;
4fa2d8
-	unsigned int		azero = 0, sitelocal = 0;
4fa2d8
 	int			mapped = 0;
4fa2d8
 
4fa2d8
 	flags = useip ? NI_NUMERICHOST : 0;
4fa2d8
 
4fa2d8
 	/*
4fa2d8
-	 *	IPv4 or IPv6 ? We use 2 heuristics:
4fa2d8
-	 *	1. Current IPv6 range uses 2000-3fff or fec0-feff.
4fa2d8
-	 *	   Outside of that is illegal and must be IPv4.
4fa2d8
-	 *	2. If last 3 bytes are 0, must be IPv4
4fa2d8
-	 *	3. If IPv6 in IPv4, handle as IPv4
4fa2d8
+	 *	IPv4 or IPv6 ?
4fa2d8
+	 *	1. If last 3 4bytes are 0, must be IPv4
4fa2d8
+	 *	2. If IPv6 in IPv4, handle as IPv4
4fa2d8
+	 *	3. Anything else is IPv6
4fa2d8
 	 *
4fa2d8
 	 *	Ugly.
4fa2d8
 	 */
4fa2d8
 	if (a[0] == 0 && a[1] == 0 && a[2] == (int32_t)htonl (0xffff))
4fa2d8
 		mapped = 1;
4fa2d8
-	topnibble = ntohl((unsigned int)a[0]) >> 28;
4fa2d8
 
4fa2d8
-	azero = ntohl((unsigned int)a[0]) >> 16;
4fa2d8
-	sitelocal = (azero >= 0xfec0 && azero <= 0xfeff) ? 1 : 0;
4fa2d8
-	
4fa2d8
-	if (((topnibble < 2 || topnibble > 3) && (!sitelocal)) || mapped ||
4fa2d8
-	    (a[1] == 0 && a[2] == 0 && a[3] == 0)) {
4fa2d8
+	if (mapped || (a[1] == 0 && a[2] == 0 && a[3] == 0)) {
4fa2d8
 		/* IPv4 */
4fa2d8
 		sin.sin_family = AF_INET;
4fa2d8
 		sin.sin_port = 0;