freebsd-dev/sys/netinet6
Andrey V. Elsukov e2956804dd Fix the IPV6_MULTICAST_IF sockopt handling. RFC 3493 says when the
interface index is specified as zero, the system should select the
interface to use for outgoing multicast packets. Even the comment
for the in6p_set_multicast_if() function says about index of zero.
But in fact for zero index the function just returns EADDRNOTAVAIL.

I.e. if you first set some interface and then will try reset it
with zero ifindex, you will get EADDRNOTAVAIL.

Reset im6o_multicast_ifp to NULL when interface index specified as
zero. Also return EINVAL in case when ifnet_byindex() returns NULL.
This will be the same behaviour as when ifindex is bigger than
V_if_index. And return EADDRNOTAVAIL only when interface is not
multicast capable.

Reported by:	Olivier Cochard-Labbé
MFC after:	2 weeks
Sponsored by:	Yandex LLC
2015-04-10 19:09:51 +00:00
..
dest6.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
frag6.c Move ip6_deletefraghdr() to frag6.c. 2015-02-16 05:58:32 +00:00
icmp6.c Remove unneded check. No need to do m_pullup to the size that we prepended. 2014-12-02 05:41:03 +00:00
icmp6.h
in6_cksum.c Fix the checksum computation for UDPLite/IPv6. This requires the 2014-10-02 10:32:24 +00:00
in6_gif.c Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
in6_ifattach.c Consistently use if_link. 2014-11-10 15:56:30 +00:00
in6_ifattach.h Use FF02:0:0:0:0:2:FF00::/104 prefix for IPv6 Node Information Group 2013-05-04 19:16:26 +00:00
in6_mcast.c Fix the IPV6_MULTICAST_IF sockopt handling. RFC 3493 says when the 2015-04-10 19:09:51 +00:00
in6_pcb.c tcp6_ctlinput() doesn't pass MTU value to in6_pcbnotify(). 2015-03-06 05:50:39 +00:00
in6_pcb.h Make in6_pcblookup_hash_locked and in6_pcbladdr static. 2014-09-10 13:17:35 +00:00
in6_pcbgroup.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
in6_proto.c Renove faith(4) and faithd(8) from base. It looks like industry 2014-11-09 21:33:01 +00:00
in6_rmx.c Kill custom in_matroute() radix mathing function removing one rte mutex lock. 2014-11-11 02:52:40 +00:00
in6_rss.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
in6_rss.h Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
in6_src.c For now handle only multicast addresses, we still use routes to 2014-11-10 10:59:08 +00:00
in6_var.h Move ip6_sprintf() declaration from in6_var.h to in6.h. This is a simple 2015-03-24 16:45:50 +00:00
in6.c - Implement loopback probing state in enhanced DAD algorithm. 2015-03-05 21:27:49 +00:00
in6.h Move ip6_sprintf() declaration from in6_var.h to in6.h. This is a simple 2015-03-24 16:45:50 +00:00
ip6_ecn.h
ip6_forward.c Evaluate packet size after the firewall had its chance 2015-04-07 20:29:03 +00:00
ip6_gre.c Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
ip6_id.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
ip6_input.c Fix deadlock in IPv6 PCB code. 2015-03-04 11:20:01 +00:00
ip6_ipsec.c Use ipsec6_in_reject() to simplify ip6_ipsec_fwd() and ip6_ipsec_input(). 2014-12-11 19:09:57 +00:00
ip6_ipsec.h Remove flag/flags argument from the following functions: 2014-12-11 18:35:34 +00:00
ip6_mroute.c o Make net.inet6.ip6.mif6table return special API structure, that doesn't 2015-04-06 22:12:18 +00:00
ip6_mroute.h o Make net.inet6.ip6.mif6table return special API structure, that doesn't 2015-04-06 22:12:18 +00:00
ip6_output.c Preserve IPv6 fragment IDs accross reassembly and refragmentation 2015-04-01 12:15:01 +00:00
ip6_var.h Preserve IPv6 fragment IDs accross reassembly and refragmentation 2015-04-01 12:15:01 +00:00
ip6.h
ip6protosw.h Merge 'struct ip6protosw' and 'struct protosw' into one. Now we have 2014-08-08 01:57:15 +00:00
mld6_var.h - Rename 'struct mld_ifinfo' into 'struct mld_ifsoftc', since it really 2015-02-19 22:37:01 +00:00
mld6.c - Rename 'struct mld_ifinfo' into 'struct mld_ifsoftc', since it really 2015-02-19 22:37:01 +00:00
mld6.h
nd6_nbr.c Fix the check for maximum mbuf's size needed to send ND6 NA and NS. 2015-04-09 12:57:58 +00:00
nd6_rtr.c Mitigate Local Denial of Service with IPv6 Router Advertisements 2015-04-07 20:20:09 +00:00
nd6.c Implement Enhanced DAD algorithm for IPv6 described in 2015-03-02 17:30:26 +00:00
nd6.h - Implement loopback probing state in enhanced DAD algorithm. 2015-03-05 21:27:49 +00:00
pim6_var.h Remove more constants related to static sysctl nodes. The MAXID constants 2014-02-25 18:44:33 +00:00
pim6.h
raw_ip6.c Do not count security policy violation twice. 2014-12-11 19:20:13 +00:00
raw_ip6.h Migrate structs ip6stat, icmp6stat and rip6stat to PCPU counters. 2013-07-09 09:54:54 +00:00
route6.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
scope6_var.h Add sa6_checkzone_ifp() function. It checks correctness of struct 2014-11-10 16:12:51 +00:00
scope6.c Add sa6_checkzone_ifp() function. It checks correctness of struct 2014-11-10 16:12:51 +00:00
sctp6_usrreq.c Minimize the usage of SCTP_BUF_IS_EXTENDED. 2015-01-10 20:49:57 +00:00
sctp6_var.h Add support for SCTP/UDP/IPV6. 2012-11-17 20:04:04 +00:00
send.c Free mbuf in case of error. 2013-12-17 10:53:17 +00:00
send.h
tcp6_var.h Remove __P. 2012-10-22 21:49:56 +00:00
udp6_usrreq.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
udp6_var.h Add support for UDP-Lite protocol (RFC 3828) to IPv4 and IPv6 stacks. 2014-04-07 01:53:03 +00:00