summaryrefslogtreecommitdiff
path: root/sys/net/bridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/bridge.c')
-rw-r--r--sys/net/bridge.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/sys/net/bridge.c b/sys/net/bridge.c
index 745eaa2fca0d..7c2e0f23508f 100644
--- a/sys/net/bridge.c
+++ b/sys/net/bridge.c
@@ -77,7 +77,6 @@
#include <sys/param.h>
#include <sys/mbuf.h>
-#include <sys/malloc.h>
#include <sys/systm.h>
#include <sys/socket.h> /* for net/if.h */
#include <sys/kernel.h>
@@ -90,11 +89,9 @@
#include <netinet/if_ether.h> /* for struct arpcom */
#include "opt_ipfw.h"
-#include "opt_ipdn.h"
#if defined(IPFIREWALL) && defined(DUMMYNET)
#include <net/route.h>
-#include <netinet/ip_fw.h>
#include <netinet/ip_dummynet.h>
#endif
@@ -239,10 +236,11 @@ bdg_timeout(void *dummy)
if (--slowtimer <= 0 ) {
slowtimer = 5 ;
- for (ifp = ifnet.tqh_first; ifp; ifp = ifp->if_link.tqe_next) {
+ for (ifp = ifnet; ifp; ifp = ifp->if_next) {
if (ifp->if_type != IFT_ETHER)
continue ;
if ( 0 == ( ifp->if_flags & IFF_UP) ) {
+ int ret ;
s = splimp();
if_up(ifp);
splx(s);
@@ -281,7 +279,7 @@ static void
bdginit(dummy)
void *dummy;
{
- int i ;
+ int s, i ;
struct ifnet *ifp;
struct arpcom *ac ;
u_char *eth_addr ;
@@ -301,9 +299,8 @@ bdginit(dummy)
bdg_ports = 0 ;
eth_addr = bdg_addresses ;
- printf("BRIDGE 981214, have %d interfaces\n", if_index);
- for (i = 0 , ifp = ifnet.tqh_first ; i < if_index ;
- i++, ifp = ifp->if_link.tqe_next)
+ printf("BRIDGE 980911, have %d interfaces\n", if_index);
+ for (i = 0 , ifp = ifnet ; i < if_index ; i++, ifp = ifp->if_next)
if (ifp->if_type == IFT_ETHER) { /* ethernet ? */
ac = (struct arpcom *)ifp;
sprintf(bdg_stats.s[ifp->if_index].name,
@@ -325,7 +322,7 @@ bdginit(dummy)
bdg_ports ++ ;
}
bdg_timeout(0);
- do_bridge=0;
+ do_bridge=1;
}
/*
@@ -467,7 +464,7 @@ bdg_forward (struct mbuf **m0, struct ifnet *dst)
return 0;
}
if (dst == BDG_BCAST || dst == BDG_MCAST || dst == BDG_UNKNOWN) {
- ifp = ifnet.tqh_first ;
+ ifp = ifnet ;
once = 0 ;
if (dst != BDG_UNKNOWN)
canfree = 0 ;
@@ -518,7 +515,7 @@ bdg_forward (struct mbuf **m0, struct ifnet *dst)
}
dummy = 0 ;
- off= (*ip_fw_chk_ptr)(NULL, 0, src, &dummy, &m, &rule, NULL /*next hop */ ) ;
+ off=(*ip_fw_chk_ptr)(NULL, 0, src, &dummy, &m, &rule) ;
if (m == NULL) { /* pkt discarded by firewall */
printf("-- bdg: firewall discarded pkt\n");
if (canfree)
@@ -559,12 +556,12 @@ forward:
else
m = NULL ;
- for ( ; ifp ; ifp = ifp->if_link.tqe_next ) {
+ for ( ; ifp ; ifp = ifp->if_next ) {
if (ifp != src && ifp->if_type == IFT_ETHER &&
(ifp->if_flags & (IFF_UP|IFF_RUNNING)) == (IFF_UP|IFF_RUNNING) &&
SAMEGROUP(ifp, src) && !MUTED(ifp) ) {
if (m == NULL) { /* do i need to make a copy ? */
- if (canfree && ifp->if_link.tqe_next == NULL) /* last one! */
+ if (canfree && ifp->if_next == NULL) /* last one! */
m = *m0 ;
else /* on a P5-90, m_packetcopy takes 540 ticks */
m = m_copypacket(*m0, M_DONTWAIT);