Changeset View
Changeset View
Standalone View
Standalone View
netinet/raw_ip.c
Show First 20 Lines • Show All 679 Lines • ▼ Show 20 Lines | default: | ||||
error = ip_ctloutput(so, sopt); | error = ip_ctloutput(so, sopt); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case SOPT_SET: | case SOPT_SET: | ||||
switch (sopt->sopt_name) { | switch (sopt->sopt_name) { | ||||
case IP_HDRINCL: | case IP_HDRINCL: | ||||
error = priv_check(curthread, PRIV_NETINET_RAW); | |||||
if (error != 0) | |||||
return (error); | |||||
error = sooptcopyin(sopt, &optval, sizeof optval, | error = sooptcopyin(sopt, &optval, sizeof optval, | ||||
sizeof optval); | sizeof optval); | ||||
if (error) | if (error) | ||||
break; | break; | ||||
if (optval) | if (optval) | ||||
inp->inp_flags |= INP_HDRINCL; | inp->inp_flags |= INP_HDRINCL; | ||||
else | else | ||||
inp->inp_flags &= ~INP_HDRINCL; | inp->inp_flags &= ~INP_HDRINCL; | ||||
▲ Show 20 Lines • Show All 157 Lines • ▼ Show 20 Lines | |||||
rip_attach(struct socket *so, int proto, struct thread *td) | rip_attach(struct socket *so, int proto, struct thread *td) | ||||
{ | { | ||||
struct inpcb *inp; | struct inpcb *inp; | ||||
int error; | int error; | ||||
inp = sotoinpcb(so); | inp = sotoinpcb(so); | ||||
KASSERT(inp == NULL, ("rip_attach: inp != NULL")); | KASSERT(inp == NULL, ("rip_attach: inp != NULL")); | ||||
if (proto == IPPROTO_ICMP) | |||||
error = priv_check(td, PRIV_NETINET_ICMP_ACCESS) && | |||||
priv_check(td, PRIV_NETINET_RAW); | |||||
bz: Is this supposed to be a || ? | |||||
else | |||||
error = priv_check(td, PRIV_NETINET_RAW); | error = priv_check(td, PRIV_NETINET_RAW); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
if (proto >= IPPROTO_MAX || proto < 0) | if (proto >= IPPROTO_MAX || proto < 0) | ||||
return EPROTONOSUPPORT; | return EPROTONOSUPPORT; | ||||
error = soreserve(so, rip_sendspace, rip_recvspace); | error = soreserve(so, rip_sendspace, rip_recvspace); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
INP_INFO_WLOCK(&V_ripcbinfo); | INP_INFO_WLOCK(&V_ripcbinfo); | ||||
▲ Show 20 Lines • Show All 317 Lines • Show Last 20 Lines |
Is this supposed to be a || ?