Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/raw_ip6.c
| Show First 20 Lines • Show All 570 Lines • ▼ Show 20 Lines | rip6_ctloutput(struct socket *so, struct sockopt *sopt) | ||||
| if (sopt->sopt_level == IPPROTO_ICMPV6) | if (sopt->sopt_level == IPPROTO_ICMPV6) | ||||
| /* | /* | ||||
| * XXX: is it better to call icmp6_ctloutput() directly | * XXX: is it better to call icmp6_ctloutput() directly | ||||
| * from protosw? | * from protosw? | ||||
| */ | */ | ||||
| return (icmp6_ctloutput(so, sopt)); | return (icmp6_ctloutput(so, sopt)); | ||||
| else if (sopt->sopt_level != IPPROTO_IPV6) { | else if (sopt->sopt_level != IPPROTO_IPV6) { | ||||
| if (sopt->sopt_level == SOL_SOCKET && | if (sopt->sopt_dir == SOPT_SET && | ||||
| sopt->sopt_name == SO_SETFIB) { | sopt->sopt_level == SOL_SOCKET && | ||||
| INP_WLOCK(inp); | sopt->sopt_name == SO_SETFIB) | ||||
| inp->inp_inc.inc_fibnum = so->so_fibnum; | return (ip6_ctloutput(so, sopt)); | ||||
| INP_WUNLOCK(inp); | |||||
| return (0); | |||||
| } | |||||
| return (EINVAL); | return (EINVAL); | ||||
| } | } | ||||
| error = 0; | error = 0; | ||||
| switch (sopt->sopt_dir) { | switch (sopt->sopt_dir) { | ||||
| case SOPT_GET: | case SOPT_GET: | ||||
| switch (sopt->sopt_name) { | switch (sopt->sopt_name) { | ||||
| ▲ Show 20 Lines • Show All 272 Lines • Show Last 20 Lines | |||||