| version 1.88, 2001/11/02 02:37:50 |
version 1.89, 2001/11/04 20:55:29 |
| Line 635 udp4_realinput(src, dst, m, off) |
|
| Line 635 udp4_realinput(src, dst, m, off) |
|
| /* |
/* |
| * Locate pcb(s) for datagram. |
* Locate pcb(s) for datagram. |
| */ |
*/ |
| for (inp = udbtable.inpt_queue.cqh_first; |
CIRCLEQ_FOREACH(inp, &udbtable.inpt_queue, inp_queue) { |
| inp != (struct inpcb *)&udbtable.inpt_queue; |
|
| inp = inp->inp_queue.cqe_next) { |
|
| if (inp->inp_lport != *dport) |
if (inp->inp_lport != *dport) |
| continue; |
continue; |
| if (!in_nullhost(inp->inp_laddr)) { |
if (!in_nullhost(inp->inp_laddr)) { |
| Line 701 in6_mcmatch(in6p, ia6, ifp) |
|
| Line 699 in6_mcmatch(in6p, ia6, ifp) |
|
| if (im6o == NULL) |
if (im6o == NULL) |
| return 0; |
return 0; |
| |
|
| for (imm = im6o->im6o_memberships.lh_first; imm != NULL; |
LIST_FOREACH(imm, &im6o->im6o_memberships, i6mm_chain) { |
| imm = imm->i6mm_chain.le_next) { |
if ((ifp == NULL || imm->i6mm_maddr->in6m_ifp == ifp) && |
| if ((ifp == NULL || |
IN6_ARE_ADDR_EQUAL(&imm->i6mm_maddr->in6m_addr, ia6)) |
| imm->i6mm_maddr->in6m_ifp == ifp) && |
|
| IN6_ARE_ADDR_EQUAL(&imm->i6mm_maddr->in6m_addr, |
|
| ia6)) |
|
| return 1; |
return 1; |
| } |
} |
| return 0; |
return 0; |