add the option -S for printing port numbers symbolically but addresses

numerically.  clean up the CFLAGS in Makefile.
This commit is contained in:
Assar Westerlund 2001-06-15 00:25:44 +00:00
parent 953d6e00e9
commit 65ea0024ba
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=78238
10 changed files with 55 additions and 45 deletions

View File

@ -6,6 +6,7 @@ SRCS= if.c inet.c inet6.c main.c mbuf.c mroute.c ipx.c route.c \
unix.c atalk.c netgraph.c mroute6.c ipsec.c # iso.c ns.c tp_astring.c
CFLAGS+=-Wall
CFLAGS+=-DIPSEC
CFLAGS+=-DINET6
#CFLAGS+=-g
#.PATH: ${.CURDIR}/../../sys/netiso
@ -13,6 +14,5 @@ BINGRP= kmem
BINMODE=2555
DPADD= ${LIBKVM} ${LIBIPX} ${LIBNETGRAPH} ${LIBUTIL}
LDADD= -lkvm -lipx -lnetgraph -lutil
CFLAGS+=-DINET6 -DIPSEC
.include <bsd.prog.mk>

View File

@ -259,7 +259,7 @@ protopr(proto, name, af)
so->so_rcv.sb_cc,
so->so_snd.sb_cc);
}
if (nflag) {
if (numeric_port) {
if (inp->inp_vflag & INP_IPV4) {
inetprint(&inp->inp_laddr, (int)inp->inp_lport,
name, 1);
@ -686,11 +686,11 @@ igmp_stats(off, name)
* Pretty print an Internet address (net address + port).
*/
void
inetprint(in, port, proto,numeric)
inetprint(in, port, proto, numeric_port)
register struct in_addr *in;
int port;
char *proto;
int numeric;
int numeric_port;
{
struct servent *sp = 0;
char line[80], *cp;
@ -699,9 +699,9 @@ inetprint(in, port, proto,numeric)
if (Wflag)
sprintf(line, "%s.", inetname(in));
else
sprintf(line, "%.*s.", (Aflag && !numeric) ? 12 : 16, inetname(in));
sprintf(line, "%.*s.", (Aflag && !numeric_port) ? 12 : 16, inetname(in));
cp = index(line, '\0');
if (!numeric && port)
if (!numeric_port && port)
sp = getservbyport((int)port, proto);
if (sp || port == 0)
sprintf(cp, "%.15s ", sp ? sp->s_name : "*");
@ -716,7 +716,7 @@ inetprint(in, port, proto,numeric)
/*
* Construct an Internet address representation.
* If the nflag has been supplied, give
* If numeric_addr has been supplied, give
* numeric value, otherwise try for symbolic name.
*/
char *
@ -729,7 +729,7 @@ inetname(inp)
struct netent *np;
cp = 0;
if (!nflag && inp->s_addr != INADDR_ANY) {
if (!numeric_addr && inp->s_addr != INADDR_ANY) {
int net = inet_netof(*inp);
int lna = inet_lnaof(*inp);

View File

@ -1022,7 +1022,7 @@ rip6_stats(off, name)
/*
* Pretty print an Internet address (net address + port).
* If the nflag was specified, use numbers instead of names.
* Take numeric_addr and numeric_port into consideration.
*/
#define GETSERVBYPORT6(port, proto, ret)\
{\
@ -1060,7 +1060,7 @@ inet6print(in6, port, proto, numeric)
/*
* Construct an Internet address representation.
* If the nflag has been supplied, give
* If the numeric_addr has been supplied, give
* numeric value, otherwise try for symbolic name.
*/
@ -1074,7 +1074,7 @@ inet6name(in6p)
static char domain[MAXHOSTNAMELEN];
static int first = 1;
if (first && !nflag) {
if (first && !numeric_addr) {
first = 0;
if (gethostname(domain, MAXHOSTNAMELEN) == 0 &&
(cp = index(domain, '.')))
@ -1083,7 +1083,7 @@ inet6name(in6p)
domain[0] = 0;
}
cp = 0;
if (!nflag && !IN6_IS_ADDR_UNSPECIFIED(in6p)) {
if (!numeric_addr && !IN6_IS_ADDR_UNSPECIFIED(in6p)) {
hp = gethostbyaddr((char *)in6p, sizeof(*in6p), AF_INET6);
if (hp) {
if ((cp = index(hp->h_name, '.')) &&

View File

@ -366,7 +366,8 @@ tp_inproto(pcb)
/*
* Pretty print an iso address (net address + port).
* If the nflag was specified, use numbers instead of names.
* If the numeric_addr or numeric_port were specified,
* use numbers instead of names.
*/
#ifdef notdef
@ -387,7 +388,7 @@ isonetname(iso)
sa.siso_addr = *iso;
sa.siso_tsuffix = 0;
if (!nflag )
if ( !numeric_addr )
ihe = iso_gethostentrybyaddr( &sa, 0, 0 );
if( ihe ) {
Ihe = *ihe;
@ -426,7 +427,7 @@ isonetprint(iso, sufx, sufxlen, islocal)
if(Aflag)
islocal += 10 ;
if(!nflag) {
if(!numeric_addr) {
if( (cp -line)>10 ) {
cp = line+10;
bzero(cp, sizeof(line)-10);
@ -435,7 +436,7 @@ isonetprint(iso, sufx, sufxlen, islocal)
*cp++ = '.';
if(sufxlen) {
if( !Aflag && !nflag && (ihe=iso_getserventrybytsel(sufx, sufxlen))) {
if( !Aflag && !numeric_port && (ihe=iso_getserventrybytsel(sufx, sufxlen))) {
Ihe = *ihe;
ihe = &Ihe;
}

View File

@ -311,7 +311,8 @@ int iflag; /* show interfaces */
int lflag; /* show routing table with use and ref */
int Lflag; /* show size of listen queues */
int mflag; /* show memory stats */
int nflag; /* show addresses numerically */
int numeric_addr; /* show addresses numerically */
int numeric_port; /* show ports numerically */
int pflag; /* show given protocol */
int rflag; /* show routing tables (or routing stats) */
int sflag; /* show protocol statistics */
@ -335,7 +336,7 @@ main(argc, argv)
af = AF_UNSPEC;
while ((ch = getopt(argc, argv, "Aabdf:gI:iLlM:mN:np:rstuWw:")) != -1)
while ((ch = getopt(argc, argv, "Aabdf:gI:iLlM:mN:np:rsStuWw:")) != -1)
switch(ch) {
case 'A':
Aflag = 1;
@ -413,7 +414,7 @@ main(argc, argv)
nlistf = optarg;
break;
case 'n':
nflag = 1;
numeric_addr = numeric_port = 1;
break;
case 'p':
if ((tp = name2protox(optarg)) == NULL) {
@ -429,6 +430,9 @@ main(argc, argv)
case 's':
++sflag;
break;
case 'S':
numeric_addr = 1;
break;
case 't':
tflag = 1;
break;
@ -740,7 +744,7 @@ usage()
{
(void)fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n",
"usage: netstat [-AaLlnW] [-f address_family] [-M core] [-N system]",
" netstat [-abdgilnrs] [-f address_family] [-M core] [-N system]",
" netstat [-abdgilnrsS] [-f address_family] [-M core] [-N system]",
" netstat [-bdn] [-I interface] [-M core] [-N system] [-w wait]",
" netstat -m [-M core] [-N system]",
" netstat [-M core] [-N system] [-p protocol]");

View File

@ -77,7 +77,7 @@ mroutepr(mfcaddr, vifaddr)
register vifi_t vifi;
register int i;
register int banner_printed;
register int saved_nflag;
register int saved_numeric_addr;
vifi_t maxvif = 0;
if (mfcaddr == 0 || vifaddr == 0) {
@ -85,8 +85,8 @@ mroutepr(mfcaddr, vifaddr)
return;
}
saved_nflag = nflag;
nflag = 1;
saved_numeric_addr = numeric_addr;
numeric_addr = 1;
kread(vifaddr, (char *)&viftable, sizeof(viftable));
banner_printed = 0;
@ -145,7 +145,7 @@ mroutepr(mfcaddr, vifaddr)
printf("\nMulticast Routing Table is empty\n");
printf("\n");
nflag = saved_nflag;
numeric_addr = saved_numeric_addr;
}

View File

@ -88,8 +88,8 @@
#include "netstat.h"
#define WID_ORG (lflag ? 39 : (nflag ? 29 : 18)) /* width of origin column */
#define WID_GRP (lflag ? 18 : (nflag ? 16 : 18)) /* width of group column */
#define WID_ORG (lflag ? 39 : (numeric_addr ? 29 : 18)) /* width of origin column */
#define WID_GRP (lflag ? 18 : (numeric_addr ? 16 : 18)) /* width of group column */
extern char *routename6 __P((struct sockaddr_in6 *));
@ -105,7 +105,7 @@ mroute6pr(mfcaddr, mifaddr)
register mifi_t mifi;
register int i;
register int banner_printed;
register int saved_nflag;
register int saved_numeric_addr;
mifi_t maxmif = 0;
long int waitings;
@ -115,8 +115,8 @@ mroute6pr(mfcaddr, mifaddr)
return;
}
saved_nflag = nflag;
nflag = 1;
saved_numeric_addr = numeric_addr;
numeric_addr = 1;
kread(mifaddr, (char *)&mif6table, sizeof(mif6table));
banner_printed = 0;
@ -192,7 +192,7 @@ mroute6pr(mfcaddr, mifaddr)
printf("\nIPv6 Multicast Routing Table is empty\n");
printf("\n");
nflag = saved_nflag;
numeric_addr = saved_numeric_addr;
}
void

View File

@ -34,7 +34,7 @@
.\"
.Dd April 18, 1994
.Dt NETSTAT 1
.Os BSD 4.2
.Os
.Sh NAME
.Nm netstat
.Nd show network status
@ -45,7 +45,7 @@
.Op Fl M Ar core
.Op Fl N Ar system
.Nm
.Op Fl bdgilnrs
.Op Fl bdgilnrsS
.Op Fl f Ar address_family
.Op Fl M Ar core
.Op Fl N Ar system
@ -172,7 +172,7 @@ option) or the
.Fl p Ar protocol
option is present, show per-interface statistics on the
.Ar interface
for the specfied
for the specified
.Ar address_family
or
.Ar protocol ,
@ -194,7 +194,7 @@ option (with the
option) or the
.Fl p Ar protocol
option is present, show per-interface statistics on all interfaces
for the specfied
for the specified
.Ar address_family
or
.Ar protocol ,
@ -218,11 +218,15 @@ Show statistics recorded by the memory management routines
Extract the name list from the specified system instead of the default
.Pa /kernel .
.It Fl n
Show network addresses as numbers (normally
Show network addresses and ports as numbers (normally
.Nm
interprets addresses and attempts to display them
interprets addresses and ports and attempts to display them
symbolically).
This option may be used with any of the display formats.
.It Fl S
Show network addresses as numbers (as with
.Fl n )
but show ports symbolically).
.It Fl p Ar protocol
Show statistics about
.Ar protocol ,

View File

@ -45,7 +45,8 @@ extern int iflag; /* show interfaces */
extern int lflag; /* show routing table with use and ref */
extern int Lflag; /* show size of listen queues */
extern int mflag; /* show memory stats */
extern int nflag; /* show addresses numerically */
extern int numeric_addr; /* show addresses numerically */
extern int numeric_port; /* show ports numerically */
extern int pflag; /* show given protocol */
extern int rflag; /* show routing tables (or routing stats) */
extern int sflag; /* show protocol statistics */

View File

@ -235,9 +235,9 @@ pr_family(af)
#define WID_IF(af) 6 /* width of netif column */
#else
#define WID_DST(af) \
((af) == AF_INET6 ? (lflag ? 39 : (nflag ? 33: 18)) : 18)
((af) == AF_INET6 ? (lflag ? 39 : (numeric_addr ? 33: 18)) : 18)
#define WID_GW(af) \
((af) == AF_INET6 ? (lflag ? 31 : (nflag ? 29 : 18)) : 18)
((af) == AF_INET6 ? (lflag ? 31 : (numeric_addr ? 29 : 18)) : 18)
#define WID_IF(af) ((af) == AF_INET6 ? 8 : 6)
#endif /*INET6*/
@ -564,7 +564,7 @@ p_sockaddr(sa, mask, flags, width)
if (width < 0 )
printf("%s ", cp);
else {
if (nflag)
if (numeric_addr)
printf("%-*s ", width, cp);
else
printf("%-*.*s ", width, width, cp);
@ -662,7 +662,7 @@ routename(in)
struct hostent *hp;
cp = 0;
if (!nflag) {
if (!numeric_addr) {
hp = gethostbyaddr((char *)&in, sizeof (struct in_addr),
AF_INET);
if (hp) {
@ -744,7 +744,7 @@ netname(in, mask)
i = ntohl(in);
dmask = forgemask(i);
omask = mask;
if (!nflag && i) {
if (!numeric_addr && i) {
net = i & dmask;
if (!(np = getnetbyaddr(i, AF_INET)) && net != i)
np = getnetbyaddr(net, AF_INET);
@ -841,12 +841,12 @@ netname6(sa6, mask)
if (masklen == 0 && IN6_IS_ADDR_UNSPECIFIED(&sa6->sin6_addr))
return("default");
if (nflag)
if (numeric_addr)
flag |= NI_NUMERICHOST;
getnameinfo((struct sockaddr *)sa6, sa6->sin6_len, line, sizeof(line),
NULL, 0, flag);
if (nflag)
if (numeric_addr)
sprintf(&line[strlen(line)], "/%d", masklen);
return line;
@ -864,7 +864,7 @@ routename6(sa6)
sa6_local.sin6_addr = sa6->sin6_addr;
sa6_local.sin6_scope_id = sa6->sin6_scope_id;
if (nflag)
if (numeric_addr)
flag |= NI_NUMERICHOST;
getnameinfo((struct sockaddr *)&sa6_local, sa6_local.sin6_len,