diff options
Diffstat (limited to 'networking/netstat.c')
-rw-r--r-- | networking/netstat.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/networking/netstat.c b/networking/netstat.c index 28ae9bc32..b083b0dd4 100644 --- a/networking/netstat.c +++ b/networking/netstat.c | |||
@@ -33,6 +33,10 @@ | |||
33 | #include "inet_common.h" | 33 | #include "inet_common.h" |
34 | #include "busybox.h" | 34 | #include "busybox.h" |
35 | 35 | ||
36 | #ifdef CONFIG_ROUTE | ||
37 | extern void displayroutes(int noresolve, int netstatfmt); | ||
38 | #endif | ||
39 | |||
36 | #define NETSTAT_CONNECTED 0x01 | 40 | #define NETSTAT_CONNECTED 0x01 |
37 | #define NETSTAT_LISTENING 0x02 | 41 | #define NETSTAT_LISTENING 0x02 |
38 | #define NETSTAT_NUMERIC 0x04 | 42 | #define NETSTAT_NUMERIC 0x04 |
@@ -462,7 +466,8 @@ int netstat_main(int argc, char **argv) | |||
462 | { | 466 | { |
463 | int opt; | 467 | int opt; |
464 | int new_flags=0; | 468 | int new_flags=0; |
465 | while ((opt = getopt(argc, argv, "lantuwx")) != -1) | 469 | int showroute = 0, extended = 0; |
470 | while ((opt = getopt(argc, argv, "laenrtuwx")) != -1) | ||
466 | switch (opt) { | 471 | switch (opt) { |
467 | case 'l': | 472 | case 'l': |
468 | flags &= ~NETSTAT_CONNECTED; | 473 | flags &= ~NETSTAT_CONNECTED; |
@@ -474,6 +479,12 @@ int netstat_main(int argc, char **argv) | |||
474 | case 'n': | 479 | case 'n': |
475 | flags |= NETSTAT_NUMERIC; | 480 | flags |= NETSTAT_NUMERIC; |
476 | break; | 481 | break; |
482 | case 'r': | ||
483 | showroute = 1; | ||
484 | break; | ||
485 | case 'e': | ||
486 | extended = 1; | ||
487 | break; | ||
477 | case 't': | 488 | case 't': |
478 | new_flags |= NETSTAT_TCP; | 489 | new_flags |= NETSTAT_TCP; |
479 | break; | 490 | break; |
@@ -489,6 +500,16 @@ int netstat_main(int argc, char **argv) | |||
489 | default: | 500 | default: |
490 | show_usage(); | 501 | show_usage(); |
491 | } | 502 | } |
503 | if ( showroute ) { | ||
504 | #ifdef CONFIG_ROUTE | ||
505 | displayroutes ( flags & NETSTAT_NUMERIC, !extended ); | ||
506 | return 0; | ||
507 | #else | ||
508 | printf( "-r (display routing table) is not compiled in.\n" ); | ||
509 | return 1; | ||
510 | #endif | ||
511 | } | ||
512 | |||
492 | if (new_flags) { | 513 | if (new_flags) { |
493 | flags &= ~(NETSTAT_TCP|NETSTAT_UDP|NETSTAT_RAW|NETSTAT_UNIX); | 514 | flags &= ~(NETSTAT_TCP|NETSTAT_UDP|NETSTAT_RAW|NETSTAT_UNIX); |
494 | flags |= new_flags; | 515 | flags |= new_flags; |