Commit 0ab61b2a authored by Bernd Eckenfels's avatar Bernd Eckenfels

feature from the guys at RedHat for more selective "-n" option:

 -numeric-host, -numeric-port, -numeric-user. Send to me by  Jeff Johnson
and reported by jik@kamens.brookline.ma.us
parent 7f87a98a
...@@ -259,7 +259,7 @@ int rprint_cache6(int ext, int numeric) ...@@ -259,7 +259,7 @@ int rprint_cache6(int ext, int numeric)
int INET6_rprint(int options) int INET6_rprint(int options)
{ {
int ext = options & FLAG_EXT; int ext = options & FLAG_EXT;
int numeric = options & (FLAG_NUM | FLAG_SYM); int numeric = options & (FLAG_NUM_HOST | FLAG_SYM);
int rc = E_INTERN; int rc = E_INTERN;
if (options & FLAG_FIB) if (options & FLAG_FIB)
......
/* /*
$Id: inet_gr.c,v 1.12 1999/12/11 13:35:58 freitag Exp $ $Id: inet_gr.c,v 1.13 2000/10/08 01:00:44 ecki Exp $
Modifications: Modifications:
1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
...@@ -444,7 +444,7 @@ if (format == 2) { ...@@ -444,7 +444,7 @@ if (format == 2) {
int INET_rprint(int options) int INET_rprint(int options)
{ {
int ext = options & FLAG_EXT; int ext = options & FLAG_EXT;
int numeric = options & (FLAG_NUM | FLAG_SYM); int numeric = options & (FLAG_NUM_HOST | FLAG_SYM);
int rc = E_INTERN; int rc = E_INTERN;
if (options & FLAG_FIB) if (options & FLAG_FIB)
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
int IPX_rprint(int options) int IPX_rprint(int options)
{ {
/* int ext = options & FLAG_EXT; */ /* int ext = options & FLAG_EXT; */
int numeric = options & FLAG_NUM; int numeric = options & FLAG_NUM_HOST;
char buff[1024]; char buff[1024];
char net[128], router_net[128]; char net[128], router_net[128];
char router_node[128]; char router_node[128];
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* NET-3 Networking Distribution for the LINUX operating * NET-3 Networking Distribution for the LINUX operating
* system. (net-tools, net-drivers) * system. (net-tools, net-drivers)
* *
* Version: $Id: masq_info.c,v 1.6 1999/06/12 23:04:19 philip Exp $ * Version: $Id: masq_info.c,v 1.7 2000/10/08 01:00:44 ecki Exp $
* *
* Author: Bernd 'eckes' Eckenfels <net-tools@lina.inka.de> * Author: Bernd 'eckes' Eckenfels <net-tools@lina.inka.de>
* Copyright 1999 Bernd Eckenfels, Germany * Copyright 1999 Bernd Eckenfels, Germany
...@@ -57,7 +57,8 @@ struct masq { ...@@ -57,7 +57,8 @@ struct masq {
static struct aftype *ap; /* current address family */ static struct aftype *ap; /* current address family */
static int has_pdelta; static int has_pdelta;
static void print_masq(struct masq *ms, int numeric, int ext) static void print_masq(struct masq *ms, int numeric_host, int numeric_port,
int ext)
{ {
unsigned long minutes, seconds, sec100s; unsigned long minutes, seconds, sec100s;
...@@ -77,12 +78,12 @@ static void print_masq(struct masq *ms, int numeric, int ext) ...@@ -77,12 +78,12 @@ static void print_masq(struct masq *ms, int numeric, int ext)
printf("%10lu %5hd - ", ms->initseq, printf("%10lu %5hd - ", ms->initseq,
ms->delta); ms->delta);
} }
printf("%-20s ", ap->sprint((struct sockaddr *) &(ms->src), numeric)); printf("%-20s ", ap->sprint((struct sockaddr *) &(ms->src), numeric_host));
printf("%-20s ", ap->sprint((struct sockaddr *) &(ms->dst), numeric)); printf("%-20s ", ap->sprint((struct sockaddr *) &(ms->dst), numeric_host));
printf("%s -> ", get_sname(ms->sport, ms->proto, numeric)); printf("%s -> ", get_sname(ms->sport, ms->proto, numeric_port));
printf("%s", get_sname(ms->dport, ms->proto, numeric)); printf("%s", get_sname(ms->dport, ms->proto, numeric_port));
printf(" (%s)\n", get_sname(ms->mport, ms->proto, numeric)); printf(" (%s)\n", get_sname(ms->mport, ms->proto, numeric_port));
} }
...@@ -144,7 +145,7 @@ static int read_masqinfo(FILE * f, struct masq *mslist, int nmslist) ...@@ -144,7 +145,7 @@ static int read_masqinfo(FILE * f, struct masq *mslist, int nmslist)
} }
int ip_masq_info(int numeric, int ext) int ip_masq_info(int numeric_host, int numeric_port, int ext)
{ {
FILE *f; FILE *f;
int i; int i;
...@@ -204,7 +205,7 @@ int ip_masq_info(int numeric, int ext) ...@@ -204,7 +205,7 @@ int ip_masq_info(int numeric, int ext)
break; break;
} }
for (i = 0; i < ntotal; i++) for (i = 0; i < ntotal; i++)
print_masq(&(mslist[i]), numeric, ext); print_masq(&(mslist[i]), numeric_host, numeric_port, ext);
if (mslist) if (mslist)
free(mslist); free(mslist);
......
...@@ -93,13 +93,16 @@ extern int activate_ld(const char *hwname, int fd); ...@@ -93,13 +93,16 @@ extern int activate_ld(const char *hwname, int fd);
#define RTACTION_SHOW 5 #define RTACTION_SHOW 5
#define FLAG_EXT 3 /* AND-Mask */ #define FLAG_EXT 3 /* AND-Mask */
#define FLAG_NUM 4 #define FLAG_NUM_HOST 4
#define FLAG_SYM 8 #define FLAG_NUM_PORT 8
#define FLAG_CACHE 16 #define FLAG_NUM_USER 16
#define FLAG_FIB 32 #define FLAG_NUM (FLAG_NUM_HOST|FLAG_NUM_PORT|FLAG_NUM_USER)
#define FLAG_VERBOSE 64 #define FLAG_SYM 32
#define FLAG_CACHE 64
extern int ip_masq_info(int numeric, int ext); #define FLAG_FIB 128
#define FLAG_VERBOSE 256
extern int ip_masq_info(int numeric_host, int numeric_port, int ext);
extern int INET_rprint(int options); extern int INET_rprint(int options);
extern int INET6_rprint(int options); extern int INET6_rprint(int options);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* lib/netrom_gr.c This file contains an implementation of the NET/ROM * lib/netrom_gr.c This file contains an implementation of the NET/ROM
* route support functions. * route support functions.
* *
* Version: $Id: netrom_gr.c,v 1.4 1999/01/05 20:53:55 philip Exp $ * Version: $Id: netrom_gr.c,v 1.5 2000/10/08 01:00:44 ecki Exp $
* *
* Author: Bernd Eckenfels, <ecki@lina.inka.de> * Author: Bernd Eckenfels, <ecki@lina.inka.de>
* Copyright 1999 Bernd Eckenfels, Germany * Copyright 1999 Bernd Eckenfels, Germany
...@@ -37,7 +37,7 @@ int NETROM_rprint(int options) ...@@ -37,7 +37,7 @@ int NETROM_rprint(int options)
char buffer[256]; char buffer[256];
int qual, n, w; int qual, n, w;
/*int ext = options & FLAG_EXT; /*int ext = options & FLAG_EXT;
int numeric = options & FLAG_NUM; */ int numeric = options & FLAG_NUM_HOST; */
f1 = fopen(_PATH_PROCNET_NR_NODES, "r"); f1 = fopen(_PATH_PROCNET_NR_NODES, "r");
if (!f1) perror(_PATH_PROCNET_NR_NODES); if (!f1) perror(_PATH_PROCNET_NR_NODES);
......
...@@ -23,6 +23,7 @@ netstat \- Print network connections, routing tables, interface statistics, masq ...@@ -23,6 +23,7 @@ netstat \- Print network connections, routing tables, interface statistics, masq
.RB [ \-\-listening | \-l ] .RB [ \-\-listening | \-l ]
.RB [ \-\-all | \-a ] .RB [ \-\-all | \-a ]
.RB [ \-\-numeric | \-n ] .RB [ \-\-numeric | \-n ]
.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
.RB [ \-\-symbolic | \-N ] .RB [ \-\-symbolic | \-N ]
.RB [ \-\-extend | \-e [ \-\-extend | \-e] ] .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
.RB [ \-\-timers | \-o ] .RB [ \-\-timers | \-o ]
...@@ -36,6 +37,7 @@ netstat \- Print network connections, routing tables, interface statistics, masq ...@@ -36,6 +37,7 @@ netstat \- Print network connections, routing tables, interface statistics, masq
.RB [ \-\-extend | \-e [ \-\-extend | \-e] ] .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
.RB [ \-\-verbose | \-v ] .RB [ \-\-verbose | \-v ]
.RB [ \-\-numeric | \-n ] .RB [ \-\-numeric | \-n ]
.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
.RB [ \-\-continuous | \-c] .RB [ \-\-continuous | \-c]
.P .P
.B netstat .B netstat
...@@ -46,17 +48,20 @@ netstat \- Print network connections, routing tables, interface statistics, masq ...@@ -46,17 +48,20 @@ netstat \- Print network connections, routing tables, interface statistics, masq
.RB [ \-\-verbose | \-v ] .RB [ \-\-verbose | \-v ]
.RB [ \-\-program | \-p ] .RB [ \-\-program | \-p ]
.RB [ \-\-numeric | \-n ] .RB [ \-\-numeric | \-n ]
.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
.RB [ \-\-continuous | \-c] .RB [ \-\-continuous | \-c]
.P .P
.B netstat .B netstat
.RB { \-\-groups | \-g } .RB { \-\-groups | \-g }
.RB [ \-\-numeric | \-n ] .RB [ \-\-numeric | \-n ]
.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
.RB [ \-\-continuous | \-c] .RB [ \-\-continuous | \-c]
.P .P
.B netstat .B netstat
.RB { \-\-masquerade | \-M } .RB { \-\-masquerade | \-M }
.RB [ \-\-extend | \-e ] .RB [ \-\-extend | \-e ]
.RB [ \-\-numeric | \-n ] .RB [ \-\-numeric | \-n ]
.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
.RB [ \-\-continuous | \-c] .RB [ \-\-continuous | \-c]
.P .P
.B netstat .B netstat
...@@ -110,6 +115,16 @@ useful information about unconfigured address families. ...@@ -110,6 +115,16 @@ useful information about unconfigured address families.
.SS "\-\-numeric , \-n" .SS "\-\-numeric , \-n"
Show numerical addresses instead of trying to determine symbolic host, port Show numerical addresses instead of trying to determine symbolic host, port
or user names. or user names.
.SS "\-\-numeric-hosts"
shows numerical host addresses but does not affect the resolution of
port or user names.
.SS "\-\-numeric-ports"
shows numerical port numbers but does not affect the resolution of
host or user names.
.SS "\-\-numeric-users"
shows numerical user IDs but does not affect the resolution of host or
port names.
.SS "\-\-protocol=\fIfamily \fR, \fB\-A" .SS "\-\-protocol=\fIfamily \fR, \fB\-A"
Specifies the address families (perhaps better described as low level Specifies the address families (perhaps better described as low level
protocols) for which connections are to be shown. protocols) for which connections are to be shown.
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* NET-3 Networking Distribution for the LINUX operating * NET-3 Networking Distribution for the LINUX operating
* system. * system.
* *
* Version: $Id: netstat.c,v 1.38 2000/05/28 15:19:15 pb Exp $ * Version: $Id: netstat.c,v 1.39 2000/10/08 01:00:43 ecki Exp $
* *
* Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de> * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de>
* Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
...@@ -525,7 +525,7 @@ static void finish_this_one(int uid, unsigned long inode, const char *timers) ...@@ -525,7 +525,7 @@ static void finish_this_one(int uid, unsigned long inode, const char *timers)
struct passwd *pw; struct passwd *pw;
if (flag_exp > 1) { if (flag_exp > 1) {
if (!flag_not && ((pw = getpwuid(uid)) != NULL)) if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL))
printf("%-10s ", pw->pw_name); printf("%-10s ", pw->pw_name);
else else
printf("%-10d ", uid); printf("%-10d ", uid);
...@@ -763,14 +763,17 @@ static void tcp_do_one(int lnr, const char *line) ...@@ -763,14 +763,17 @@ static void tcp_do_one(int lnr, const char *line)
safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not), safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not),
sizeof(rem_addr)); sizeof(rem_addr));
if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) { if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) {
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(local_port), "tcp", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(local_port), "tcp",
flag_not & FLAG_NUM_PORT));
if ((strlen(local_addr) + strlen(buffer)) > 22) if ((strlen(local_addr) + strlen(buffer)) > 22)
local_addr[22 - strlen(buffer)] = '\0'; local_addr[22 - strlen(buffer)] = '\0';
strcat(local_addr, ":"); strcat(local_addr, ":");
strcat(local_addr, buffer); strcat(local_addr, buffer);
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(rem_port), "tcp", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
if ((strlen(rem_addr) + strlen(buffer)) > 22) if ((strlen(rem_addr) + strlen(buffer)) > 22)
rem_addr[22 - strlen(buffer)] = '\0'; rem_addr[22 - strlen(buffer)] = '\0';
...@@ -911,13 +914,16 @@ static void udp_do_one(int lnr, const char *line) ...@@ -911,13 +914,16 @@ static void udp_do_one(int lnr, const char *line)
{ {
safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
flag_not), sizeof(local_addr)); flag_not), sizeof(local_addr));
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(local_port), "udp", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(local_port), "udp",
flag_not & FLAG_NUM_PORT));
if ((strlen(local_addr) + strlen(buffer)) > 22) if ((strlen(local_addr) + strlen(buffer)) > 22)
local_addr[22 - strlen(buffer)] = '\0'; local_addr[22 - strlen(buffer)] = '\0';
strcat(local_addr, ":"); strcat(local_addr, ":");
strcat(local_addr, buffer); strcat(local_addr, buffer);
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(rem_port), "udp", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
flag_not), sizeof(rem_addr)); flag_not), sizeof(rem_addr));
if ((strlen(rem_addr) + strlen(buffer)) > 22) if ((strlen(rem_addr) + strlen(buffer)) > 22)
...@@ -1025,7 +1031,9 @@ static void raw_do_one(int lnr, const char *line) ...@@ -1025,7 +1031,9 @@ static void raw_do_one(int lnr, const char *line)
if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst)) if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
{ {
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(local_port), "raw", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(local_port), "raw",
flag_not & FLAG_NUM_PORT));
safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr, safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
flag_not), sizeof(local_addr)); flag_not), sizeof(local_addr));
if ((strlen(local_addr) + strlen(buffer)) > 22) if ((strlen(local_addr) + strlen(buffer)) > 22)
...@@ -1033,7 +1041,8 @@ static void raw_do_one(int lnr, const char *line) ...@@ -1033,7 +1041,8 @@ static void raw_do_one(int lnr, const char *line)
strcat(local_addr, ":"); strcat(local_addr, ":");
strcat(local_addr, buffer); strcat(local_addr, buffer);
snprintf(buffer, sizeof(buffer), "%s", get_sname(htons(rem_port), "raw", flag_not)); snprintf(buffer, sizeof(buffer), "%s",
get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
flag_not), sizeof(rem_addr)); flag_not), sizeof(rem_addr));
if ((strlen(rem_addr) + strlen(buffer)) > 22) if ((strlen(rem_addr) + strlen(buffer)) > 22)
...@@ -1412,7 +1421,7 @@ static int ipx_info(void) ...@@ -1412,7 +1421,7 @@ static int ipx_info(void)
printf("IPX %6ld %6ld %-26s %-26s %-5s", txq, rxq, sad, dad, st); printf("IPX %6ld %6ld %-26s %-26s %-5s", txq, rxq, sad, dad, st);
if (flag_exp > 1) { if (flag_exp > 1) {
if (!flag_not && ((pw = getpwuid(uid)) != NULL)) if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL))
printf(" %-10s", pw->pw_name); printf(" %-10s", pw->pw_name);
else else
printf(" %-10d", uid); printf(" %-10d", uid);
...@@ -1475,6 +1484,9 @@ static void usage(void) ...@@ -1475,6 +1484,9 @@ static void usage(void)
#endif #endif
fprintf(stderr, _(" -v, --verbose be verbose\n")); fprintf(stderr, _(" -v, --verbose be verbose\n"));
fprintf(stderr, _(" -n, --numeric dont resolve names\n")); fprintf(stderr, _(" -n, --numeric dont resolve names\n"));
fprintf(stderr, _(" --numeric-hosts dont resolve host names\n"));
fprintf(stderr, _(" --numeric-ports dont resolve port names\n"));
fprintf(stderr, _(" --numeric-users dont resolve user names\n"));
fprintf(stderr, _(" -N, --symbolic resolve hardware names\n")); fprintf(stderr, _(" -N, --symbolic resolve hardware names\n"));
fprintf(stderr, _(" -e, --extend display other/more information\n")); fprintf(stderr, _(" -e, --extend display other/more information\n"));
fprintf(stderr, _(" -p, --programs display PID/Program name for sockets\n")); fprintf(stderr, _(" -p, --programs display PID/Program name for sockets\n"));
...@@ -1521,6 +1533,9 @@ int main ...@@ -1521,6 +1533,9 @@ int main
{"verbose", 0, 0, 'v'}, {"verbose", 0, 0, 'v'},
{"statistics", 0, 0, 's'}, {"statistics", 0, 0, 's'},
{"numeric", 0, 0, 'n'}, {"numeric", 0, 0, 'n'},
{"numeric-hosts", 0, 0, '!'},
{"numeric-ports", 0, 0, '@'},
{"numeric-users", 0, 0, '#'},
{"symbolic", 0, 0, 'N'}, {"symbolic", 0, 0, 'N'},
{"cache", 0, 0, 'C'}, {"cache", 0, 0, 'C'},
{"fib", 0, 0, 'F'}, {"fib", 0, 0, 'F'},
...@@ -1579,10 +1594,18 @@ int main ...@@ -1579,10 +1594,18 @@ int main
case 'i': case 'i':
flag_int++; flag_int++;
break; break;
case 'n': case 'n':
flag_not |= FLAG_NUM; flag_not |= FLAG_NUM;
break; break;
case '!':
flag_not |= FLAG_NUM_HOST;
break;
case '@':
flag_not |= FLAG_NUM_PORT;
break;
case '#':
flag_not |= FLAG_NUM_USER;
break;
case 'N': case 'N':
flag_not |= FLAG_SYM; flag_not |= FLAG_SYM;
break; break;
...@@ -1645,7 +1668,8 @@ int main ...@@ -1645,7 +1668,8 @@ int main
strcpy(afname, DFLT_AF); strcpy(afname, DFLT_AF);
#endif #endif
for (;;) { for (;;) {
i = ip_masq_info(flag_not, flag_exp); i = ip_masq_info(flag_not & FLAG_NUM_HOST,
flag_not & FLAG_NUM_PORT, flag_exp);
if (i || !flag_cnt) if (i || !flag_cnt)
break; break;
sleep(1); sleep(1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment