summaryrefslogtreecommitdiffstats
path: root/c/src/exec/libnetworking/net/if_ethersubr.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/libnetworking/net/if_ethersubr.c')
-rw-r--r--c/src/exec/libnetworking/net/if_ethersubr.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/c/src/exec/libnetworking/net/if_ethersubr.c b/c/src/exec/libnetworking/net/if_ethersubr.c
index 4d1675ca3c..2a6446ebb6 100644
--- a/c/src/exec/libnetworking/net/if_ethersubr.c
+++ b/c/src/exec/libnetworking/net/if_ethersubr.c
@@ -483,6 +483,15 @@ ether_input(ifp, eh, m)
if (m->m_flags & (M_BCAST|M_MCAST))
ifp->if_imcasts++;
+ /*
+ * RTEMS addition -- allow application to `tap into'
+ * the incoming packet stream.
+ */
+ if (ifp->if_tap && (*ifp->if_tap)(ifp, eh, m)) {
+ m_freem(m);
+ return;
+ }
+
ether_type = ntohs(eh->ether_type);
switch (ether_type) {