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));