From f9bc5c6a2601bc0a3008def148bc30191850b7a1 Mon Sep 17 00:00:00 2001 From: luigi Date: Mon, 1 Mar 1999 16:54:28 +0000 Subject: Fix handling of IFF_ALLMULTI. The code did not call tulip_addr_filter() on SIOCSIFFLAGS, and was nuking the IFF_ALLMULTI on entering tulip_addr_filter(). As a result it was impossible to run a multicast router on a machine with a "de" interface. --- sys/pci/if_de.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/pci') diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c index 49ae4a2..f3f0a2b 100644 --- a/sys/pci/if_de.c +++ b/sys/pci/if_de.c @@ -1,5 +1,5 @@ /* $NetBSD: if_de.c,v 1.80 1998/09/25 18:06:53 matt Exp $ */ -/* $Id: if_de.c,v 1.97 1999/01/29 08:29:05 bde Exp $ */ +/* $Id: if_de.c,v 1.98 1999/01/29 11:31:45 bde Exp $ */ /*- * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) @@ -3085,7 +3085,8 @@ tulip_addr_filter( sc->tulip_cmdmode &= ~TULIP_CMD_RXRUN; sc->tulip_intrmask &= ~TULIP_STS_RXSTOPPED; #if defined(IFF_ALLMULTI) - sc->tulip_if.if_flags &= ~IFF_ALLMULTI; + if (sc->tulip_if.if_flags & IFF_ALLMULTI) + sc->tulip_flags |= TULIP_ALLMULTI ; #endif #if defined(__FreeBSD__) && __FreeBSD_version >= 300000 @@ -4754,6 +4755,7 @@ tulip_ifioctl( printf(TULIP_PRINTF_FMT ": ignored invalid media request\n", TULIP_PRINTF_ARGS); } #endif + tulip_addr_filter(sc); /* reinit multicast filter */ tulip_init(sc); break; } -- cgit v1.1