}
if (discif.if_bpf) {
- /*
- * We need to prepend the address family as
- * a four byte field. Cons up a dummy header
- * to pacify bpf. This is safe because bpf
- * will only read from the mbuf (i.e., it won't
- * try to free it or keep a pointer a to it).
- */
- struct mbuf m0;
+ /* We need to prepend the address family as a four byte field. */
u_int af = dst->sa_family;
- m0.m_next = m;
- m0.m_len = 4;
- m0.m_data = (char *)⁡
-
- bpf_mtap(&discif, &m0);
+ bpf_tap_out(ifp, 0, m, &af, sizeof(af));
}
m->m_pkthdr.rcvif = ifp;