Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/raw_ip6.c
Show First 20 Lines • Show All 160 Lines • ▼ Show 20 Lines | rip6_input(struct mbuf **mp, int *offp, int proto) | ||||
register struct ip6_hdr *ip6 = mtod(m, struct ip6_hdr *); | register struct ip6_hdr *ip6 = mtod(m, struct ip6_hdr *); | ||||
register struct inpcb *in6p; | register struct inpcb *in6p; | ||||
struct inpcb *last = NULL; | struct inpcb *last = NULL; | ||||
struct mbuf *opts = NULL; | struct mbuf *opts = NULL; | ||||
struct sockaddr_in6 fromsa; | struct sockaddr_in6 fromsa; | ||||
RIP6STAT_INC(rip6s_ipackets); | RIP6STAT_INC(rip6s_ipackets); | ||||
init_sin6(&fromsa, m); /* general init */ | init_sin6(&fromsa, m, 0); /* general init */ | ||||
ifp = m->m_pkthdr.rcvif; | ifp = m->m_pkthdr.rcvif; | ||||
INP_INFO_RLOCK(&V_ripcbinfo); | INP_INFO_RLOCK(&V_ripcbinfo); | ||||
LIST_FOREACH(in6p, &V_ripcb, inp_list) { | LIST_FOREACH(in6p, &V_ripcb, inp_list) { | ||||
/* XXX inp locking */ | /* XXX inp locking */ | ||||
if ((in6p->inp_vflag & INP_IPV6) == 0) | if ((in6p->inp_vflag & INP_IPV6) == 0) | ||||
continue; | continue; | ||||
▲ Show 20 Lines • Show All 730 Lines • Show Last 20 Lines |