Blob Blame History Raw
diff -aurp open-iscsi-2.0-868-test1/usr/isns.c open-iscsi-2.0-868-test1.work/usr/isns.c
--- open-iscsi-2.0-868-test1/usr/isns.c	2008-03-03 09:36:11.000000000 -0600
+++ open-iscsi-2.0-868-test1.work/usr/isns.c	2008-03-03 09:38:03.000000000 -0600
@@ -286,7 +286,10 @@ static void add_new_target_node(char *ta
 	char dst[INET6_ADDRSTRLEN];
 
 	memset(dst, 0, sizeof(dst));
-	if (!memcmp(ip, dst, 10) && ip[10] == 0xff && ip[11] == 0xff)
+	/*
+	 * some servers are sending compat instead of mapped
+	 */
+	if (IN6_IS_ADDR_V4MAPPED(ip) || IN6_IS_ADDR_V4COMPAT(ip))
 		inet_ntop(AF_INET, ip + 12, dst, sizeof(dst));
 	else
 		inet_ntop(AF_INET6, ip, dst, sizeof(dst));