From: dlg Date: Sat, 20 Feb 2021 04:37:26 +0000 (+0000) Subject: default interfaces to bpf_mtap_ether for their if_bpf_mtap handler. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=4a6e2859c993caade441dd378b49d622981a2511;p=openbsd default interfaces to bpf_mtap_ether for their if_bpf_mtap handler. call (*ifp->if_bpf_mtap) instead of bpf_mtap_ether in ifiq_input and if_vinput. --- diff --git a/sys/net/if.c b/sys/net/if.c index 6e01d40fdd7..9377bda5b44 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if.c,v 1.630 2021/02/20 01:11:43 dlg Exp $ */ +/* $OpenBSD: if.c,v 1.631 2021/02/20 04:37:26 dlg Exp $ */ /* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */ /* @@ -629,6 +629,10 @@ if_attach_common(struct ifnet *ifp) ifp->if_rtrequest = if_rtrequest_dummy; if (ifp->if_enqueue == NULL) ifp->if_enqueue = if_enqueue_ifq; +#if NBPFILTER > 0 + if (ifp->if_bpf_mtap == NULL) + ifp->if_bpf_mtap = bpf_mtap_ether; +#endif ifp->if_llprio = IFQ_DEFPRIO; } @@ -852,7 +856,7 @@ if_vinput(struct ifnet *ifp, struct mbuf *m) #if NBPFILTER > 0 if_bpf = ifp->if_bpf; if (if_bpf) { - if (bpf_mtap_ether(if_bpf, m, BPF_DIRECTION_IN)) { + if ((*ifp->if_bpf_mtap)(if_bpf, m, BPF_DIRECTION_IN)) { m_freem(m); return; } diff --git a/sys/net/ifq.c b/sys/net/ifq.c index 1aa126f614f..51eaaf44343 100644 --- a/sys/net/ifq.c +++ b/sys/net/ifq.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ifq.c,v 1.42 2021/02/20 01:11:44 dlg Exp $ */ +/* $OpenBSD: ifq.c,v 1.43 2021/02/20 04:37:26 dlg Exp $ */ /* * Copyright (c) 2015 David Gwynne @@ -693,7 +693,7 @@ ifiq_input(struct ifiqueue *ifiq, struct mbuf_list *ml) ml_init(ml); while ((m = ml_dequeue(&ml0)) != NULL) { - if (bpf_mtap_ether(if_bpf, m, BPF_DIRECTION_IN)) + if ((*ifp->if_bpf_mtap)(if_bpf, m, BPF_DIRECTION_IN)) m_freem(m); else ml_enqueue(ml, m);