diff options
author | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1999-10-29 05:21:46 +0000 |
---|---|---|
committer | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1999-10-29 05:21:46 +0000 |
commit | 1e8f0d5741ba62b4b7aaabea82c95e61190397db (patch) | |
tree | a1594b59048ea8b9442c91ac1240729446ab175b /sys/netinet/ip_esp.c | |
parent | 49d86ef377278b4b37af65682b9eaff8b4862065 (diff) |
Support multiple enc interfaces.
Diffstat (limited to 'sys/netinet/ip_esp.c')
-rw-r--r-- | sys/netinet/ip_esp.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/netinet/ip_esp.c b/sys/netinet/ip_esp.c index ffb5b28139f..b343ee47f57 100644 --- a/sys/netinet/ip_esp.c +++ b/sys/netinet/ip_esp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_esp.c,v 1.24 1999/07/05 20:17:06 deraadt Exp $ */ +/* $OpenBSD: ip_esp.c,v 1.25 1999/10/29 05:21:45 angelos Exp $ */ /* * The authors of this code are John Ioannidis (ji@tla.org), @@ -57,7 +57,6 @@ #include <net/route.h> #include <net/netisr.h> #include <net/bpf.h> -#include <net/if_enc.h> #include <netinet/in.h> #include <netinet/in_systm.h> @@ -73,9 +72,11 @@ #include <netinet/ip_ipsp.h> #include <netinet/ip_esp.h> +#include <net/if_enc.h> + #include "bpfilter.h" -extern struct ifnet encif; +extern struct enc_softc encif[]; #ifdef ENCDEBUG #define DPRINTF(x) if (encdebug) printf x @@ -172,7 +173,10 @@ esp_input(m, va_alist) return; } - m->m_pkthdr.rcvif = &encif; + if (tdbp->tdb_interface) + m->m_pkthdr.rcvif = (struct ifnet *) tdbp->tdb_interface; + else + m->m_pkthdr.rcvif = &encif[0].sc_if; /* Register first use, setup expiration timer */ if (tdbp->tdb_first_use == 0) @@ -268,7 +272,7 @@ esp_input(m, va_alist) m->m_flags |= M_CONF; #if NBPFILTER > 0 - if (encif.if_bpf) + if (m->m_pkthdr.rcvif->if_bpf) { /* * We need to prepend the address family as @@ -288,7 +292,7 @@ esp_input(m, va_alist) m0.m_len = ENC_HDRLEN; m0.m_data = (char *) &hdr; - bpf_mtap(encif.if_bpf, &m0); + bpf_mtap(m->m_pkthdr.rcvif->if_bpf, &m0); } #endif |