- printf(", [%d]%s", i, ip6addr_string((u_char *)addr));
+ ND_PRINT((ndo, ", [%d]%s", i, ip6addr_string(ndo, addr)));
+ last_addr = addr;
+ addr++;
+ }
+ /*
+ * the destination address used in the pseudo-header is that of the final
+ * destination : the last address of the routing header
+ */
+ if (last_addr != NULL) {
+ struct ip6_hdr *ip6 = (struct ip6_hdr *)bp2;
+ UNALIGNED_MEMCPY(&ip6->ip6_dst, last_addr, sizeof (struct in6_addr));