* freebsd4/sys/netinet6/in6_pcb.c (in6_setsockaddr): * freebsd4/sys/netinet6/in6_pcb.c (in6_setpeeraddr): corrected the behavior of these functions for scoped addresses (had been buggy for a very short period).
otherwise, these functios did not work correctly for scoped addresses.
* kame/kame/ping6/ping6.c (pr_pack): printed the arriving interface index explicitly with the -v option, instead of setting sin6_scope_id to the index automatically (the latter is not always correct). 2004-02-13 JINMEI, Tatuya <email@example.com> * kame/sys/netinet6/icmp6.c (icmp6_error2): introduced as a wrapper for icmp6_error() to recover lost scope zone information (if any). This also fixed a recent bug that an ICMPv6 error when ND failed cannot be returned for a scoped destination. 2004-02-13 JINMEI, Tatuya <firstname.lastname@example.org> * kame/sys/netinet6/icmp6.c (icmp6_reflect): fixed a very recent bug that source address selection did not check the correct address.
…rror() necessary when the erroneous packet may not contain enough scope zone information. this new function takes an ifp pointer to recover the lost information. - call error2() from nd6_llinfo_timer(). otherwise, we could not send an ICMPv6 error when ND fails for a scoped destination. (BTW: *BSDs have been containing this bug, which will have to be fixed eventually)
…ect. instead, print the ifid value explicitly.
…rror() and _reflect() ignore the value.
- the destination address of the returned packet was checked for source address selection, but it should actually be the detination of the original packet. - we don't need the special consideration for the M_LOOP and link-local case any more - recovered the consideration for the case of sending an error that occurs in an output path (it still doesn't work in some cases since icmp6_error() do not have enough information on the scope zone. this should be fixed separately)