diff options
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/netstat/Makefile | 2 | ||||
-rw-r--r-- | usr.bin/netstat/main.c | 1 | ||||
-rw-r--r-- | usr.bin/netstat/mcast.c | 219 | ||||
-rw-r--r-- | usr.bin/netstat/netstat.1 | 14 | ||||
-rw-r--r-- | usr.bin/netstat/netstat.h | 1 |
5 files changed, 11 insertions, 226 deletions
diff --git a/usr.bin/netstat/Makefile b/usr.bin/netstat/Makefile index bb73c67..df31aec 100644 --- a/usr.bin/netstat/Makefile +++ b/usr.bin/netstat/Makefile @@ -4,7 +4,7 @@ .include <bsd.own.mk> PROG= netstat -SRCS= if.c inet.c main.c mbuf.c mcast.c mroute.c route.c \ +SRCS= if.c inet.c main.c mbuf.c mroute.c route.c \ unix.c atalk.c mroute6.c ipsec.c bpf.c pfkey.c sctp.c WARNS?= 3 diff --git a/usr.bin/netstat/main.c b/usr.bin/netstat/main.c index 642a63b..6eb313a 100644 --- a/usr.bin/netstat/main.c +++ b/usr.bin/netstat/main.c @@ -558,7 +558,6 @@ main(int argc, char *argv[]) nl[N_MIF6TABLE].n_value); #endif } - ifmalist_dump(); exit(0); } diff --git a/usr.bin/netstat/mcast.c b/usr.bin/netstat/mcast.c deleted file mode 100644 index 218d630..0000000 --- a/usr.bin/netstat/mcast.c +++ /dev/null @@ -1,219 +0,0 @@ -/*- - * Copyright (c) 2007 Bruce M. Simpson <bms@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -/* - * Print the running system's current multicast group memberships. - * As this relies on getifmaddrs(), it may not be used with a core file. - */ - -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/socketvar.h> - -#include <net/if.h> -#include <net/if_var.h> -#include <net/if_mib.h> -#include <net/if_types.h> -#include <net/if_dl.h> -#include <net/route.h> -#include <netinet/in.h> -#include <netinet/if_ether.h> -#include <arpa/inet.h> -#include <netdb.h> - -#include <ctype.h> -#include <err.h> -#include <ifaddrs.h> -#include <sysexits.h> - -#include <stddef.h> -#include <stdarg.h> -#include <stdlib.h> -#include <stdint.h> -#include <stdio.h> -#include <string.h> - -#include "netstat.h" - -#define __NETSTAT_BURN_BRIDGES - -#ifdef __NETSTAT_BURN_BRIDGES - -union sockunion { - struct sockaddr_storage ss; - struct sockaddr sa; - struct sockaddr_dl sdl; - struct sockaddr_in sin; - struct sockaddr_in6 sin6; -}; -typedef union sockunion sockunion_t; - -void ifmalist_dump_af(const struct ifmaddrs * const ifmap, int const af); - -void -ifmalist_dump_af(const struct ifmaddrs * const ifmap, int const af) -{ - const struct ifmaddrs *ifma; - sockunion_t *psa; - char myifname[IFNAMSIZ]; -#ifdef INET6 - char addrbuf[INET6_ADDRSTRLEN]; -#endif - char *pcolon; - char *pafname, *pifname, *plladdr, *pgroup; -#ifdef INET6 - void *in6addr; -#endif - - switch (af) { - case AF_INET: - pafname = "IPv4"; - break; -#ifdef INET6 - case AF_INET6: - pafname = "IPv6"; - break; -#endif - case AF_LINK: - pafname = "Link-layer"; - break; - default: - return; /* XXX */ - } - - fprintf(stdout, "%s Multicast Group Memberships\n", pafname); - fprintf(stdout, "%-20s\t%-16s\t%s\n", "Group", "Link-layer Address", - "Netif"); - - for (ifma = ifmap; ifma; ifma = ifma->ifma_next) { - - if (ifma->ifma_name == NULL || ifma->ifma_addr == NULL) - continue; - - /* Group address */ - psa = (sockunion_t *)ifma->ifma_addr; - if (psa->sa.sa_family != af) - continue; - - switch (psa->sa.sa_family) { - case AF_INET: - pgroup = inet_ntoa(psa->sin.sin_addr); - break; -#ifdef INET6 - case AF_INET6: - in6addr = &psa->sin6.sin6_addr; - inet_ntop(psa->sa.sa_family, in6addr, addrbuf, - sizeof(addrbuf)); - pgroup = addrbuf; - break; -#endif - case AF_LINK: - if ((psa->sdl.sdl_alen == ETHER_ADDR_LEN) || - (psa->sdl.sdl_type == IFT_ETHER)) { - pgroup = -ether_ntoa((struct ether_addr *)&psa->sdl.sdl_data); -#ifdef notyet - } else { - pgroup = addr2ascii(AF_LINK, - &psa->sdl, - sizeof(struct sockaddr_dl), - addrbuf); -#endif - } - break; - default: - continue; /* XXX */ - } - - /* Link-layer mapping, if any */ - psa = (sockunion_t *)ifma->ifma_lladdr; - if (psa != NULL) { - if (psa->sa.sa_family == AF_LINK) { - if ((psa->sdl.sdl_alen == ETHER_ADDR_LEN) || - (psa->sdl.sdl_type == IFT_ETHER)) { - /* IEEE 802 */ - plladdr = -ether_ntoa((struct ether_addr *)&psa->sdl.sdl_data); -#ifdef notyet - } else { - /* something more exotic */ - plladdr = addr2ascii(AF_LINK, - &psa->sdl, - sizeof(struct sockaddr_dl), - addrbuf); -#endif - } - } else { - /* not a link-layer address */ - plladdr = "<invalid>"; - } - } else { - plladdr = "<none>"; - } - - /* Interface upon which the membership exists */ - psa = (sockunion_t *)ifma->ifma_name; - if (psa != NULL && psa->sa.sa_family == AF_LINK) { - strlcpy(myifname, link_ntoa(&psa->sdl), IFNAMSIZ); - pcolon = strchr(myifname, ':'); - if (pcolon) - *pcolon = '\0'; - pifname = myifname; - } else { - pifname = ""; - } - - fprintf(stdout, "%-20s\t%-16s\t%s\n", pgroup, plladdr, pifname); - } -} - -void -ifmalist_dump(void) -{ - struct ifmaddrs *ifmap; - - fprintf(stderr, - "WARNING: This functionality is deprecated, and will be removed\n" - "in FreeBSD 7.0. Please consider using ifmcstat(8) instead.\n"); - - if (getifmaddrs(&ifmap)) - err(EX_OSERR, "getifmaddrs"); - - ifmalist_dump_af(ifmap, AF_LINK); - fputs("\n", stdout); - ifmalist_dump_af(ifmap, AF_INET); -#ifdef INET6 - fputs("\n", stdout); - ifmalist_dump_af(ifmap, AF_INET6); -#endif - - freeifmaddrs(ifmap); -} -#endif /* __NETSTAT_BURN_BRIDGES */ diff --git a/usr.bin/netstat/netstat.1 b/usr.bin/netstat/netstat.1 index e4b9117..f78b29f 100644 --- a/usr.bin/netstat/netstat.1 +++ b/usr.bin/netstat/netstat.1 @@ -32,7 +32,7 @@ .\" @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd May 16, 2008 +.Dd February 15, 2009 .Dt NETSTAT 1 .Os .Sh NAME @@ -265,9 +265,15 @@ is repeated, counters with a value of zero are suppressed. .Op Fl N Ar system .Ek .Xc -Show information related to multicast (group address) routing. -By default, show the IP Multicast virtual-interface and routing tables, -and multicast group memberships. +Display the contents of the multicast virtual interface tables, +and multicast forwarding caches. +Entries in these tables will appear only when the kernel is +actively forwarding multicast sessions. +This option is applicable only to the +.Cm inet +and +.Cm inet6 +address families. .It Xo .Bk -words .Nm diff --git a/usr.bin/netstat/netstat.h b/usr.bin/netstat/netstat.h index 3812e63..da76ff1 100644 --- a/usr.bin/netstat/netstat.h +++ b/usr.bin/netstat/netstat.h @@ -160,7 +160,6 @@ void tp_protopr(u_long, const char *, int, int); void tp_inproto(u_long); void tp_stats(caddr_t, caddr_t); -void ifmalist_dump(void); void mroutepr(u_long, u_long); void mrt_stats(u_long); void bpf_stats(char *); |