|
Lines 193-212
Link Here
|
| 193 |
if (!IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst) && |
193 |
if (!IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst) && |
| 194 |
prison_check_ip6(in6p->inp_cred, |
194 |
prison_check_ip6(in6p->inp_cred, |
| 195 |
&ip6->ip6_dst) != 0) |
195 |
&ip6->ip6_dst) != 0) |
| 196 |
continue; |
196 |
continue; |
| 197 |
} |
197 |
} |
|
|
198 |
INP_RLOCK(in6p); |
| 198 |
if (in6p->in6p_cksum != -1) { |
199 |
if (in6p->in6p_cksum != -1) { |
| 199 |
V_rip6stat.rip6s_isum++; |
200 |
V_rip6stat.rip6s_isum++; |
| 200 |
if (in6_cksum(m, proto, *offp, |
201 |
if (in6_cksum(m, proto, *offp, |
| 201 |
m->m_pkthdr.len - *offp)) { |
202 |
m->m_pkthdr.len - *offp)) { |
| 202 |
INP_RUNLOCK(in6p); |
203 |
INP_RUNLOCK(in6p); |
| 203 |
V_rip6stat.rip6s_badsum++; |
204 |
V_rip6stat.rip6s_badsum++; |
| 204 |
continue; |
205 |
continue; |
| 205 |
} |
206 |
} |
| 206 |
} |
207 |
} |
| 207 |
INP_RLOCK(in6p); |
|
|
| 208 |
/* |
208 |
/* |
| 209 |
* If this raw socket has multicast state, and we |
209 |
* If this raw socket has multicast state, and we |
| 210 |
* have received a multicast, check if this socket |
210 |
* have received a multicast, check if this socket |
| 211 |
* should receive it, as multicast filtering is now |
211 |
* should receive it, as multicast filtering is now |
| 212 |
* the responsibility of the transport layer. |
212 |
* the responsibility of the transport layer. |