patch from vodz -- route cleanup to display all route entries

This commit is contained in:
Eric Andersen 2001-08-27 17:57:27 +00:00
parent ab3d839ef4
commit 863a3e15d6
2 changed files with 60 additions and 18 deletions

View File

@ -15,7 +15,7 @@
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* $Id: route.c,v 1.11 2001/08/23 22:05:33 andersen Exp $
* $Id: route.c,v 1.12 2001/08/27 17:57:27 andersen Exp $
*
* displayroute() code added by Vladimir N. Oleynik <dzo@simtreas.ru>
* adjustments by Larry Doolittle <LRDoolittle@lbl.gov>
@ -345,6 +345,23 @@ INET_setroute(int action, int options, char **args)
return EXIT_SUCCESS;
}
#ifndef RTF_UP
/* Keep this in sync with /usr/src/linux/include/linux/route.h */
#define RTF_UP 0x0001 /* route usable */
#define RTF_GATEWAY 0x0002 /* destination is a gateway */
#define RTF_HOST 0x0004 /* host entry (net otherwise) */
#define RTF_REINSTATE 0x0008 /* reinstate route after tmout */
#define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */
#define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */
#define RTF_MTU 0x0040 /* specific MTU for this route */
#ifndef RTF_MSS
#define RTF_MSS RTF_MTU /* Compatibility :-( */
#endif
#define RTF_WINDOW 0x0080 /* per route window clamping */
#define RTF_IRTT 0x0100 /* Initial round trip time */
#define RTF_REJECT 0x0200 /* Reject route */
#endif
static void displayroutes(void)
{
char buff[256];
@ -371,21 +388,25 @@ static void displayroutes(void)
&d, &g, &flgs, &ref, &use, &metric, &m)!=7) {
error_msg_and_die( "Unsuported kernel route format\n");
}
if(nl==1) {
if(nl==1)
printf("Kernel IP routing table\n"
"Destination Gateway Genmask Flags Metric Ref Use Iface\n");
} else {
nl++;
continue;
}
ifl = 0; /* parse flags */
if(flgs&1)
if(flgs&RTF_UP)
flags[ifl++]='U';
if(flgs&2)
if(flgs&RTF_GATEWAY)
flags[ifl++]='G';
if(flgs&4)
if(flgs&RTF_HOST)
flags[ifl++]='H';
if(flgs&RTF_REINSTATE)
flags[ifl++]='R';
if(flgs&RTF_DYNAMIC)
flags[ifl++]='D';
if(flgs&RTF_MODIFIED)
flags[ifl++]='H';
if(flgs&RTF_REJECT)
flags[ifl++]='!';
flags[ifl]=0;
dest.s_addr = d;
gw.s_addr = g;

39
route.c
View File

@ -15,7 +15,7 @@
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* $Id: route.c,v 1.11 2001/08/23 22:05:33 andersen Exp $
* $Id: route.c,v 1.12 2001/08/27 17:57:27 andersen Exp $
*
* displayroute() code added by Vladimir N. Oleynik <dzo@simtreas.ru>
* adjustments by Larry Doolittle <LRDoolittle@lbl.gov>
@ -345,6 +345,23 @@ INET_setroute(int action, int options, char **args)
return EXIT_SUCCESS;
}
#ifndef RTF_UP
/* Keep this in sync with /usr/src/linux/include/linux/route.h */
#define RTF_UP 0x0001 /* route usable */
#define RTF_GATEWAY 0x0002 /* destination is a gateway */
#define RTF_HOST 0x0004 /* host entry (net otherwise) */
#define RTF_REINSTATE 0x0008 /* reinstate route after tmout */
#define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */
#define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */
#define RTF_MTU 0x0040 /* specific MTU for this route */
#ifndef RTF_MSS
#define RTF_MSS RTF_MTU /* Compatibility :-( */
#endif
#define RTF_WINDOW 0x0080 /* per route window clamping */
#define RTF_IRTT 0x0100 /* Initial round trip time */
#define RTF_REJECT 0x0200 /* Reject route */
#endif
static void displayroutes(void)
{
char buff[256];
@ -371,21 +388,25 @@ static void displayroutes(void)
&d, &g, &flgs, &ref, &use, &metric, &m)!=7) {
error_msg_and_die( "Unsuported kernel route format\n");
}
if(nl==1) {
if(nl==1)
printf("Kernel IP routing table\n"
"Destination Gateway Genmask Flags Metric Ref Use Iface\n");
} else {
nl++;
continue;
}
ifl = 0; /* parse flags */
if(flgs&1)
if(flgs&RTF_UP)
flags[ifl++]='U';
if(flgs&2)
if(flgs&RTF_GATEWAY)
flags[ifl++]='G';
if(flgs&4)
if(flgs&RTF_HOST)
flags[ifl++]='H';
if(flgs&RTF_REINSTATE)
flags[ifl++]='R';
if(flgs&RTF_DYNAMIC)
flags[ifl++]='D';
if(flgs&RTF_MODIFIED)
flags[ifl++]='H';
if(flgs&RTF_REJECT)
flags[ifl++]='!';
flags[ifl]=0;
dest.s_addr = d;
gw.s_addr = g;